docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
rocm_offload_scheduler.h
Go to the documentation of this file.
1#pragma once
2
3#include <unordered_set>
6
7namespace sdfg {
8namespace passes {
9namespace scheduler {
10
12public:
15 analysis::AnalysisManager& analysis_manager,
17 bool offload_unknown_sizes = false
18 ) override;
19
22 analysis::AnalysisManager& analysis_manager,
24 bool offload_unknown_sizes = false
25 ) override;
26
29 analysis::AnalysisManager& analysis_manager,
31 bool offload_unknown_sizes = false
32 ) override;
33
36 analysis::AnalysisManager& analysis_manager,
38 bool offload_unknown_sizes = false
39 ) override;
40
43 analysis::AnalysisManager& analysis_manager,
44 std::vector<structured_control_flow::StructuredLoop*>& applicable_loops
45 ) override;
46
49 analysis::AnalysisManager& analysis_manager,
50 std::vector<structured_control_flow::StructuredLoop*>& scheduled_loops
51 ) override;
52
53 static std::string target() {
54 return "rocm";
55 };
56
58
59 std::unordered_set<ScheduleTypeCategory> compatible_types() override;
60};
61
62} // namespace scheduler
63} // namespace passes
64} // namespace sdfg
Definition analysis.h:53
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Definition loop_scheduler.h:27
Definition rocm_offload_scheduler.h:11
SchedulerAction find(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, structured_control_flow::While &loop, bool offload_unknown_sizes=false) override
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.
static symbolic::Integer get_parallel_size(structured_control_flow::StructuredLoop &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.
std::unordered_set< ScheduleTypeCategory > compatible_types() override
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.
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.
static std::string target()
Definition rocm_offload_scheduler.h:53
Base class for structured loop constructs.
Definition structured_loop.h:244
Represents a while-loop with condition-controlled iteration.
Definition while.h:37
SymEngine::RCP< const SymEngine::Integer > Integer
Reference-counted pointer to a SymEngine Integer constant.
Definition symbolic.h:77
Definition function_builder.h:10
Definition loop_scheduler.h:13
SchedulerAction
Definition loop_scheduler.h:15
Definition approximate_math.h:12
Definition analysis.h:7