|
| | GpuMmaExpander (const GpuArch *arch, const MmaBlockSize *block_size_hint=nullptr, const BlockCounts *wave_tile_hint=nullptr) |
| virtual | ~GpuMmaExpander ()=default |
| const LibNodeExpander * | for_lib_node (const data_flow::LibraryNode &node) const override |
| | Prefiltering of libnodes.
|
| LibNodeExpander::ExpandOutcome | handle_expand (LibNodeExpander::ExpandContext &context, structured_control_flow::Block &block, math::tensor::MatMulNode &node) const override |
| Public Member Functions inherited from sdfg::passes::CodeLibNodeExpander< math::tensor::MatMulNode > |
| | CodeLibNodeExpander (const data_flow::LibraryNodeCode &code) |
| const data_flow::LibraryNodeCode & | code () const |
| | The fixed library node code this expander dispatches on.
|
| const data_flow::LibraryNodeCode * | matched_code () const override |
| | If this expander dispatches on a single, fixed library node code, expose it here.
|
| Public Member Functions inherited from sdfg::passes::TypedLibNodeExpander< math::tensor::MatMulNode > |
| const LibNodeExpander * | for_lib_node (const data_flow::LibraryNode &node) const override |
| | Prefiltering of libnodes.
|
| virtual LibNodeExpander::ExpandOutcome | handle_expand (LibNodeExpander::ExpandContext &context, structured_control_flow::Block &block, math::tensor::MatMulNode &node) const=0 |
| Public Member Functions inherited from sdfg::passes::LibNodeExpander |
| virtual | ~LibNodeExpander ()=default |
| virtual ExpandOutcome | handle_expand (ExpandContext &context, structured_control_flow::Block &block, data_flow::LibraryNode &node) const =0 |
|
| static void | create_fragment_load (passes::LibNodeExpander::AccessNodeExpand &standalone, types::PrimitiveType input_type, const data_flow::ImplementationType &impl_type, const DebugInfo &org_debug_info, builder::StructuredSDFGBuilder &builder, std::string frag_name, const MmaBlockSize &mma_block_size, MmaFragmentType frag_type, const GpuMmaFromMemoryLayout &from_memory, unsigned input_index, const char *operand_label, Block &block) |
| static void | create_fragment_store (passes::LibNodeExpander::AccessNodeExpand &standalone, types::PrimitiveType output_type, const data_flow::ImplementationType &impl_type, const DebugInfo &org_debug_info, builder::StructuredSDFGBuilder &builder, std::string frag_name, const MmaBlockSize &mma_block_size, MmaFragmentType frag_type, const GpuMmaFromMemoryLayout &to_memory, unsigned input_index, const char *operand_label, Block &block) |
| static void | create_eltwise_add_block (AccessNodeExpand &standalone, const MmaBlockSize &mma_block_size, types::PrimitiveType acc_type, types::PrimitiveType output_type, const data_flow::ImplementationType &impl_type, const DebugInfo &debug_info, builder::StructuredSDFGBuilder &builder, const std::string &c_frag_name, const std::string &acc_frag_name, const std::string &store_frag_name, Block &block) |
| static passes::LibNodeExpander::ExpandOutcome | expand_mma_standalone (LibNodeExpander::AccessNodeExpand &standalone, const GpuArch &arch, GpuMmaTiling &mma_tiling, const math::tensor::TensorLayout &layout_a, const math::tensor::TensorLayout &layout_b, const math::tensor::TensorLayout &layout_y, types::PrimitiveType input_type, types::PrimitiveType output_type, bool include_c_add, const DebugInfo &org_debug_info, const std::array< int, 3 > &args_order, bool ragged=false, int k_block_multiple=1) |
| static void | create_fragment_mma (LibNodeExpander::AccessNodeExpand &standalone, const GpuArch &arch, GpuMmaTiling &mma_tiling, types::PrimitiveType input_type, const std::string &frag_a, const std::string &frag_b, const std::string &frag_acc, const data_flow::ImplementationType &impl_type, const DebugInfo &org_debug_info, builder::StructuredSDFGBuilder &builder, structured_control_flow::Block &block) |