|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Reference (sequential, scalar) dispatcher for TileCopyNode. More...
#include <sdfg/tiles/library_nodes/tile_copy_node.h>
Public Member Functions | |
| TileCopyNodeDispatcher (codegen::LanguageExtension &language_extension, const Function &function, const data_flow::DataFlowGraph &data_flow_graph, const 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. | |
Reference (sequential, scalar) dispatcher for TileCopyNode.
Emits the whole copy as one sequential loop over the flat tile: for c in [0, size): dst[dst_geo(c)] = src[src_geo(c)], addressing each side by the plan's Layout::resolve_element. The {_dst,_src} inputs are the base pointers, so both sides are reinterpreted to a flat element pointer and indexed linearly. Used on the host (CPU private copy) and as the fallback where no cooperative/async atom applies; GPU targets register their own dispatcher for the offload atoms.
| sdfg::tiles::TileCopyNodeDispatcher::TileCopyNodeDispatcher | ( | codegen::LanguageExtension & | language_extension, |
| const Function & | function, | ||
| const data_flow::DataFlowGraph & | data_flow_graph, | ||
| const TileCopyNode & | node ) |
|
overridevirtual |
Reimplemented from sdfg::codegen::LibraryNodeDispatcher.