docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
rocm_map_dispatcher.h
Go to the documentation of this file.
1#pragma once
2
10
11
12namespace sdfg {
13namespace rocm {
14
16private:
18
19 void dispatch_kernel_body(
20 codegen::CodeSnippetFactory& library_snippet_factory,
21 codegen::PrettyPrinter& globals_stream,
22 symbolic::Symbol indvar,
23 std::vector<std::string>& scope_variables,
24 symbolic::Expression& num_iterations
25 );
26
27 void dispatch_header(
28 codegen::PrettyPrinter& globals_stream,
29 const std::string& kernel_name,
30 std::vector<std::string>& arguments_declaration
31 );
32
33 void dispatch_kernel_call(
34 codegen::PrettyPrinter& main_stream,
35 const std::string& kernel_name,
36 symbolic::Expression& num_blocks_x,
37 symbolic::Expression& num_blocks_y,
38 symbolic::Expression& num_blocks_z,
39 symbolic::Expression& block_size_x,
40 symbolic::Expression& block_size_y,
41 symbolic::Expression& block_size_z,
42 std::vector<std::string>& arguments_device
43 );
44
45 void dispatch_kernel_preamble(
46 codegen::PrettyPrinter& library_stream,
47 analysis::AnalysisManager& analysis_manager,
48 const std::string& kernel_name,
49 symbolic::SymbolSet& x_vars,
50 symbolic::SymbolSet& y_vars,
51 symbolic::SymbolSet& z_vars,
52 std::vector<std::string>& arguments_declaration
53 );
54
55public:
57 codegen::LanguageExtension& language_extension,
59 analysis::AnalysisManager& analysis_manager,
61 codegen::InstrumentationPlan& instrumentation_plan,
62 codegen::ArgCapturePlan& arg_capture_plan
63 );
64
66 codegen::PrettyPrinter& main_stream,
67 codegen::PrettyPrinter& globals_stream,
68 codegen::CodeSnippetFactory& library_snippet_factory
69 ) override;
70
72};
73
74} // namespace rocm
75} // namespace sdfg
Definition structured_sdfg.h:30
Definition analysis.h:53
Definition arg_capture_plan.h:36
Originally started out as a handler for additional source files, like hardware-accelerator kernels th...
Definition code_snippet_factory.h:69
Definition instrumentation_info.h:37
Definition instrumentation_plan.h:26
Definition language_extension.h:39
Base class for dispatching control flow nodes to code.
Definition node_dispatcher.h:41
Definition utils.h:16
ROCMMapDispatcher(codegen::LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::Map &node, codegen::InstrumentationPlan &instrumentation_plan, codegen::ArgCapturePlan &arg_capture_plan)
void dispatch_node(codegen::PrettyPrinter &main_stream, codegen::PrettyPrinter &globals_stream, codegen::CodeSnippetFactory &library_snippet_factory) override
virtual codegen::InstrumentationInfo instrumentation_info() const override
Bad design.
Represents a parallel map loop with configurable scheduling.
Definition map.h:47
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
SymEngine::RCP< const SymEngine::Symbol > Symbol
Reference-counted pointer to a SymEngine Symbol.
Definition symbolic.h:71
std::set< Symbol, SymEngine::RCPBasicKeyLess > SymbolSet
Ordered set of symbols.
Definition symbolic.h:95
Definition rocm_library_node_rewriter_pass.h:9
Definition analysis.h:7
Dispatcher base class for code generation from control flow nodes.
Symbolic system for integer-based symbol analysis.