struct GraphNode
Source: scheduler.joule:26
struct GraphNodeSource: scheduler.joule:26
fn new(op: ScheduleOp) -> SelfCreate a new graph node
Source: scheduler.joule:49
struct HeterogeneousGraphSource: scheduler.joule:69
fn new() -> SelfCreate empty graph
Source: scheduler.joule:90
fn add_op(&mut self, op: ScheduleOp) -> usizeAdd an operation to the graph
Source: scheduler.joule:104
fn add_ops(&mut self, ops: Vec<ScheduleOp>) -> Vec<usize>Add multiple operations
Source: scheduler.joule:119
fn finalize(&mut self)Finalize graph (compute outputs, topo order, critical path)
Source: scheduler.joule:124
fn compute_topo_order(&self) -> Vec<usize>Compute topological order using Kahn's algorithm
Source: scheduler.joule:158
fn get_node(&self, id: usize) -> Option<&GraphNode>Get node by ID
Source: scheduler.joule:190
fn get_node_mut(&mut self, id: usize) -> Option<&mut GraphNode>Get mutable node by ID
Source: scheduler.joule:195
fn topo_order(&self) -> &[usize]Get topological order
Source: scheduler.joule:200
fn total_flops(&self) -> u64Get total FLOPS
Source: scheduler.joule:205
fn aggregate_arithmetic_intensity(&self) -> f64Get aggregate arithmetic intensity
Source: scheduler.joule:210
fn len(&self) -> usizeNumber of nodes
Source: scheduler.joule:219
fn is_empty(&self) -> boolIs graph empty?
Source: scheduler.joule:224
fn iter_topo(&self) -> impl Iterator<Item = &GraphNode>Iterate over nodes in topological order
Source: scheduler.joule:229
fn default() -> SelfSource: scheduler.joule:235
struct ExecutionStepSource: scheduler.joule:246
struct ExecutionPlanSource: scheduler.joule:265
fn new() -> SelfCreate empty plan
Source: scheduler.joule:284
fn utilization(&self, engine: Engine) -> f64Get utilization for an engine
Source: scheduler.joule:297
fn ops_on(&self, engine: Engine) -> usizeGet operation count for an engine
Source: scheduler.joule:302
fn summary(&self) -> StringSummary of the plan
Source: scheduler.joule:307
fn default() -> SelfSource: scheduler.joule:325
enum SchedulingStrategySource: scheduler.joule:336
struct SchedulerConfigSource: scheduler.joule:349
fn default() -> SelfSource: scheduler.joule:365
struct SchedulerMain heterogeneous scheduler
Source: scheduler.joule:378
struct SchedulerStatsSource: scheduler.joule:391
fn new(capabilities: Vec<EngineCapabilities>) -> SelfCreate scheduler with given engine capabilities
Source: scheduler.joule:410
fn with_config(capabilities: Vec<EngineCapabilities>, config: SchedulerConfig) -> SelfCreate with custom config
Source: scheduler.joule:425
fn set_config(&mut self, config: SchedulerConfig)Update configuration
Source: scheduler.joule:432
fn get_capabilities(&self, engine: Engine) -> Option<&EngineCapabilities>Get capabilities for an engine
Source: scheduler.joule:437
fn schedule_op(&self, op: &ScheduleOp) -> ScheduleDecisionSchedule a single operation
Source: scheduler.joule:446
fn schedule_min_latency(&self, op: &ScheduleOp) -> ScheduleDecisionSchedule for minimum latency
Source: scheduler.joule:474
fn schedule_min_energy(&self, op: &ScheduleOp) -> ScheduleDecisionSchedule for minimum energy
Source: scheduler.joule:494
fn schedule_balanced(&self, op: &ScheduleOp) -> ScheduleDecisionSchedule with balanced latency/energy tradeoff
Source: scheduler.joule:514
fn schedule_max_throughput(&self, op: &ScheduleOp) -> ScheduleDecisionSchedule for maximum throughput
Source: scheduler.joule:563
fn can_execute(&self, cap: &EngineCapabilities, op: &ScheduleOp) -> boolCheck if engine can execute operation
Source: scheduler.joule:582
fn estimate_time(&self, op: &ScheduleOp, cap: &EngineCapabilities) -> u64Estimate execution time (nanoseconds)
Source: scheduler.joule:587
fn estimate_energy(&self, op: &ScheduleOp, cap: &EngineCapabilities) -> u64Estimate energy consumption (microjoules)
Source: scheduler.joule:603
fn make_decision(&self, op: &ScheduleOp, engine: Engine, reason: &str) -> ScheduleDecisionCreate scheduling decision
Source: scheduler.joule:616
fn schedule_graph(&self, graph: &mut HeterogeneousGraph) -> ExecutionPlanSchedule an entire graph
Source: scheduler.joule:653
fn compute_critical_path(&self, graph: &HeterogeneousGraph) -> u64Compute critical path length through graph
Source: scheduler.joule:740
fn schedule_transformer(Create optimal schedule for transformer inference
Source: scheduler.joule:766
fn stats(&self) -> SchedulerStatsGet current statistics
Source: scheduler.joule:854
fn reset_stats(&self)Reset statistics
Source: scheduler.joule:859
fn clone(&self) -> SelfSource: scheduler.joule:866
fn schedule_gemm(m: usize, n: usize, k: usize, dtype: ComputeDType) -> ScheduleDecisionCreate a simple GEMM schedule decision
Source: scheduler.joule:884
fn schedule_transformer_inference(Create a transformer schedule
Source: scheduler.joule:892
fn print_model_schedules()Print recommended schedule for common model sizes
Source: scheduler.joule:907
fn test_graph_construction()Source: scheduler.joule:942
fn test_scheduler_small_op()Source: scheduler.joule:959
fn test_scheduler_large_gemm()Source: scheduler.joule:971
fn test_scheduler_quantized_decode()Source: scheduler.joule:983
fn test_transformer_schedule()Source: scheduler.joule:996