下载
中文
注册

(可选)安装APEX模块

混合精度训练是在训练时混合使用单精度(float32)与半精度(float16)数据类型,将两者结合在一起,并使用相同的超参数实现了与float32几乎相同的精度。

在迁移完成、训练开始之前,基于NPU芯片的架构特性,用户需要开启混合精度,可以提升模型的性能。APEX混合精度模块是一个集优化性能、精度收敛于一身的综合优化库,可以提供不同场景下的混合精度训练支持。

推荐用户通过编译源码包安装APEX模块。

  • 方式一(推荐):容器场景
    1. 下载APEX源码。
      git clone -b master https://gitee.com/ascend/apex.git  
    2. 构建镜像。
      cd apex/scripts/docker/{arch} 
      docker build -t manylinux-builder:v1 .

      {arch}表示CPU架构(X86或ARM)。

    3. 进入Docker容器,并将APEX源代码挂载至容器内。
      docker run -it -v /{code_path}/apex:/home/apex manylinux-builder:v1 bash

      {code_path}表示APEX源代码路径,请根据实际情况进行替换。

    4. 安装torch。
      pip3.8 install torch==2.1.0

      以Python3.8、PyTorch 2.1.0为例,其他Python及torch版本请根据实际场景修改命令再执行。

    5. 编译生成二进制安装包。
      cd /home/apex
      bash scripts/build.sh --python=3.8

      指定Python版本编包方式,以Python3.8为例,其他Python版本请使用 --python=3.9、--python3.10或--python3.11。

      命令完成后进入apex/dist/目录,可获取wheel格式的二进制安装包。

      如果返回类似如下回显信息:

      1
      fatal: unable to access 'https://gitee.com/ascend/samples.git/': Peer's certificate issuer has been marked as not trusted by the user.
      

      则执行git config --global http.sslVerify "false"命令关闭证书检验,再执行编译命令。

    6. 在运行环境中如下命令进行安装。如果使用非root用户安装,需要在命令后加--user
      pip3 uninstall apex      # 可选,若当前python未安装apex,可不执行
      pip3 install apex-0.1+ascend-cp3x-cp3x-arch.whl     # x指python版本尾号,arch指CPU架构
  • 方式二:物理机及虚拟机场景
    1. 安装依赖。

      选择编译安装方式安装时需要安装系统依赖,根据不同类型的操作系统,选择对应的命令安装所需依赖。
      • openEuler系列(openEuler、CentOS、Kylin、BCLinux、BC-Linux-for-Euler、UOS201050e、UOS20 1020e、UOSV20、AntOS、CTyunOS、CULinux、Tlinux):
        yum install -y patch libjpeg-turbo-devel dos2unix openblas git 
        yum install -y gcc==10.2.0 cmake==3.18.0
      • Debian系列(Ubuntu、Debian、UOS20、UOS20 SP1):
        apt-get install -y patch build-essential libbz2-dev libreadline-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev m4 dos2unix libopenblas-dev git 
        apt-get install -y gcc==10.2.0 cmake==3.18.0

      AArch64架构安装gcc10.2.0版本,X86_64架构安装gcc9.3.1版本,cmake则需为3.18.0版本及以上,可参见安装10.2.0版本gcc安装3.18.0版本cmake

    2. 请确保已安装PyTorch框架且setuptools版本小于等于65.7.0,若版本不符合条件,可使用以下命令安装。
      pip install setuptools==65.7.0
    3. 获取昇腾适配的APEX源码。
      git clone -b master https://gitee.com/ascend/apex.git
    4. 进入昇腾适配的APEX源码目录,执行命令编译生成二进制安装包。
      cd apex
      bash scripts/build.sh --python=3.8

      支持3.8、3.9、3.10及3.11,并请确保NPU版本的PyTorch可以正常使用,否则会影响APEX的编译。

      命令执行过程中会自动拉取APEX官方源码,请保证网络畅通,完成后将在apex/dist目录下生成二进制安装包。

    5. 执行如下命令进行安装。如果使用非root用户安装,需要在命令后加--user。
      cd apex/dist/ 
      pip3 uninstall apex      # 可选,若当前python未安装apex,可不执行
      pip3 install apex-0.1+ascend-cp3x-cp3x-arch.whl     # x指python版本尾号,arch指CPU架构
      命令示例:
      # 若用户在x86架构下安装,请将命令中文件包名中的“aarch64”改为“x86_64”。 
      pip3 install apex-0.1+ascend-cp38-cp38-linux_aarch64.whl