|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Shared scaffolding for the GPU offload dispatchers (Map and Reduce). More...
#include <sdfg/targets/gpu/gpu_offload_base_dispatcher.h>
Public Member Functions | |
| void | dispatch_node (codegen::PrettyPrinter &main_stream, codegen::PrettyPrinter &globals_stream, codegen::CodeSnippetFactory &library_snippet_factory) override |
| codegen::InstrumentationInfo | instrumentation_info () const override |
| Bad design. | |
| Public Member Functions inherited from sdfg::codegen::NodeDispatcher | |
| NodeDispatcher (LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::ControlFlowNode &node, InstrumentationPlan &instrumentation_plan, ArgCapturePlan &arg_capture_plan) | |
| virtual | ~NodeDispatcher ()=default |
| InstrumentationInfo | instrumentation_info_for_group () const |
| virtual void | dispatch (PrettyPrinter &main_stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory) |
Protected Member Functions | |
| GPUOffloadBaseDispatcher (codegen::LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::StructuredLoop &node, codegen::InstrumentationPlan &instrumentation_plan, codegen::ArgCapturePlan &arg_capture_plan, std::unique_ptr< GPUOffloadDispatcherStrategy > strategy) | |
| bool | is_outermost_map (analysis::AnalysisManager &analysis_manager) |
| void | dispatch_header (codegen::PrettyPrinter &globals_stream, const std::string &kernel_name, std::vector< std::string > &arguments_declaration) |
| void | dispatch_kernel_preamble (codegen::PrettyPrinter &library_stream, const std::string &kernel_name, std::vector< std::string > &arguments_declaration) |
| void | emit_lib_dependency_includes (codegen::PrettyPrinter &kernel_header_stream, codegen::NestedCodeSnippetFactory &nested_snippet_factory) |
| virtual void | validate_before_dispatch (analysis::AnalysisManager &analysis_manager) |
| Node-specific preconditions checked before any code is emitted (default: none). | |
| virtual void | dispatch_kernel_body (codegen::NestedCodeSnippetFactory &kernel_snippet_factory, codegen::PrettyPrinter &kernel_source_stream, codegen::PrettyPrinter &kernel_header_stream, codegen::LanguageExtension &kernel_lang_ext, symbolic::Symbol indvar, std::vector< std::string > &scope_variables, symbolic::Expression &num_iterations)=0 |
| Protected Member Functions inherited from sdfg::codegen::NodeDispatcher | |
| virtual bool | begin_node (PrettyPrinter &stream) |
| virtual void | end_node (PrettyPrinter &stream, bool has_declaration) |
Protected Attributes | |
| structured_control_flow::StructuredLoop & | node_ |
| std::unique_ptr< GPUOffloadDispatcherStrategy > | strategy_ |
| long | launch_bounds_ = 0 |
| Protected Attributes inherited from sdfg::codegen::NodeDispatcher | |
| LanguageExtension & | language_extension_ |
| StructuredSDFG & | sdfg_ |
| InstrumentationPlan & | instrumentation_plan_ |
| ArgCapturePlan & | arg_capture_plan_ |
| analysis::AnalysisManager & | analysis_manager_ |
Shared scaffolding for the GPU offload dispatchers (Map and Reduce).
Owns the code common to every offloaded kernel: collecting kernel arguments and scope variables, computing the launch grid/block sizes, emitting the kernel declaration, opening the kernel translation unit + its include header, and calling the (device-)target launch. The node-specific body and the target-specific launch/language policy are supplied by subclasses.
The target specific parts are handled by the DispatcherStrategy across Map and Reduce kernels
|
protected |
|
protected |
|
protectedpure virtual |
Implemented in sdfg::gpu::GPUOffloadMapDispatcher, and sdfg::gpu::GPUOffloadReduceDispatcher.
|
protected |
|
overridevirtual |
Implements sdfg::codegen::NodeDispatcher.
|
protected |
|
overridevirtual |
Bad design.
We already have fields in this class and have to bind an instance to a single node. Just set a field to sth. of the instrumentation plan where the node can register more details. But this is a breaking change
Reimplemented from sdfg::codegen::NodeDispatcher.
|
protected |
|
inlineprotectedvirtual |
Node-specific preconditions checked before any code is emitted (default: none).
Reimplemented in sdfg::gpu::GPUOffloadReduceDispatcher.
|
protected |
|
protected |
|
protected |