昇腾社区首页
中文
注册
开发者
下载

制作Rec SDK Torch训练镜像

使用Debian 12制作训练镜像

参考基础镜像构建里的DockerFile和Readme制作镜像。

启动容器

#!/bin/bash
container_name=$1
image_name=$2
docker run \
-it \
--name ${container_name} \
--shm-size="300g" \
-v /etc/localtime:/etc/localtime \
-e ASCEND_VISIBLE_DEVICES=0-7 \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
${image_name} \
/bin/bash

安装Rec SDK Torch

  1. 参考获取Rec SDK Torch软件包获取Rec SDK Torch软件包。
  2. 将软件包拷贝到容器中。可通过以下方式:
    • 在启动容器时,指定一个宿主机目录挂载到容器内,并将下载的软件包放在其中,使容器可以访问到下载的软件包。
      宿主机目录挂载到容器的docker参数示例:
      -v /dir1:/dir1
    • 在宿主机上,使用docker cp指令将软件包拷贝到容器内。
      docker cp指令示例:
      docker cp host_file_path container_name:container_file_path

      其中,host_file_path为宿主机文件路径,container_name为待拷入的docker容器名称,container_file_path为待拷入的docker容器内的文件路径。

  3. 按照如下步骤进行编译和安装包。
    1. 安装Ascend-mindxsdk-torchrec-1.1.0-npu-linux-*.tar.gz
      # 安装Ascend-mindxsdk-torchrec-1.1.0-npu-linux-*.tar.gz
      tar zxvf Ascend-mindxsdk-torchrec-1.1.0-npu-linux-*.tar.gz
      pip3 install torchrec-1.1.0+npu-py3-none-linux_*.whl
    2. 安装Ascend-mindxsdk-hybrid-torchrec-1.1.0-linux-*.tar.gz
      # 安装Ascend-mindxsdk-hybrid-torchrec-1.1.0-linux-*.tar.gz
      tar zxvf Ascend-mindxsdk-hybrid-torchrec-1.1.0-linux-*.tar.gz
      pip3 install hybrid_torchrec-1.1.0-py3-none-linux_*.whl
      pip3 install torchrec_embcache-1.1.0-py3-none-linux_*.whl
    3. 安装算子相关包

      下载仓库源码https://gitcode.com/Ascend/RecSDK,进入源代码目录,按如下指令进行算子相关包的编译和安装:

      # 注:编译算子前,需使能CANN环境变量。默认路径安装CANN包时,使能CANN环境变量指令如下:
      source /usr/local/Ascend/ascend-toolkit/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/2.6.0/common/
      bash build_ops.sh
      安装算子的参数如表1所示。
      表1 参数说明

      输入参数

      说明

      --help | -h

      查询帮助信息。

      --info

      查询安装包的信息。

      --list

      查询安装包的文件列表。

      --check

      查询压缩包完整性。

      --quiet

      静默安装方式。

      --nox11

      不启动xterm终端。

      --noexec

      不执行嵌入的安装脚本。

      --extract=<path>

      直接解压到目标目录,通常与--noexec配合使用,仅解压文件而不运行脚本。

      --tar arg1 [arg2 ...]

      通过tar命令访问压缩包内容。

      --install-path

      安装到指定目录路径。

    安装算子后,/usr/local/Ascend/ascend-toolkit/latest/opp/vendors/目录下会生成split_embedding_codegen_forward_unweighted、backward_codegen_adagrad_unweighted_exact、asynchronous_complete_cumsum、permute2d_sparse_data等文件夹。如果没有相关文件夹,请使用unset ASCEND_CUSTOM_OPP_PATH取消环境变量后重新安装算子。