news 2026/5/9 12:56:13

CANN融合算子库实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN融合算子库实现

概述

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

此项目是基于昇腾硬件Atlas A2/Atlas A3/Ascend 950PR/Ascend 950DT的融合算子库。当前项目包含的算子说明详见同级docs目录。

目录结构

├── pypto_python # pypto算子代码目录 │ │ ├── docs # 自定义算子文档 │ │ ├── impl # 自定义算子计算流代码目录 │ │ │ ├── compressed_flash_attention_pypto.py # compressed_flash_attention算子kernel实现 │ │ │ ├── compressor_pypto.py # compressor算子kernel实现 │ │ │ ├── hc_pre_pypto.py # hc_pre算子kernel实现 │ │ │ ├── lightning_indexer_prolog_quant_pypto.py # lightning_indexer_prolog_quant算子kernel实现 │ │ │ ├── mla_prolog_pypto.py # mla_prolog算子kernel实现 │ │ │ ├── mla_prolog_quant_pypto.py # mla_prolog_quant算子kernel实现 │ │ │ ├── sliding_window_attention_pypto.py # sliding_window_attention算子kernel实现 │ │ │ ├── sparse_compress_flash_attention_pypto.py # sparse_compress_flash_attention算子kernel实现 │ │ ├── example # 自定义算子测试代码目录 │ │ │ ├── test_compressed_flash_attention_pypto.py # compressed_flash_attention算子测试样例 │ │ │ ├── test_compressor_pypto.py # compressor算子测试样例 │ │ │ ├── test_hc_pre_pypto.py # hc_pre算子测试样例 │ │ │ ├── test_lightning_indexer_prolog_quant.py # lightning_indexer_prolog_quant算子测试样例 │ │ │ ├── test_mla_prolog_pypto.py # mla_prolog算子测试样例 │ │ │ ├── test_mla_prolog_quant_pypto.py # mla_prolog_quant算子测试样例 │ │ │ ├── test_sliding_window_attention_pypto.py # sliding_window_attention算子测试样例 │ │ │ ├── test_sparse_compressed_flash_attention_pypto.py # sparse_compressed_flash_attention算子测试样例

PyPto自定义算子开发资料:PyPto文档

环境准备

硬件要求

产品型号操作系统镜像版本驱动版本
Atlas A2/A3 系列Linux ARMcann9.0.pt2.8.0_ds_pypto_aarch_image:v0.225.5.0
Ascend 950PR/DT 系列Linux ARM待后续发布待后续发布

npu-smi info 检查Ascend NPU固件和驱动是否正确安装。如果已安装,通过命令npu-smi info确认版本是否为25.5.0。如果未安装或者版本不是25.5.0,请先下载固件和驱动包,然后根据指导自行安装。

下载源码

可以选择在宿主机或者容器内下载源码,如果在容器内下载,应在主机挂载在容器的目录下下载;在宿主机内下载则无此约束。 执行如下命令即可下载 cann-recipes-infer 源码。

mkdir -p /home/code; cd /home/code/ git clone git@gitcode.com:cann/cann-recipes-infer.git

获取 docker 镜像

从ARM镜像地址中下载 docker 镜像,然后上传到需要A3服务器每个节点上,并通过命令导入镜像docker load -i cann9.0.pt2.8.0_ds_pypto_aarch_image.tar

拉起 docker 容器

容器拉起脚本如下,默认容器名为 cann_recipes_infer_pypto:

docker run -u root -itd --name cann_recipes_infer_pypto --ulimit nproc=65535:65535 --ipc=host \ --device=/dev/davinci0 --device=/dev/davinci1 \ --device=/dev/davinci2 --device=/dev/davinci3 \ --device=/dev/davinci4 --device=/dev/davinci5 \ --device=/dev/davinci6 --device=/dev/davinci7 \ --device=/dev/davinci8 --device=/dev/davinci9 \ --device=/dev/davinci10 --device=/dev/davinci11 \ --device=/dev/davinci12 --device=/dev/davinci13 \ --device=/dev/davinci14 --device=/dev/davinci15 \ --device=/dev/davinci_manager --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /home/:/home \ -v /data:/data \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /etc/ascend_install.info:/etc/ascend_install.info -v /var/log/npu/:/usr/slog \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/sbin:/usr/local/sbin \ -v /etc/hccn.conf:/etc/hccn.conf -v /root/.pip:/root/.pip -v /etc/hosts:/etc/hosts \ -v /usr/bin/hostname:/usr/bin/hostname \ --net=host \ --shm-size=128g \ --privileged \ cann9.0.pt2.8.0_ds_pypto_aarch_image:v0.2 /bin/bash

进入容器:

docker attach cann_recipes_infer_pypto

设置环境变量

source /usr/local/Ascend/ascend-toolkit/latest/bin/setenv.bash

编译执行

PyPTO算子工程编译安装:

PyPTO已切换为Python代码实现(镜像中已安装PyPTO的whl包)。

若涉及PyPTO框架源码修改,可下载PyPto开源仓 https://gitcode.com/cann/pypto ,参考ReadMe “快速入门” 编译PyPTO软件包并安装。

示例算子执行:

在pypto_python/examples目录通过执行以下脚本执行示例算子

cd /home/code/cann-recipes-infer/ops/pypto_python/example python3 test_hc_pre_pypto.py

DeepSeek-V4 整网集成样例执行

算子已支持集成到DeepSeek-V4整网,样例执行过程如下:

权重和数据集准备

DeepSeek-V4模型和数据集准备,请参考模型权重和数据集准备中相关章节

代码修改适配

网络执行前需对配置做一些调整,参考修改代码章节进行适配

修改网络配置和环境配置

当前网络脚本中,在各个节点上修改models/deepseek-v4/config/ 路径下需要执行的yaml文件中model_config配置项,配置过程如下:

  • 增加 enable_pypto: True配置将pypto算子集成到网络中
  • 修改 enable_limit_core: False配置将limit_core配置关闭
model_config: enable_limit_core: False enable_pypto: True

推理执行

参考拉起多卡推理章节。

执行结束后,出现model run success,则表示推理执行成功。

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 12:55:04

Python全栈项目实战:基于深度学习的语音合成(TTS)系统

在 2026 年的 AI 浪潮中,单纯的“调包”已经无法满足工程需求。一个合格的 Python 全栈 AI 项目,不仅需要精准的模型算法,更需要稳健的后端架构和丝滑的前端交互。今天,我们将从零到一构建一个基于深度学习的端到端语音合成&#…

作者头像 李华
网站建设 2026/5/9 12:54:39

2026年性价比的高餐饮食堂厨房设备工程公司,上海靠谱厂商推荐

做餐饮、开食堂,厨房设备工程选不对,后续能耗居高不下、空间浪费严重、环评无法通过,分分钟吞噬运营利润。不少老板在筛选商用厨房设备工程公司时,要么踩坑不断——设计不合理导致操作空间拥挤、设备不达标让环评卡壳半月、设备故…

作者头像 李华
网站建设 2026/5/9 12:52:31

2025届必备的十大降重复率工具推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 想要降低文章被人工智能检测工具识别的概率,就要从语言表达和结构设计这两方面着…

作者头像 李华
网站建设 2026/5/9 12:49:10

HCCL故障检测配置指南

HCCL_DFS_CONFIG 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hc…

作者头像 李华
网站建设 2026/5/9 12:48:15

CANN/runtime:共享队列管理API

17-02 共享队列管理 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 本章节描述共享队列管理接口,用于队列的创建、销毁、入队、出队及路由管理。 aclError acltdtCreateQueue(const acltd…

作者头像 李华