ModelArts自定义训推镜像构建指南


我们维护了一个预构建好的ModelArts镜像列表,可以先看一下有没有你需要的。

自定义镜像构建的难点

  1. 窄版本:比如 pytorch-npu 2.5.1 依赖 cann 8.2.rc1pytorch-npu 2.7.1 依赖 cann 8.3.rc1,底层的numpy只能是 1.x;
  2. 场景多:
    • 传统训练场景:传统的CV、预测场景,包括基于Transformer架构的传统模型,比如yolo等;
    • 大模型训练场景:依赖(nnal等大模型训练加速包);
    • 传统推理场景:直接使用pytorch或transformers推理
    • 大模型推理场景:使用vllm-ascend等推理框架
    • cpu训练推理场景
    • 其他框架训推场景
  3. 依赖arm环境,且构建中不能验证镜像是否可用。

解决方案

如果构建一个大而全的镜像,试图覆盖所有的基础依赖,场景依赖是行不通的,这样会导致dockerfile会很大,很难维护,镜像也会很大,而且可能会有依赖版本冲突。那怎么解决这种问题呢?

镜像分级构建

将镜像分为如下几个层级:

  • 基础镜像:包括基础库、常用工具、python环境、cann镜像,包括训练推理中可能用到包,包括toolkits(和nnae二选一),kernels,nnal(大模型场景)等;
  • 训练框架镜像:比如pytorch镜像,包括pytorch和npu扩展包pytorch-npu,或者mindspore等其他训练镜像;
  • 场景/应用镜像:面向不同的模型的训推场景都使用自己的镜像,安装所需依赖,保证镜像简洁可维护。
flowchart TD
    ubuntu["ubuntu:22.04"]
    python["python:3.10\n基础库 + Python 环境"]
    cann["cann:8.3rc1-910b\nCANN toolkit/nnae + kernels + nnal"]
    pytorch["pytorch:2.7.1-npu-910b\nPyTorch + torch_npu"]

    scene1["训练场景镜像\n如 YOLO、MiniMind"]
    scene2["大模型训练镜像\n如 LLaMA Fine-tune"]
    scene3["推理场景镜像\n如 vLLM、Transformers"]

    ubuntu --> python
    python --> cann
    cann --> pytorch
    pytorch --> scene1
    pytorch --> scene2
    pytorch --> scene3

    classDef base fill:#e1f5fe,stroke:#0288d1
    classDef framework fill:#f3e5f5,stroke:#7b1fa2
    classDef scene fill:#e8f5e9,stroke:#388e3c
    class ubuntu,python base
    class cann,pytorch framework
    class scene1,scene2,scene3 scene

通过分层的方式完成镜像构建

构建环境

镜像构建需要基于ARM架构的主机进行,可以在云内申请arm虚拟机,也可使用M系列芯片的Mac,使用有互联网访问权限的主机。

X86的主机虽然可以借助QEMU通过指令集转译的方式执行构建,但是速度很慢,且指令支持不完善导致构建不成功。

flowchart LR
    subgraph arm["✅ ARM 构建环境(推荐)"]
        mac["Apple M 系列 Mac| arm64 原生"]
        vm["华为云 ARM 虚拟机 | kCP 920 / 鲲鹏"]
        npu["昇腾 910B 服务器 | 带 NPU 驱动"]
    end

    subgraph x86["⚠️ x86 构建环境(受限)"]
        qemu["x86 主机 + QEMU\n指令转译,速度慢 | 部分包可能构建失败"]
        win["Windows | 支持基于官方 vLLM 镜像 | 添加 ma-user 场景"]
    end

    subgraph output["构建产物"]
        img["linux/arm64 镜像 | 可推送至 SWR"]
    end

    mac -->|docker build| img
    vm -->|docker build| img
    npu -->|docker build| img
    qemu -.->|有限支持| img
    win -.->|有限支持| img

    classDef ok fill:#e8f5e9,stroke:#388e3c
    classDef warn fill:#fff8e1,stroke:#f9a825
    classDef out fill:#e3f2fd,stroke:#1565c0
    class mac,vm,npu ok
    class qemu,win warn
    class img out

当前Windows可以支持基于vLLM-Ascend官方镜像,往镜像里面增加ma-user用户,这个镜像可以构建成功,其他的需要安装依赖的目前看还不太行。

构建基础python镜像

Python基础镜像中指定了基础镜像(比如ubuntu),基础库,也可以带一些调测工具,还有面向ModelArts适配加入的ma-user用户。

python.dockerfile

docker build \
  -f dockerfiles/python.dockerfile \
  --build-arg BASE_IMAGE=ubuntu:22.04 \
  --build-arg PYTHON_VERSION=3.10 \
  --build-arg PIP_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple \
  --build-arg INCLUDE_DEBUG_TOOLS=true \
  -t python:3.10 .

构建CANN镜像

CANN镜像基于上述python镜像构建,还需要提前下载CANN组件CANN资源下载,并放到 packages/<CANN_VERSION>/ 目录下。

cann.dockerfile

docker build \
  -f dockerfiles/cann.dockerfile \
  --build-arg BASE_IMAGE=python:3.10 \
  --build-arg CANN_VERSION=8.3.RC1 \
  --build-arg CHIP_TYPE=910b \
  --build-arg DRIVER_VERSION=24.1.1 \
  --build-arg INSTALL_COMPONENTS=toolkit,nnal,kernels \
  -t cann:83rc1-python310 .

构建pytorch镜像

pytorch-npu.dockerfile

docker build \
  -f dockerfiles/pytorch-npu.dockerfile \
  --build-arg BASE_IMAGE=cann:83rc1-python310 \
  --build-arg TORCH_VERSION=2.7.1 \
  --build-arg TORCH_NPU_VERSION=2.7.1 \
  --build-arg TORCHVISION_VERSION=0.20.1 \
  -t pytorch:2.7.1-npu-910b .

构建应用镜像(以msmodelslim为例)

msmodelslim是一个面向昇腾的模型权重量化工具。

msmodelslim.dockerfile

docker build \
  -f dockerfiles/msmodelslim.dockerfile \
  --build-arg BASE_IMAGE=pytorch:2.7.1-npu-910b \
  -t msmodelslim:latest .

构建完成后,将镜像推送到 SWR:

# 从 SWR 控制台获取登录命令
docker login -u <用户> -p <> swr.cn-global-1.myhuaweicloud.com

# 打 tag
docker tag msmodelslim:latest swr.cn-global-1.myhuaweicloud.com/<>/msmodelslim:latest

# 推送
docker push swr.cn-global-1.myhuaweicloud.com/<>/msmodelslim:latest

提供两种快速构建的方案

上面分层构建的方式提供了一种体系化的构建方案,可以支持更丰富的场景,依赖及版本可以按需指定,但是整体构建流程会过于复杂。

参考如上的思路,这里提供两种快速构建的方案供大家参考:

  1. 使用Dockerfile 生成器快速获取常用Dockerfile
  2. 使用 ascend-docker-factory 自定义构建

使用Dockerfile 生成器快速获取常用Dockerfile

这种方式提供了一个可视化的页面,可以根据使用场景生成对应的一体化Dockerfile。

  1. 访问Dockerfile 生成器,根据实际需求生成对应的Dockerfile和构建命令;
  2. 下载CANN组件:CANN资源下载,注意选择匹配的版本,CPU架构选择AArch64, 软件包格式选择run,组件包参考ascend-cann体系组成下载所需的安装包;并把下载的包放到packages/8.x.x(根据实际的版本确定)目录下;
  3. 完成构建。

比如下载vllm构建示例:

vllm.dockerfile

docker build -t swr.cloud.com/organization/vllm:latest .

使用 ascend-docker-factory 自定义构建

上述基于Dockerfile 生成器的方案可以快速针对常用的镜像完成构建,这里提供了一个工具可以用来适配更丰富的场景。

可以更灵活的指定构建依赖的版本,可以支持更宽的版本配套关系。

下载

git clone https://github.com/ascend-docker-factory.git

定义文件参考

项目中默认有常用场景示例,可以参考示例添加自己的配置。

images:
  python-3.10: # 镜像的id,其他镜像通过这个id引用
    build:
      context: .
      dockerfile: dockerfiles/python.dockerfile # 当前镜像构建所需的dockerfile
      args:
        PYTHON_VERSION: "3.10" # 指定python版本
        BASE_IMAGE: "ubuntu:22.04"
    tags:
      - "python:3.10" # 构建镜像的tag
  cann-8.2rc1-910b:
    depends_on: # 指定依赖的基础镜像
      - python-3.10
    build:
      ...
    tags:
      - "cann:8.2rc1-910b"
  ...

使用

# python build.py -h
usage: build.py [-h] [--target TARGET] [--list] [--graph]

Build Docker images using dockerfile-compose

options:
  -h, --help       show this help message and exit
  --target TARGET  Build specific image and its dependencies
  --list           List all available images
  --graph          Generate Mermaid dependency graph
列举所有可构建的镜像
python build.py --list
Available images:
  python-3.10: python:3.10
  cann-8.3rc1-910b: cann:8.3rc1-910b (depends on: python-3.10)
  pytorch-npu-910b: pytorch:2.5.1-npu-910b (depends on: cann-8.3rc1-910b)
  ...
当前支持的镜像树
flowchart TD
    python_3.10[python-3.10]
    python_3.11[python-3.11]
    ml_basic[ml-basic]
    pytorch_cpu[pytorch-cpu]
    cann_8.0rc1_910b[cann-8.0rc1-910b]
    cann_8.2rc1_910b[cann-8.2rc1-910b]
    cann_8.3rc1_910b[cann-8.3rc1-910b]
    cann_8.2rc1_310p[cann-8.2rc1-310p]
    cann_8.3rc1[cann-8.3rc1]
    pytorch_npu_910b[pytorch-npu-910b]
    pytorch_npu_310p[pytorch-npu-310p]
    ascend_vllm[ascend-vllm]
    msmodelslim[msmodelslim]
    python_3.10 --> ml_basic
    python_3.10 --> pytorch_cpu
    python_3.10 --> cann_8.0rc1_910b
    python_3.10 --> cann_8.2rc1_910b
    python_3.10 --> cann_8.3rc1_910b
    python_3.10 --> cann_8.2rc1_310p
    python_3.10 --> cann_8.3rc1
    cann_8.3rc1_910b --> pytorch_npu_910b
    cann_8.2rc1_310p --> pytorch_npu_310p
    pytorch_npu_910b --> msmodelslim
    %% Styling
    classDef baseImage fill:#e1f5fe
    classDef framework fill:#f3e5f5
    classDef application fill:#e8f5e8
    class python_3.10,python_3.11 baseImage
    class pytorch_cpu,cann_8.0rc1_910b,cann_8.2rc1_910b,cann_8.3rc1_910b,cann_8.2rc1_310p,cann_8.3rc1,pytorch_npu_910b,pytorch_npu_310p framework
    class ml_basic,ascend_vllm,msmodelslim application

详细使用介绍

基础说明和参考,可自行调整版本声明和dockerfile定义,适配自己的业务场景。

Python基础镜像

配置文件,可通过args指定基础镜像和python版本

  python-3.10:
    build:
      context: .
      dockerfile: dockerfiles/python.dockerfile
      args:
        PYTHON_VERSION: "3.10"
        BASE_IMAGE: "ubuntu:22.04"
    tags:
      - "python:3.10"

操作命令

# 构建镜像
python build.py --target python-3.10 # or python-3.12
# 保存镜像
docker save -o python-3.10.tar python:3.10
# tag
docker tag python:3.10 swr.cloud.com/org1/python:3.10
# push
docker push swr.cloud.com/org1/python:3.10
构建昇腾CANN镜像

配置文件,可通过args指定基础镜像,CANN版本等。

  cann-8.2rc1-910b:
    depends_on:
      - python-3.10
    build:
      context: .
      dockerfile: dockerfiles/cann.dockerfile
      args:
        BASE_IMAGE: "python:3.10"
        CANN_VERSION: "8.2.RC1"
        CHIP_TYPE: "910b"
        DRIVER_VERSION: "24.1.1"
        INSTALL_COMPONENTS: "toolkit,kernels,nnal"
    tags:
      - "cann:8.2rc1-910b"

CANN相关的包(包括tookit, nnae, kernels, nnal等,具体下载哪些包,可以参考ascend-cann体系组成)需要提前下载,并将安装包放到工程根目录的packges目录下,以版本号组织。

命令

# 构建镜像
python build.py --target cann-8.3rc1-910b # or cann-8.2rc1-910b
# 保存镜像
docker save -o cann-8.3rc1-910b.tar cann:8.2rc1-910b
# tag
docker tag cann:8.2rc1-910b swr.cloud.com/org1/cann:8.2rc1-910b
# push
docker push swr.cloud.com/org1/cann:8.2rc1-910b

构建pytorch镜像

配置文件,可通过args指定pytorch版本

  pytorch-npu-910b:
    depends_on:
      - cann-8.3rc1-910b
    build:
      context: .
      dockerfile: dockerfiles/pytorch-npu.dockerfile
      args:
        BASE_IMAGE: "cann:8.3rc1-910b"
        TORCH_VERSION: "2.5.1"
        TORCH_NPU_VERSION: "2.5.1"
    tags:
      - "pytorch:2.5.1-npu-910b"

命令

# 构建镜像
python build.py --target pytorch-npu-910b
# 保存镜像
docker save -o pytorch-npu-910b-2.5.1.tar pytorch:2.5.1-npu-910b
# tag
docker tag pytorch:2.5.1-npu-910b swr.cloud.com/pytorch:2.5.1-npu-910b
# push
docker push swr.cloud.com/pytorch:2.5.1-npu-910b

构建vLLM推理框架

配置文件,vLLM作为推理框架,使用外部基础镜像

  ascend-vllm:
    purpose: inference
    app_type: vllm
    app_name: "vLLM Runtime"
    description: "High-performance LLM inference framework"
    standalone: true
    build:
      context: .
      dockerfile: dockerfiles/vllm.dockerfile
      args:
        BASE_IMAGE: "v0.11.0rc2"
        INCLUDE_DEBUG_TOOLS: "true"
    tags:
      - "ascend-vllm:v0.11.0rc2"

命令

# 构建镜像
python build.py --target ascend-vllm
# 保存镜像
docker save -o ascend-vllm-v0.11.0rc2.tar ascend-vllm:v0.11.0rc2
# tag
docker tag ascend-vllm:v0.11.0rc2 swr.cloud.com/org1/ascend-vllm:v0.11.0rc2
# push
docker push swr.cloud.com/org1/ascend-vllm:v0.11.0rc2

预构建镜像

镜像构建比较复杂,对环境要求比较高,这里维护一个常用的ModelArts镜像列表,随时更新,供大家下载使用。

镜像下载地址
vllm-ascend-v0.13.0rc1vllm-ascend-v0.13.0rc1.tar.gz
vllm-ascend-v0.14.0rc1vllm-ascend-v0.14.0rc1.tar.gz

下载后按如下步骤(以vLLM为例)导入并推送到 SWR:

# 1. 载入镜像
docker load -i vllm-ascend-v0.14.0rc1.tar.gz

# 2. 查看载入的镜像名
docker images | grep vllm

# 3. 打 tag(替换为实际的组织和 SWR 地址)
docker tag vllm-ascend:v0.14.0rc1 swr.cn-global-1.myhuaweicloud.com/<>/vllm-ascend:v0.14.0rc1

# 4. 推送到 SWR
docker push swr.cn-global-1.myhuaweicloud.com/<>/vllm-ascend:v0.14.0rc1

附录

SWR

login

SWR服务中获取登录命令

docker login -u <u> -p <p> swr.cn-global-1.cloud.cn

tag

docker tag minimind:v2 swr.cn-global-1.cloud.cn/test-modelarts/minimind:v2

push

docker push  swr.cn-global-1.cloud.cn/test-modelarts/minimind:v2

Docker基础

1. Docker是什么

Docker 是一个开源的容器化平台,可以将应用程序及其依赖打包到一个轻量级、可移植的容器中运行。

容器 vs 虚拟机

虚拟机容器
操作系统包含完整 OS共享宿主 OS 内核
启动速度秒级启动
资源占用GB 级MB 级

2. 为什么需要 Docker?

传统部署的痛点:

  • “在我机器上能跑” — 开发、测试、生产环境不一致,部署后出现各种问题
  • 依赖冲突 — 不同应用需要不同版本的运行时,互相干扰
  • 部署复杂 — 手动安装配置环境繁琐,难以复现和自动化

Docker 的解决方案:

  • 环境一致性 — 开发 = 测试 = 生产,容器确保环境完全相同
  • 快速交付 — 秒级启动,极大加速 CI/CD 流程
  • 资源高效 — 比虚拟机更轻量,同一服务器运行更多应用
flowchart LR
    subgraph old["❌ 传统部署"]
        direction TB
        dev_old["开发环境\nPython 3.8\nnumpy 1.21"]
        test_old["测试环境\nPython 3.9\nnumpy 1.23"]
        prod_old["生产环境\nPython 3.7\nnumpy 1.19"]
        dev_old -. "版本不一致\n'在我机器上能跑'" .-> test_old
        test_old -. "依赖冲突\n部署失败" .-> prod_old
    end

    subgraph new["✅ Docker 部署"]
        direction TB
        img_new["Docker 镜像\nPython 3.10 + numpy 1.26\n环境完全封装"]
        dev_new["开发环境\n运行同一镜像"]
        test_new["测试环境\n运行同一镜像"]
        prod_new["生产环境\n运行同一镜像"]
        img_new --> dev_new
        img_new --> test_new
        img_new --> prod_new
    end

    classDef bad fill:#ffebee,stroke:#c62828
    classDef good fill:#e8f5e9,stroke:#388e3c
    classDef img fill:#e3f2fd,stroke:#1565c0
    class dev_old,test_old,prod_old bad
    class dev_new,test_new,prod_new good
    class img_new img

3. Docker 核心概念

概念说明类比
镜像 (Image)只读模板,包含运行应用所需的一切,通过 Dockerfile 构建”安装光盘”或”快照”
容器 (Container)镜像的运行实例,可读写,可启动/停止/删除/暂停”用光盘安装好的程序”
仓库 (Registry)存储和分发镜像的平台,如 Docker Hub、私有 Registry”应用商店”

4. Docker 基本命令

命令说明
docker pull <image>从仓库拉取镜像
docker run <image>创建并启动容器
docker ps查看运行中的容器
docker stop <id>停止容器
docker build -t <name> .从 Dockerfile 构建镜像
docker images查看本地镜像列表

工作流:Dockerfiledocker buildImagedocker runContainer

flowchart LR
    df["📄 Dockerfile\n构建脚本"]
    reg["🗄️ Registry\n镜像仓库\nDocker Hub / SWR"]
    img["📦 Image\n只读镜像层"]
    con["🚀 Container\n运行实例"]

    df -->|"docker build"| img
    reg -->|"docker pull"| img
    img -->|"docker push"| reg
    img -->|"docker run"| con
    con -->|"docker stop"| img

    classDef file fill:#fff8e1,stroke:#f9a825
    classDef store fill:#e3f2fd,stroke:#1565c0
    classDef artifact fill:#f3e5f5,stroke:#7b1fa2
    classDef running fill:#e8f5e9,stroke:#388e3c
    class df file
    class reg store
    class img artifact
    class con running

5. Dockerfile 核心指令

Dockerfile 是构建 Docker 镜像的脚本文件,每条指令生成镜像的一个层 (Layer)。

指令作用示例
FROM指定基础镜像(必须为第一条指令)FROM python:3.9-slim
WORKDIR设置工作目录WORKDIR /app
COPY将宿主机文件复制到镜像中COPY . /app
ADD类似 COPY,支持 URL 和自动解压ADD app.tar.gz /app
RUN构建时执行命令(安装依赖等)RUN pip install flask
ENV设置环境变量ENV PORT=8080
EXPOSE声明容器监听端口EXPOSE 8080
CMD容器启动时默认执行的命令CMD ["python","app.py"]

示例:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./       # 先复制依赖文件,利用层缓存
RUN npm ci --production
COPY . .
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node", "server.js"]

最佳实践:使用 alpine 基础镜像减小体积;合理排列 COPY 顺序利用层缓存;用 .dockerignore 排除无关文件。

6. Podman — Docker 的替代方案

由于中美贸易摩擦,大量中国企业被列入实体清单 (Entity List),无法使用 Docker Desktop 等商业产品。可以用 Podman 作为替代方案。

由 Red Hat 主导开发,完全兼容 OCI 标准,是 RHEL/CentOS 默认的容器工具。

对比维度DockerPodman
架构模式C/S 架构,需要 dockerd 守护进程无守护进程,直接 fork/exec
安全性默认需要 root 权限运行原生支持 Rootless,更安全
镜像兼容OCI 标准镜像完全兼容 OCI,可直接使用
编排工具Docker Composepodman-compose / 原生 Pod
K8s 集成需借助第三方工具podman generate kube 原生支持
合规风险实体清单企业不可用商业版Apache 2.0 开源,无合规风险

切换方式:alias docker=podman

7. Docker 与 Kubernetes 的关系

Docker 负责创建和运行容器,Kubernetes (K8s) 负责大规模编排和管理这些容器。

  • Docker = 集装箱(打包应用)
  • K8s = 港口调度系统(管理成百上千个集装箱)

典型协作流程:

  1. 开发阶段 — 用 Docker 构建镜像、本地测试
  2. 推送阶段 — 将镜像推送到镜像仓库 (Harbor/SWR)
  3. 编排阶段 — K8s 拉取镜像,自动调度到集群节点
  4. 运行阶段 — K8s 监控容器健康,自动重启/扩容
flowchart LR
    dev["👨‍💻 开发阶段\ndocker build\n本地测试"]
    reg["🗄️ 镜像仓库\nHarbor / SWR"]
    k8s["☸️ Kubernetes\n调度 & 编排"]
    node1["🖥️ 节点 A\nPod / Container"]
    node2["🖥️ 节点 B\nPod / Container"]
    node3["🖥️ 节点 C\nPod / Container"]

    dev -->|"docker push"| reg
    reg -->|"kubectl apply\n拉取镜像"| k8s
    k8s -->|"调度"| node1
    k8s -->|"调度"| node2
    k8s -->|"调度"| node3
    k8s -->|"健康检查\n自动重启/扩容"| k8s

    classDef dev fill:#fff8e1,stroke:#f9a825
    classDef store fill:#e3f2fd,stroke:#1565c0
    classDef orch fill:#fce4ec,stroke:#c62828
    classDef node fill:#e8f5e9,stroke:#388e3c
    class dev dev
    class reg store
    class k8s orch
    class node1,node2,node3 node

K8s 在 AI 场景中的应用:

云厂商K8s 服务AI 集成
AWSEKSSageMaker + EKS GPU 调度
阿里云ACKPAI 平台 + 异构算力调度
华为云CCEModelArts + CCE 昇腾算力调度

Ascend CANN体系组成

昇腾的核心CANN组件列表:

packagesize说明
toolkit~2.0GCANN开发套件包,在训练&推理&开发调试场景下安装,主要用于训练和推理业务、模型转换、算子/应用/模型的开发和编译。如果要调试需要安装这个安装包
nnae~1.4GCANN开发套件包,在训练&推理&开发调试场景下安装,主要用于训练和推理业务,和toolkit二选一,nnae只支持训推能力。
kernels~1.9GCANN二进制算子包,根据自己的卡类型选择具体的软件包,包括单算子API执行(例如aclnn类API)动态库/静态库文件,以及kernel二进制文件。可选,如果没有会在线编译,环境准备会慢一些
nnal~511MCANN神经网络加速库,包含ATB(Ascend Transformer Boost)加速库和SiP(Ascend SiP Boost)信号处理加速库。

toolkit 中的组件

  • CANN-runtime-*-linux.aarch64.run
  • CANN-compiler-*-linux.aarch64.run
  • CANN-hccl-*-linux.aarch64.run
  • CANN-opp-*-linux.aarch64.run
  • Ascend-pyACL_8.1.RC1_linux-aarch64.run
  • Ascend-test-ops_8.1.RC1_linux.run

下面是toolkit比nnae中多的组件:

  • CANN-toolkit-*-linux.aarch64.run
  • CANN-aoe-*-linux.aarch64.run
  • CANN-ncs-*-linux.aarch64.run
  • Ascend-mindstudio-toolkit_8.0.RC1_linux-aarch64.run

nnae中的组件

  • CANN-opp-*-linux.aarch64.run
  • CANN-runtime-*-linux.aarch64.run
  • CANN-compiler-*-linux.aarch64.run
  • CANN-hccl-*-linux.aarch64.run
  • Ascend-pyACL_*_linux-aarch64.run
  • Ascend-test-ops_*_linux.run

kernels组件

  • Ascend910B-opp_kernel-*-linux.aarch64.run

nnal组件[optional]

LLM场景下建议安装。

  • Ascend-cann-atb_*_linux-aarch64.run