Skill: blas-op-templates【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blasops-blas 算子代码模板库为不同编程模型和目标架构提供标准化的代码骨架。Agent 在开发新算子时应以对应类型的模板为起点按算子需求填充业务逻辑。算子分类体系ops-blas 仓中的算子按编程模型和目标架构两个维度分类编程模型编程模型关键特征适用场景模板目录SIMD membaseTPipe/TQue/DataCopyPad/SetFlag/WaitFlagHardEvent::...数据搬运为主、Vector 计算为辅的算子Level-1 BLAS 等references/simd-membase/SIMD regbase__VEC_SCOPE__/RegTensor/MicroAPI::DataCopy/Mul/Add/ReduceSum寄存器级 SIMD 算子在 UB 内使用寄存器张量计算references/simd-regbase/SIMT__simt_vf__/asc_vf_call/threadIdx.x/blockDim.x线程级并行算子Level-2/3 BLAS 等仅 arch35references/simt/目标架构架构SOC_VERSIONNPU_ARCH说明arch20ascend310p*dav-1101推理芯片arch22ascend910b* / ascend910_93*dav-2201训练/推理芯片arch35ascend950*dav-3510Atlas A5 系列当前重点模板目录结构每个编程模型的模板文件按仓库实际目录层级组织从blas/一级开始仅包含算子实现代码references/programming-model/ blas/{family}/{op}/ archxx/ op_tiling_data.h -- Tiling 数据结构host/kernel 共享 op_kernel.cpp -- Device 侧 kernel 实现 op_host.cpp -- Host 侧 API 入口 Tiling 计算说明simd-membase模板适用于 arch22 和 arch35使用archxx/作为通用目录名simd-regbase模板仅适用于 arch35DAV_3510 RegBase 模式使用arch35/目录名simt模板仅适用于 arch35arch22 不支持 SIMT 编程模型{family}和{op}为占位符使用时替换为实际的算子族名和算子名如swap/sswap、dot/sdot算子交付件目录结构一个完整算子在仓库中的文件布局模板仅覆盖blas/部分blas/family/op_name/ README.md arch35/ op_name_host.cpp op_name_kernel.cpp op_name_tiling_data.h命名规范元素规范示例算子目录blas/family/blas_name/blas/swap/sswap/Kernel 文件op_kernel.cppsswap_kernel.cppHost 文件op_host.cppsswap_host.cppTiling 头文件op_tiling_data.hsswap_tiling_data.hTiling 结构体OpTilingDataPascalCaseSswapTilingDataKernel 类OpAIV或OpKernelTSIMDSswapAIVSIMT 计算函数OpSimtCompute__simt_vf__SspmvSimtComputeKernel 入口op_kernel__global__sswap_kernelKernel 启动器op_kernel_dosswap_kernel_do公共 APIaclblasOpPascalCaseaclblasSswap测试 fixtureOpArch35TestSswapArch35Test使用方法根据算子的编程模型和目标架构选择对应的模板目录将模板文件复制到算子目录按命名规范重命名按模板中的// TEMPLATE:注释指引替换占位逻辑为实际业务逻辑模板中的代码已包含标准框架Init/Process、参数校验、Tiling 计算等只需填充核心算法部分参考资源资源路径说明SIMD membase 模板references/simd-membase/以 sswap 为原型抽取的 SIMD membase 算子全套模板arch22/arch35 通用SIMD regbase 模板references/simd-regbase/以 gemv_batched 为原型抽取的 SIMD regbase 算子全套模板仅 arch35SIMT 模板references/simt/以 sspmv/sgemv 为原型抽取的 SIMT 算子全套模板仅 arch35原始参考算子编程模型参考算子路径SIMD membasesswapblas/swap/sswap/arch35/SIMD membasesdotblas/dot/sdot/arch35/SIMD regbasegemv_batchedblas/gemv_batched/arch35/SIMTsspmvblas/spmv/sspmv/arch35/SIMTsgemvblas/gemv/sgemv/arch35/Base directory for this skill: file:///mnt/workspace/gitCode/cann/ops-blas/agent/skills/blas-op-templates【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
cann/ops-blas算子模板库
Skill: blas-op-templates【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blasops-blas 算子代码模板库为不同编程模型和目标架构提供标准化的代码骨架。Agent 在开发新算子时应以对应类型的模板为起点按算子需求填充业务逻辑。算子分类体系ops-blas 仓中的算子按编程模型和目标架构两个维度分类编程模型编程模型关键特征适用场景模板目录SIMD membaseTPipe/TQue/DataCopyPad/SetFlag/WaitFlagHardEvent::...数据搬运为主、Vector 计算为辅的算子Level-1 BLAS 等references/simd-membase/SIMD regbase__VEC_SCOPE__/RegTensor/MicroAPI::DataCopy/Mul/Add/ReduceSum寄存器级 SIMD 算子在 UB 内使用寄存器张量计算references/simd-regbase/SIMT__simt_vf__/asc_vf_call/threadIdx.x/blockDim.x线程级并行算子Level-2/3 BLAS 等仅 arch35references/simt/目标架构架构SOC_VERSIONNPU_ARCH说明arch20ascend310p*dav-1101推理芯片arch22ascend910b* / ascend910_93*dav-2201训练/推理芯片arch35ascend950*dav-3510Atlas A5 系列当前重点模板目录结构每个编程模型的模板文件按仓库实际目录层级组织从blas/一级开始仅包含算子实现代码references/programming-model/ blas/{family}/{op}/ archxx/ op_tiling_data.h -- Tiling 数据结构host/kernel 共享 op_kernel.cpp -- Device 侧 kernel 实现 op_host.cpp -- Host 侧 API 入口 Tiling 计算说明simd-membase模板适用于 arch22 和 arch35使用archxx/作为通用目录名simd-regbase模板仅适用于 arch35DAV_3510 RegBase 模式使用arch35/目录名simt模板仅适用于 arch35arch22 不支持 SIMT 编程模型{family}和{op}为占位符使用时替换为实际的算子族名和算子名如swap/sswap、dot/sdot算子交付件目录结构一个完整算子在仓库中的文件布局模板仅覆盖blas/部分blas/family/op_name/ README.md arch35/ op_name_host.cpp op_name_kernel.cpp op_name_tiling_data.h命名规范元素规范示例算子目录blas/family/blas_name/blas/swap/sswap/Kernel 文件op_kernel.cppsswap_kernel.cppHost 文件op_host.cppsswap_host.cppTiling 头文件op_tiling_data.hsswap_tiling_data.hTiling 结构体OpTilingDataPascalCaseSswapTilingDataKernel 类OpAIV或OpKernelTSIMDSswapAIVSIMT 计算函数OpSimtCompute__simt_vf__SspmvSimtComputeKernel 入口op_kernel__global__sswap_kernelKernel 启动器op_kernel_dosswap_kernel_do公共 APIaclblasOpPascalCaseaclblasSswap测试 fixtureOpArch35TestSswapArch35Test使用方法根据算子的编程模型和目标架构选择对应的模板目录将模板文件复制到算子目录按命名规范重命名按模板中的// TEMPLATE:注释指引替换占位逻辑为实际业务逻辑模板中的代码已包含标准框架Init/Process、参数校验、Tiling 计算等只需填充核心算法部分参考资源资源路径说明SIMD membase 模板references/simd-membase/以 sswap 为原型抽取的 SIMD membase 算子全套模板arch22/arch35 通用SIMD regbase 模板references/simd-regbase/以 gemv_batched 为原型抽取的 SIMD regbase 算子全套模板仅 arch35SIMT 模板references/simt/以 sspmv/sgemv 为原型抽取的 SIMT 算子全套模板仅 arch35原始参考算子编程模型参考算子路径SIMD membasesswapblas/swap/sswap/arch35/SIMD membasesdotblas/dot/sdot/arch35/SIMD regbasegemv_batchedblas/gemv_batched/arch35/SIMTsspmvblas/spmv/sspmv/arch35/SIMTsgemvblas/gemv/sgemv/arch35/Base directory for this skill: file:///mnt/workspace/gitCode/cann/ops-blas/agent/skills/blas-op-templates【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考