基于 CANNBot-DSL 的 Ascend NPU 复杂算子示例集合。
当前访问频次受限,请登录后继续访问
CANNBot-DSL
基于 CANNBot-DSL 的 Ascend NPU 复杂算子示例集合。
📖 概述 · 📦 算子列表 · 📂 目录结构 · 📜 许可证
概述
当前仓库中的 samples 使用 CANNBot 基于 CANNBot-DSL 生成,涵盖 VoxelConv、PointNet Set Abstraction、Flash Attention、Kimi Delta Attention 等复杂算子。本次开源样例代码,自定义开发、测试等功能将于近期发布,敬请期待。
项目面向 NPU ARCH 3510(Ascend 950PR / Ascend 950DT),详见 算子列表。
算子列表
| 算子 | 公式 | 文档 |
|---|---|---|
| voxel_conv | C[N,Co,Ho,Wo]=VoxelConv(x,filter)C[N, Co, Ho, Wo] = \text{VoxelConv}(x, filter) | samples/voxel_conv |
| flash_attn | O=softmax(QKT⋅scale)VO = softmax(QK^T \cdot scale) V | samples/flash_attn |
| flash_kda | Kimi Delta Attention prefill 融合算子 | samples/flash_kda |
| matmul | C[M,N]=A[M,K]@B[N,K]TC[M,N] = A[M,K] @ B[N,K]^T | samples/matmul |
| pointnet_sa | feat[K,Dout]=maxjMLP(points[K,j,Din])\text{feat}[K, D_{out}] = \max_{j} \text{MLP}(\text{points}[K, j, D_{in}]) | samples/pointnet_sa |
| rms_norm | y=x⋅rstd⋅γy = x \cdot rstd \cdot \gamma | samples/rms_norm |
目录结构
├── samples/ # 算子实现与使用说明
│ ├── voxel_conv/ # VoxelConv 卷积
│ ├── flash_attn/ # Flash Attention
│ ├── flash_kda/ # Kimi Delta Attention
│ ├── matmul/ # 非量化矩阵乘
│ ├── pointnet_sa/ # PointNet Set Abstraction
│ └── rms_norm/ # RmsNorm 归一化
├── test/ # 测试
│ ├── voxel_conv/
│ ├── flash_attn/
│ ├── flash_kda/
│ ├── matmul/
│ ├── pointnet_sa/
│ └── rms_norm/
├── figures/
└── README.md
相关信息
- 许可证
- 源文件头部包含完整的版权与许可声明,遵循 CANN Open Software License Agreement Version 2.0