CANN稀疏矩阵算子ATK测试

📅 2026/7/11 17:19:42 👁️ 阅读次数 📝 编程学习
CANN稀疏矩阵算子ATK测试

ATK_ops-sparse

【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions

aclSparseSDDMM / SpGEMM / SpSM的 ATK 精度验收工程(NPU 被测,CPU golden;可选 GPU 对照)。

目录结构

ATK_ops-sparse/ ├── run_sparse_atk.sh # 统一入口 ├── sparse_executor_common.py # CSR 生成、seed、精度工具 ├── sparse_npu_acl.py # NPU aclsparse 绑定 ├── sparse_gpu_cusparse.py # GPU cuSPARSE 参考路径 ├── aclSparseSddmm/ │ ├── aclSparseSddmm.yaml │ ├── generator_aclSparseSddmm.py │ ├── executor_aclSparseSddmm.py │ └── result/aclSparseSddmm/json/all_aclSparseSddmm.json ├── aclSparseSpgemm/ # 同上结构 └── aclSparseSpsm/ # 同上结构

依赖

  • Python 3 + PyTorch
  • NPUtorch_npu、已安装libops_sparse.so(可设OPS_SPARSE_LIB_PATH
  • GPU(可选):CUDA +libcusparse.so
  • CPU goldenscipy(SpGEMM β≠0 必需)
  • ATK 框架:atk命令可用

用法

cd /home/ATK_ops-sparse # NPU 精度验收(推荐) ./run_sparse_atk.sh sddmm npu --gen ./run_sparse_atk.sh spgemm npu -s 0 -e 10 ./run_sparse_atk.sh spsm npu # GPU 对照(cuSPARSE vs CPU) ./run_sparse_atk.sh spgemm gpu -s 0 -e 3 # 自动选 backend:npu → gpu → cpu ./run_sparse_atk.sh sddmm auto --gen

参数说明:

  • 第 1 个参数:sddmm|spgemm|spsm
  • 第 2 个参数:auto|npu|gpu|cpu(默认auto
  • --gen:重新生成用例 JSON(首次或改 generator 后)
  • 其余参数透传给atk task(如-s 0 -e 10切片用例)

用例

  • 用例定义:aclSparse*/generator_*.py+*.yaml
  • 生成:atk case -f aclSparseSddmm.yaml -p generator_aclSparseSddmm.py
  • 运行时会自动--gen(若 JSON 不存在)

【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考