docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::gpu::GPUOffloadMapDispatcher Class Reference

Map node policy for the GPU offload dispatcher. More...

#include <sdfg/targets/gpu/gpu_offload_map_dispatcher.h>

Inheritance diagram for sdfg::gpu::GPUOffloadMapDispatcher:
[legend]

Public Member Functions

 GPUOffloadMapDispatcher (codegen::LanguageExtension &language_extension, StructuredSDFG &sdfg, analysis::AnalysisManager &analysis_manager, structured_control_flow::Map &node, codegen::InstrumentationPlan &instrumentation_plan, codegen::ArgCapturePlan &arg_capture_plan, std::unique_ptr< GPUOffloadDispatcherStrategy > strategy)
Public Member Functions inherited from sdfg::gpu::GPUOffloadBaseDispatcher
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

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) override
Protected Member Functions inherited from sdfg::gpu::GPUOffloadBaseDispatcher
 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).
Protected Member Functions inherited from sdfg::codegen::NodeDispatcher
virtual bool begin_node (PrettyPrinter &stream)
virtual void end_node (PrettyPrinter &stream, bool has_declaration)

Additional Inherited Members

Protected Attributes inherited from sdfg::gpu::GPUOffloadBaseDispatcher
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_

Detailed Description

Map node policy for the GPU offload dispatcher.

Supplies the coverage-loop kernel body for an offloaded structured_control_flow::Map. The kernel scaffolding and the device-target launch policy come from GPUOffloadBaseDispatcher (inherited virtually so a concrete dispatcher can mix this with a Cuda/Rocm kernel policy).

Constructor & Destructor Documentation

◆ GPUOffloadMapDispatcher()

sdfg::gpu::GPUOffloadMapDispatcher::GPUOffloadMapDispatcher ( codegen::LanguageExtension & language_extension,
StructuredSDFG & sdfg,
analysis::AnalysisManager & analysis_manager,
structured_control_flow::Map & node,
codegen::InstrumentationPlan & instrumentation_plan,
codegen::ArgCapturePlan & arg_capture_plan,
std::unique_ptr< GPUOffloadDispatcherStrategy > strategy )

Member Function Documentation

◆ dispatch_kernel_body()

void sdfg::gpu::GPUOffloadMapDispatcher::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 )
overrideprotectedvirtual

The documentation for this class was generated from the following file: