制作Rec SDK Torch训练镜像
启动容器
#!/bin/bash
container_name=$1
image_name=$2
docker run \
-it \
--name ${container_name} \
--shm-size="300g" \
-m 300g \
-v /etc/localtime:/etc/localtime:ro \
-e ASCEND_VISIBLE_DEVICES=0-7 \
-v /etc/ascend_install.info:/etc/ascend_install.info:ro \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
${image_name} \
/bin/bash
部分参数说明如下:
- -m 300g表示设置容器内可以使用的内存大小上限为300G,可根据实际情况进行配置。
- -e ASCEND_VISIBLE_DEVICES=0-7表示将服务器上编号为device0-device7的NPU设备挂载到容器内。可根据实际情况进行配置。
安装Rec SDK Torch
- 参考获取Rec SDK Torch软件包获取Rec SDK Torch软件包。
- 将软件包拷贝到容器中。可通过以下方式:
- 按照如下步骤进行编译和安装包。
- 安装TorchRec昇腾注册包
TorchRec昇腾注册包是基于TorchRec源码做的NPU设备适配。可通过Rec SDK Torch提供的patch文件和TorchRec源码的固定分支编译出该注册包。
- 安装Ascend-mindxsdk-hybrid-torchrec-*-linux-*.tar.gz
# 安装Ascend-mindxsdk-hybrid-torchrec-*-linux-*.tar.gz tar zxvf Ascend-mindxsdk-hybrid-torchrec-*-linux-*.tar.gz pip3 install hybrid_torchrec-*-py3-none-linux_*.whl pip3 install torchrec_embcache-*-py3-none-linux_*.whl
- 安装算子相关包
下载仓库源码https://gitcode.com/Ascend/RecSDK,进入源代码目录,按如下指令进行算子相关包的编译和安装(算子包的编译不区分PyTorch版本):
# 注:编译算子前,需使能CANN环境变量。默认路径安装CANN包时,使能CANN环境变量指令如下: source /usr/local/Ascend/cann/set_env.sh unset ASCEND_CUSTOM_OPP_PATH cd cust_op/ascendc_op/build # 注:部分算子编译依赖外部组件,请参考build文件夹下README文件下载依赖,否则会编译失败。 # 编译算子包(编译时会自动安装,若仅安装部分,可在其他容器内编译,再拷贝到当前环境安装) bash build_ai_core_op.sh v220 # 可选:安装指定算子包 # 方式1:批量安装算子包。如下指令表示安装非"310p.run/A3.run"结尾的所有算子包,可根据设备环境修改匹配关键字。 find . -name "*.run" ! -name "*310p.run" ! -name "*A3.run" -exec bash {} \; # 方式2:自行选择需要的算子包安装,指令示例: bash mxrec_opp_split_embedding_codegen_forward_unweighted.run # 安装算子适配层 libfbgemm_npu_api.so cd ../../../../framework/torch_plugin/torch_library/common/ bash build_ops.sh安装算子的参数如表1所示。
安装算子后,/usr/local/Ascend/cann/opp/vendors/目录下会生成split_embedding_codegen_forward_unweighted、backward_codegen_adagrad_unweighted_exact、asynchronous_complete_cumsum、permute2d_sparse_data等文件夹。如果没有相关文件夹,请使用unset ASCEND_CUSTOM_OPP_PATH取消环境变量后重新安装算子。
- 安装TorchRec昇腾注册包
父主题: 部署容器内的开发环境