|
| 1 | +# 太初 SDAA 安装说明 |
| 2 | + |
| 3 | +飞桨框架 SDAA 版支持太初 SDAA 的训练和推理,提供两种安装方式: |
| 4 | + |
| 5 | +1. 通过飞桨官网发布的 wheel 包安装 |
| 6 | +2. 通过源代码编译安装得到 wheel 包 |
| 7 | + |
| 8 | +## 太初 SDAA 系统要求 |
| 9 | + |
| 10 | +| 要求类型 | 要求内容 | |
| 11 | +| --------- | -------- | |
| 12 | +| 芯片型号 | 太初元碁 系列芯片,包括 T100 | |
| 13 | +| 操作系统 | Linux 操作系统,包括 CentOS、Ubuntu、KylinV10 等 | |
| 14 | + |
| 15 | +## 运行环境准备 |
| 16 | + |
| 17 | +推荐使用太初官方发布的太初 SDAA 开发镜像,该镜像预装有太初 SDAA 基础运行环境库。 |
| 18 | + |
| 19 | +```bash |
| 20 | +# 拉取镜像 |
| 21 | +wget http://mirrors.tecorigin.com/repository/teco-docker-tar-repo/release/ubuntu22.04/x86_64/2.1.0/paddle-2.1.0-paddle_sdaa2.1.0.tar |
| 22 | +docker load < paddle-2.1.0-paddle_sdaa2.1.0.tar |
| 23 | +``` |
| 24 | + |
| 25 | +```bash |
| 26 | +# 启动容器 |
| 27 | +docker run -itd --name="paddle-SDAA-dev" -v $(pwd):/work --net=host \ |
| 28 | + --device=/dev/tcaicard0 --device=/dev/tcaicard1 --device=/dev/tcaicard2 --device=/dev/tcaicard3 \ |
| 29 | + --cap-add SYS_PTRACE --cap-add SYS_ADMIN --shm-size 128g \ |
| 30 | + jfrog.tecorigin.net/tecotp-docker/release/ubuntu22.04/x86_64/paddle:2.1.0-paddle_sdaa2.1.0 /bin/bash |
| 31 | +``` |
| 32 | + |
| 33 | +#### 选项说明及可调整参数 |
| 34 | + |
| 35 | +##### ① `--name paddle-SDAA-dev` |
| 36 | +- **作用**:指定容器名称。 |
| 37 | +- **可调整**: |
| 38 | + - 用户可改为其他名称,例如 `paddle-SDAA-test`,方便区分不同实验。 |
| 39 | + |
| 40 | +##### ② `-v $(pwd):/work` |
| 41 | +- **作用**:挂载本地目录到容器内 `/work` 目录。 |
| 42 | +- **可调整**: |
| 43 | + - 可以修改 `$(pwd)` 为实际路径,例如 `-v /data/projects:/work`,让容器访问宿主机的数据。 |
| 44 | + |
| 45 | +##### ③ `--shm-size=128G` |
| 46 | +- **作用**:设置共享内存大小,影响数据处理和计算效率。 |
| 47 | +- **可调整**: |
| 48 | + - 若内存有限,可降低,如 `--shm-size=32G`,但可能影响大规模训练。 |
| 49 | + - 若训练任务需要更大共享内存,可提高,如 `--shm-size=256G`。 |
| 50 | + |
| 51 | +```bash |
| 52 | +# 检查容器内是否正常识别太初 SDAA 设备 |
| 53 | +teco-smi |
| 54 | +``` |
| 55 | + |
| 56 | +```bash |
| 57 | +# 预期输出 |
| 58 | ++-----------------------------------------------------------------------------+ |
| 59 | +| TECO-SMI: 1.12.0 SDAADriver: 2.1.0 SDAARuntime: 2.1.0 | |
| 60 | +|-------------------------------+----------------------+----------------------| |
| 61 | +| Index Name | Bus-Id | Health SPE-Util | |
| 62 | +| Temp Pwr Usage| Memory-Usage| | |
| 63 | +|=============================================================================| |
| 64 | +| 0 TECO_AICARD_01 | 00000000:4F:00.0 | OK 0% | |
| 65 | +| 35C 190W | 0MB / 16384MB | | |
| 66 | +|-------------------------------+----------------------+----------------------| |
| 67 | +| 1 TECO_AICARD_01 | 00000000:4F:00.0 | OK 0% | |
| 68 | +| 35C 190W | 0MB / 16384MB | | |
| 69 | +|-------------------------------+----------------------+----------------------| |
| 70 | +| 2 TECO_AICARD_01 | 00000000:4F:00.0 | OK 0% | |
| 71 | +| 35C 190W | 0MB / 16384MB | | |
| 72 | +|-------------------------------+----------------------+----------------------| |
| 73 | +| 3 TECO_AICARD_01 | 00000000:52:00.0 | OK 0% | |
| 74 | +| 37C 94W | 0MB / 16384MB | | |
| 75 | ++-------------------------------+----------------------+----------------------+ |
| 76 | +``` |
| 77 | + |
| 78 | +## 安装飞桨框架 |
| 79 | + |
| 80 | +### 安装方式一:wheel 包安装 |
| 81 | + |
| 82 | +SDAA 支持插件式安装,需先安装飞桨 CPU 安装包,再安装飞桨 SDAA 插件包。在启动的 docker 容器中,执行以下命令: |
| 83 | + |
| 84 | +```bash |
| 85 | +# 先安装飞桨 CPU 安装包 |
| 86 | +pip install paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu |
| 87 | + |
| 88 | +# 再安装飞桨 SDAA 插件包 |
| 89 | +pip install paddle-sdaa -i https://www.paddlepaddle.org.cn/packages/nightly/sdaa |
| 90 | +``` |
| 91 | +⚠️ 注意:nightly 版本为每日构建,可能存在不稳定性。如果需要更稳定的版本,建议使用 3.0 版本:https://www.paddlepaddle.org.cn/packages/stable/sdaa/paddle-sdaa/ |
| 92 | +### 安装方式二:源代码编译安装 |
| 93 | + |
| 94 | +在启动的 docker 容器中,先安装飞桨 CPU 安装包,再下载 PaddleCustomDevice 源码编译得到飞桨 SDAA 插件包。 |
| 95 | + |
| 96 | +```bash |
| 97 | +# 下载 PaddleCustomDevice 源码 |
| 98 | +git clone https://github.com/PaddlePaddle/PaddleCustomDevice |
| 99 | + |
| 100 | +# 在 PaddleCUstomDevice 根目录下执行以下指令更新子模块代码 |
| 101 | +git submodule sync |
| 102 | +git submodule update --init --recursive |
| 103 | + |
| 104 | +# 进入硬件后端(太初 SDAA)目录 |
| 105 | +cd backends/sdaa |
| 106 | + |
| 107 | +# 先安装飞桨 CPU 安装包 |
| 108 | +pip install paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu |
| 109 | + |
| 110 | +# 执行编译脚本 |
| 111 | +bash compile.sh |
| 112 | + |
| 113 | +# 编译产出在 build/dist 路径下,使用 pip 安装 |
| 114 | +pip install build/dist/*.whl --force-reinstall |
| 115 | +``` |
| 116 | +⚠️ 注意:nightly 版本为每日构建,可能存在不稳定性。如果需要更稳定的版本,建议使用 3.0 版本。 |
| 117 | +## 基础功能检查 |
| 118 | + |
| 119 | +安装完成后,在 docker 容器中输入如下命令进行飞桨基础健康功能的检查。 |
| 120 | + |
| 121 | +```bash |
| 122 | +# 列出可用硬件后端 |
| 123 | +python3 -c "import paddle; print(paddle.device.get_all_custom_device_type())" |
| 124 | +``` |
| 125 | +```bash |
| 126 | +# 预期得到如下输出结果 |
| 127 | +['sdaa'] |
| 128 | +``` |
| 129 | +```bash |
| 130 | +# 使用 paddle_sdaa utils 模块的 `run_check` 功能检查 paddle-sdaa 插件和 PaddlePaddle 主框架是否正常安装 |
| 131 | +python3 -c "import paddle_sdaa; paddle_sdaa.utils.run_check()" |
| 132 | +``` |
| 133 | +```bash |
| 134 | +# 预期得到输出如下 |
| 135 | ++--------------+---------------------+-----------------+ |
| 136 | +| Dependence | Compilation Version | Current Version | |
| 137 | ++--------------+---------------------+-----------------+ |
| 138 | +| sdaa_driver | 2.1.0 | 2.1.0 | |
| 139 | +| sdaa_runtime | 2.1.0 | 2.1.0 | |
| 140 | ++--------------+---------------------+-----------------+ |
| 141 | +``` |
| 142 | +## 如何卸载 |
| 143 | + |
| 144 | +请使用以下命令卸载 Paddle: |
| 145 | + |
| 146 | +```bash |
| 147 | +pip uninstall paddlepaddle paddle-sdaa |
| 148 | +``` |
0 commit comments