|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Depth-aware nested GPU offload pass. More...
#include <sdfg/passes/offloading/gpu_nested_offload_pass.h>
Public Member Functions | |
| GPUNestedOffloadPass (const std::vector< structured_control_flow::StructuredLoop * > &loops, GPUTarget target) | |
| ~GPUNestedOffloadPass () override=default | |
| bool | run_pass (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| std::string | name () override |
| Public Member Functions inherited from sdfg::passes::Pass | |
| Pass ()=default | |
| Pass (const Options &options) | |
| virtual | ~Pass ()=default |
| virtual std::vector< OptionSpec > | options () |
| bool | run (builder::SDFGBuilder &builder, bool create_report=false) |
| bool | run (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, bool create_report=false) |
| virtual bool | run_pass (builder::SDFGBuilder &builder) |
| virtual void | invalidates (analysis::AnalysisManager &analysis_manager, bool applied) |
Additional Inherited Members | |
| Protected Member Functions inherited from sdfg::passes::Pass | |
| template<class T> | |
| T | option (const OptionKey< T > &key, T fallback=T{}) const |
Depth-aware nested GPU offload pass.
For each already grid-offloaded outer loop, inspects the maximum nesting depth of its loop nest and offloads the nested loops via GPUOffloadNestedLoop:
Grid/block sizes derive from each loop's iteration count: a known integer count is used directly for grid dimensions and capped at the default for block dimensions; a symbolic count falls back to the default.
| sdfg::passes::GPUNestedOffloadPass::GPUNestedOffloadPass | ( | const std::vector< structured_control_flow::StructuredLoop * > & | loops, |
| GPUTarget | target ) |
|
overridedefault |
|
inlineoverridevirtual |
Implements sdfg::passes::Pass.
|
overridevirtual |
Reimplemented from sdfg::passes::Pass.