|
docc 0.8.3 (0d44999b)
C++ API Reference
|
#include <sdfg/passes/scheduler/cuda_offload_scheduler.h>
Public Member Functions | |
| SchedulerAction | find (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override |
| Phase 1: Determine the action for a loop during loop discovery. | |
| SchedulerAction | find (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::While &loop, bool offload_unknown_sizes=false) override |
| bool | can_apply_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override |
| Check if the scheduling transform can be applied to a loop. | |
| void | apply_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &loop, bool offload_unknown_sizes=false) override |
| Apply the scheduling transform to a single loop. | |
| void | pre_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, std::vector< structured_control_flow::StructuredLoop * > &applicable_loops) override |
| Pre-scheduling phase: collapse and cleanup on the applicable loops. | |
| bool | post_schedule (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, std::vector< structured_control_flow::StructuredLoop * > &scheduled_loops) override |
| Post-scheduling phase: additional transforms on the scheduled loops. | |
| std::unordered_set< ScheduleTypeCategory > | compatible_types () override |
| Public Member Functions inherited from sdfg::passes::scheduler::LoopScheduler | |
| virtual | ~LoopScheduler ()=default |
| virtual void | set_report (PassReportConsumer *report) |
| virtual void | set_recorder (transformations::Recorder *recorder) |
| Attach an optional Recorder that captures each scheduling transform applied via apply_schedule as a replayable descriptor. | |
Static Public Member Functions | |
| static std::string | target () |
| static symbolic::Integer | get_parallel_size (structured_control_flow::StructuredLoop &loop) |
Additional Inherited Members | |
| Protected Attributes inherited from sdfg::passes::scheduler::LoopScheduler | |
| PassReportConsumer * | report_ = nullptr |
| transformations::Recorder * | recorder_ = nullptr |
|
overridevirtual |
Apply the scheduling transform to a single loop.
Called only on loops that passed can_apply_schedule().
Implements sdfg::passes::scheduler::LoopScheduler.
|
overridevirtual |
Check if the scheduling transform can be applied to a loop.
Called after pre_schedule. Used to filter the applicable loops before applying.
Implements sdfg::passes::scheduler::LoopScheduler.
|
overridevirtual |
Implements sdfg::passes::scheduler::LoopScheduler.
|
overridevirtual |
Phase 1: Determine the action for a loop during loop discovery.
Returns NEXT if the loop should be scheduled (added to the applicable set), CHILDREN if the scheduler should descend into child loops instead, or SKIP if the loop already carries a non-None schedule and must be left untouched (neither scheduled nor traversed into).
Implements sdfg::passes::scheduler::LoopScheduler.
|
overridevirtual |
Implements sdfg::passes::scheduler::LoopScheduler.
|
static |
|
overridevirtual |
Post-scheduling phase: additional transforms on the scheduled loops.
Called once per target after apply_schedule, even if no loops were scheduled (scheduled_loops may be empty). GPU schedulers use this for loop reordering, nested parallelization, and library node transfer extraction.
Default implementation is a no-op.
Reimplemented from sdfg::passes::scheduler::LoopScheduler.
|
overridevirtual |
Pre-scheduling phase: collapse and cleanup on the applicable loops.
Called after loop discovery and before can_apply_schedule/apply_schedule. Implementations may collapse loop nests, run symbol propagation, dead data/CFG elimination, etc. The vector is modified in-place to reflect any pointer changes (e.g. after collapse).
Default implementation is a no-op.
Reimplemented from sdfg::passes::scheduler::LoopScheduler.
|
inlinestatic |