news 2026/5/9 12:59:24

CANN/XLA-NPU:昇腾NPU的XLA后端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/XLA-NPU:昇腾NPU的XLA后端

XLA-NPU

【免费下载链接】xla-npuXLA-NPU 是一个面向华为昇腾NPU硬件的 XLA后端实现。本项目通过接入OpenXLA/XLA开源项目,将XLA开源生态与华为 CANN软件栈集成,对接JAX框架。JAX框架运行时可以直接加载XLA-NPU,使得基于JAX框架开发的模型可以运行在昇腾NPU上,提供推理场景图编译加速能力。项目地址: https://gitcode.com/cann/xla-npu

简介

XLA-NPU是一个面向华为昇腾NPU(Neural Processing Unit)硬件的XLA(Accelerated Linear Algebra)后端实现。本项目通过接入OpenXLA/XLA开源项目,将XLA开源生态与华为 CANN(Compute Architecture for Neural Networks)软件栈集成,对接JAX框架。JAX框架运行时可以直接加载XLA-NPU,使得基于JAX框架开发的模型可以运行在昇腾NPU上,提供推理场景图编译加速能力。

昇腾为基于华为昇腾处理器和软件的行业应用及服务提供全栈AI计算基础设施。您可以通过访问昇腾社区,了解关于昇腾的更多信息。

安装与卸载

详细的安装和卸载指南请参考:INSTALL_GUIDE.md

  • XLA-NPU在运行时依赖CANN 8.5.0及以上版本,请参考安装指南完成软件栈的安装。

快速上手

1. 配置CANN环境变量

# 默认路径安装 source /usr/local/Ascend/cann/set_env.sh # 指定路径安装 source ${ASCEND_INSTALL_PATH}/cann/set_env.sh

2. 配置运行期环境变量

建议在运行任意xla-npu测试用例前,执行source ./build/xla_npu_env(此文件在执行./build/build.sh后生成,且重复执行./build/build.sh后,不会再覆盖./build/xla_npu_env中的内容),确保所有必要运行环境变量已被配置。下面列举的环境变量中,标注为已默认配置在xla_npu_env中的,执行source ./build/xla_npu_env后,可不用再次手动配置。

必须配置
  • export ASCEND_MLIR_PYTHON_PATH=: xla-npu代码仓中dependency下载的Ascend-MLIR中Python可执行文件路径(比如/path/to/xla-npu/xla_npu/dependency/external/afir/Ascend-MLIR/python) -已默认配置在xla_npu_env中
  • export NPU_AUTO_FUSE_COMPILE_ARTIFACT_ROOT_DIR=: 算子编译产生输出的目录, 每次编译时会在其下创建以时间戳命名的子目录 -已默认配置在xla_npu_env中
  • export SOC_VERSION=Ascend910B1: 设置此环境变量用于标识实际环境使用的NPU芯片版本,查看方式参考acl API。
可选配置
  • export USE_OLD_CANN_STYLE=true: 在使用NPU_AUTO_FUSE_BACKEND=1,即afir融合后端时,如果是在CANN 8.5.0及其之前的版本运行xla-npu用例,则需要设置此环境变量,否则会报错

3. 在 JAX 中使用 NPU 后端

import os import jax import jax.numpy as jnp import numpy as np # 设置 PJRT 插件路径 PLATFORM_NAME = 'npu' LIBRARY_PATH = '/path/to/xla-npu/build/code/xla/bazel-bin/xla/xla_npu/pjrt/c/pjrt_c_api_npu_plugin.so' os.environ['PJRT_NAMES_AND_LIBRARY_PATHS'] = f"{PLATFORM_NAME}:{LIBRARY_PATH}" os.environ['JAX_PLATFORMS'] = PLATFORM_NAME # 触发后端发现 import jax.lib.xla_client # 检查设备 print(f"JAX Default Backend: {jax.default_backend()}") print(f"Available Devices: {jax.devices()}") # 运行计算 x = np.array([[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]]) func = jax.jit(lambda x: jax.nn.gelu(x)) y = func(x) result = y.block_until_ready() print(f"Result: {result}")

特性介绍

xla_npu插件通过实现OpenXLA PJRT接口,将NPU设备接入XLA生态,对接JAX框架。详细特性介绍请访问docs。


支持的型号

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

许可证

本项目采用 Apache License 2.0 许可证。详见 LICENSE 文件。


贡献

欢迎贡献!请随时提交 Issue 或 Pull Request。


联系方式

如有问题或建议,请通过以下方式联系:

  • 提交 Issue

致谢

本项目基于以下开源项目:

  • OpenXLA - XLA 编译器框架
  • JAX - 高性能数值计算库
  • StableHLO - StableHLO 方言

【免费下载链接】xla-npuXLA-NPU 是一个面向华为昇腾NPU硬件的 XLA后端实现。本项目通过接入OpenXLA/XLA开源项目,将XLA开源生态与华为 CANN软件栈集成,对接JAX框架。JAX框架运行时可以直接加载XLA-NPU,使得基于JAX框架开发的模型可以运行在昇腾NPU上,提供推理场景图编译加速能力。项目地址: https://gitcode.com/cann/xla-npu

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

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

CANN/pto-isa内核开发者规则与限制

这个文档列出了一些kernel开发者使用auto模式的一些规则和限制。 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance…

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

CANN/ops-math 二维复制填充算子

aclnnReplicationPad2d 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas…

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

CANN鸿蒙推理快速安装

前提条件 【免费下载链接】cann-recipes-harmony-infer 本项目为鸿蒙开发者提供基于CANN平台的业务实践案例,方便开发者参考实现端云能力迁移及端侧推理部署。 项目地址: https://gitcode.com/cann/cann-recipes-harmony-infer 本项目源码编译用到的前置依赖…

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

KrkrzExtract深度解析:新一代krkrz引擎资源处理终极指南

KrkrzExtract深度解析:新一代krkrz引擎资源处理终极指南 【免费下载链接】KrkrzExtract The next generation of KrkrExtract 项目地址: https://gitcode.com/gh_mirrors/kr/KrkrzExtract 当你面对一个神秘的.xp3游戏资源文件,想要窥探其内部结构…

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

CANN/pyasc digamma函数文档

asc.language.adv.digamma 【免费下载链接】pyasc 本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。 项目地址: https://gitcode.com/cann/pyasc asc.language.adv.digamma(dst: …

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

CANN/ops-math矩阵对角线设置算子

MatrixSetDiag 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系…

作者头像 李华