PrologueTraits【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass代码位置[TOC]功能说明PrologueTraits是一个 trait 模板将 Prologue 算子如TileCastInt8ToFp16Dequant的接口包装为统一的 Tensor 类型别名方便上层模板如 blockMmad获取 Prologue 相关的输入/输出 Tensor 类型。关键作用从Prologue::ElementSrc/Prologue::ElementDst推导出TensorSrc/TensorDst的AscendC::GlobalTensorT完整类型对void偏特化提供安全的空类型回退模板原型主模板template class Prologue struct PrologueTraits : public Prologue { using Prologue::Prologue; // 继承构造函数 using TensorSrc AscendC::GlobalTensortypename Prologue::ElementSrc; using TensorDst AscendC::GlobalTensortypename Prologue::ElementDst; };void 偏特化template struct PrologueTraitsvoid { using ElementSrc EmptyType; using LayoutTagSrc EmptyType; using ElementDst EmptyType; using LayoutTagDst EmptyType; using TensorSrc EmptyType; using TensorDst EmptyType; using Params EmptyType; template class... Args CATLASS_DEVICE PrologueTraits(Args...) {} };成员类型成员来源说明ElementSrcPrologue::ElementSrcPrologue 输入元素类型ElementDstPrologue::ElementDstPrologue 输出元素类型LayoutSrcPrologue::LayoutSrcPrologue 输入 layoutLayoutDstPrologue::LayoutDstPrologue 输出 layoutTensorSrcGlobalTensorElementSrc完整 GM Tensor 类型TensorDstGlobalTensorElementDst完整 GM Tensor 类型ParamsPrologue::ParamsPrologue 参数结构体调用示例#include catlass/gemm/tile/tile_traits.hpp #include catlass/gemm/tile/cast_int8_to_fp16.hpp using namespace Catlass::Gemm; using PrologueType Tile::TileCastInt8ToFp16Dequant Arch::AtlasA2, Gemm::GemmTypeint8_t, layout::RowMajor, Gemm::GemmTypehalf, layout::RowMajor, 1024; using Traits Tile::PrologueTraitsPrologueType; // Traits::ElementSrc → int8_t // Traits::ElementDst → half // Traits::TensorSrc → AscendC::GlobalTensorint8_t // Traits::TensorDst → AscendC::GlobalTensorhalf // Traits::Params → TileCastInt8ToFp16Dequant::Params // void 回退编译期安全 using VoidTraits Tile::PrologueTraitsvoid; // VoidTraits::TensorSrc → EmptyType // VoidTraits::TensorDst → EmptyType VoidTraits voidTraits; // 变参构造函数无操作【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考