|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Cooperative dispatcher for the whole-copy sdfg::tiles::TileCopyNode. More...
#include <sdfg/targets/rocm/tiles/tile_copy_node.h>
Public Member Functions | |
| TileCopyNodeDispatcher (codegen::LanguageExtension &language_extension, const Function &function, const data_flow::DataFlowGraph &data_flow_graph, const ::sdfg::tiles::TileCopyNode &node) | |
| void | dispatch_code_with_edges (codegen::CodegenOutput &out, std::vector< codegen::DispatchInput > &inputs, std::vector< codegen::DispatchOutput > &outputs) override |
| Public Member Functions inherited from sdfg::codegen::LibraryNodeDispatcher | |
| LibraryNodeDispatcher (LanguageExtension &language_extension, const Function &function, const data_flow::DataFlowGraph &data_flow_graph, const data_flow::LibraryNode &node) | |
| Construct a library node dispatcher. | |
| virtual | ~LibraryNodeDispatcher ()=default |
| virtual bool | begin_node (PrettyPrinter &stream) |
| Begin code generation for the node. | |
| virtual void | end_node (PrettyPrinter &stream, bool has_declaration) |
| End code generation for the node. | |
| virtual void | dispatch (PrettyPrinter &stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory) |
| Dispatch the library node to code. | |
| virtual void | dispatch_code (PrettyPrinter &stream, PrettyPrinter &globals_stream, CodeSnippetFactory &library_snippet_factory) |
| Generate the operation-specific code. | |
| virtual InstrumentationInfo | instrumentation_info () const |
| Get instrumentation information for this node. | |
Additional Inherited Members | |
| Protected Member Functions inherited from sdfg::codegen::LibraryNodeDispatcher | |
| void | require_locally_modifiable_var (CodegenOutput &out, DispatchInput &input) const |
| Ensure that [input] points to a local copy that can be changed without modifying the actual source of the input Should only be needed to ensure that legacy [dispatch_code] code can act as before, where it always was a copy. | |
| void | pre_allocate_output (CodegenOutput &out, DispatchOutput &output, const std::string &var_name) const |
| Declare a variable of the type of the output and with the name "var_name". | |
| void | register_output (DispatchOutput &output, const std::string &result_identifier) const |
| The dispatcher as created an output that is identified by [result_identifier]. | |
| void | copy_output (CodegenOutput &out, const DispatchOutput &output, const data_flow::Memlet &oedge) const |
| This is a temporary & hopefully short-lived workaround. | |
| Protected Attributes inherited from sdfg::codegen::LibraryNodeDispatcher | |
| LanguageExtension & | language_extension_ |
| Language extension for code generation. | |
| const Function & | function_ |
| Function context. | |
| const data_flow::DataFlowGraph & | data_flow_graph_ |
| Containing dataflow graph. | |
| const data_flow::LibraryNode & | node_ |
| Library node being dispatched. | |
Cooperative dispatcher for the whole-copy sdfg::tiles::TileCopyNode.
HIP mirror of the CUDA dispatcher: a block-cooperative, thread-strided loop over the flat tile (same threadIdx/blockDim intrinsics), each thread striding from its flat index by the block thread count. The per-element move is sdfg::tiles::emit_tile_copy_stmt; the barrier is emitted by the producer.
| sdfg::rocm::tiles::TileCopyNodeDispatcher::TileCopyNodeDispatcher | ( | codegen::LanguageExtension & | language_extension, |
| const Function & | function, | ||
| const data_flow::DataFlowGraph & | data_flow_graph, | ||
| const ::sdfg::tiles::TileCopyNode & | node ) |
|
overridevirtual |
Reimplemented from sdfg::codegen::LibraryNodeDispatcher.