ops-multimodal-fusion:基于 AscendC 的 PyTorch 自定义算子库项目

基于 AscendC 的 PyTorch 自定义多模态算子库

分支1Tags0
文件最后提交记录最后更新时间
feat: 增加 upsample_linear1d 一维线性插值上采样算子1 天前
仓库初始化,增加abs算子及工程16 天前
feat: 增加 upsample_linear1d 一维线性插值上采样算子1 天前
仓库初始化,增加abs算子及工程16 天前
feat: 增加 upsample_linear1d 一维线性插值上采样算子1 天前
仓库初始化,增加abs算子及工程16 天前
仓库初始化,增加abs算子及工程16 天前
增加项目文档14 天前
仓库初始化,增加abs算子及工程16 天前
仓库初始化,增加abs算子及工程16 天前
仓库初始化,增加abs算子及工程16 天前
仓库初始化,增加abs算子及工程16 天前
docs: README 新增版本配套章节,说明 CANN 9.0.0 Toolkit 与 Ops 包安装方式20 小时前
仓库初始化,增加abs算子及工程16 天前
增加项目文档14 天前
增加项目文档14 天前
fix: 安装命令增加cd /tmp前缀,避免源码目录内pip install卸载异常9 天前
refactor: 重构whl包命名规则与环境部署文档,新增依赖安装脚本及接口清单9 天前
仓库初始化,增加abs算子及工程16 天前
refactor: 重构whl包命名规则与环境部署文档,新增依赖安装脚本及接口清单9 天前

ops-multimodal-fusion

基于 AscendC 的 PyTorch 自定义算子库,使用 fast kernel launch(<<<>>> 直调)方式实现高性能 NPU 算子,编译为 Python wheel 包供直接安装使用。

版本配套

当前仓库已验证通过的 CANN 版本如下:

CANN 版本 发布时间 分支
CANN 9.0.0 2026/04/30 master

请根据实际 CPU 架构和产品型号,从上述链接目录中自行选择对应的 .run 安装包。本仓库需要安装 Toolkit 包Ops 包

安装包文件名格式如下:

  • Toolkit 包:
    • Ascend-cann-toolkit_${cann_version}_linux-aarch64.run
    • Ascend-cann-toolkit_${cann_version}_linux-x86_64.run
  • Ops 包:
    • Ascend-cann-${soc_name}-ops_${cann_version}_linux-aarch64.run
    • Ascend-cann-${soc_name}-ops_${cann_version}_linux-x86_64.run
  1. 安装 CANN Toolkit 包

    # 确保安装包具有可执行权限
    chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run
    # 安装命令
    ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --force --install-path=${install_path}
    
    • ${cann_version}:表示安装包版本号,此处为 9.0.0
    • ${arch}:表示 CPU 架构,如 aarch64x86_64
    • ${install_path}:表示指定安装路径,默认安装在 /usr/local/Ascend 目录。
  2. 安装 CANN Ops 包

    Ops 包需与 Toolkit 包安装到同一目录下,请根据实际产品型号选择对应的 Ops 包。

    # 确保安装包具有可执行权限
    chmod +x Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run
    # 安装命令
    ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --force --install-path=${install_path}
    
    • ${soc_name}:表示 NPU 产品型号名称,请根据实际硬件选择,如 950910b 等。
  3. 配置环境变量

    安装完成后,请执行:

    source ${install_path}/cann/set_env.sh
    

    请将 ${install_path} 替换为 Toolkit 包的实际安装目录,例如 /usr/local/Ascend${HOME}/Ascend

仓编译、安装方式

环境部署

详见环境部署

编译

bash build.sh

该脚本依次执行:安装构建依赖 → 清理旧构建 → 编译 wheel 包。不自动安装,也不跑测试。 结束时打印 wheel 的绝对路径,以及可直接拷贝的安装与测试命令。

如需指定 SoC 类型(默认 ascend950):

访问CANN下载中心,根据页面提示复制硬件查询命令,在当前环境中执行,返回芯片ID信息,再回填到官网按Enter键获取产品名,产品名对应的 ${soc_version} 取值如下,请按实际场景传参。

  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:取值为 ascend910b
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:取值为 ascend910_93
  • 950系列产品:取值为 ascend950
bash build.sh --soc=${soc_version}

编译产物为 dist/ops_multimodal_fusion-1.0.0+<soc_version>-cp<编译环境Python版本>-cp<编译环境Python版本>-linux_*.whl(如 ops_multimodal_fusion-1.0.0+ascend950-cp310-cp310-linux_aarch64.whl)。

安装

注意:请勿在源码目录内执行 pip install,否则可能导致卸载异常。

cd /tmp && pip install /path/to/dist/ops_multimodal_fusion-*.whl --force-reinstall --no-deps

测试

pytest tests/ -v

接口使用

以 abs 算子为例:

import torch
import torch_npu
import ops_multimodal_fusion

x = torch.randn(32, 64).npu()
result = torch.ops.ops_multimodal_fusion.abs(x)

接口支持清单

详见接口支持清单

开发方式

详见开发方式

相关信息


  • 问题反馈:通过GitCode Issues 提交问题。
  • 社区互动:通过GitCode 讨论 参与交流。

项目介绍

基于 AscendC 的 PyTorch 自定义多模态算子库

定制我的领域