源码安装PyTorch

编译安装前准备

安装PyTorch依赖前请确保依赖列表中的OS依赖已全部安装。

安装系统依赖(以CentOS与Ubuntu操作系统为例)。

openEuler、Kylin V10、UOS 1020e系统可参考CentOS进行安装。
  • CentOS
    yum install -y patch libjpeg-turbo-devel dos2unix git 
  • Ubuntu
    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 git 

查看gcc和cmake版本。

gcc --version
cmake --version

要求7.3.0版本及以上gcc,如果版本低于7.3.0,请参见安装7.3.0版本gcc安装。若用户要安装1.11.0版本PyTorch,则gcc需为7.5.0版本以上。

要求3.12.0版本及以上cmake,如果版本低于3.12.0,请参见安装3.12.0版本cmake安装。

PyTorch配套的Python版本是:Python3.7.x(3.7.5~3.7.11)、Python3.8.x(3.8.0~3.8.11)、Python3.9.x(3.9.0~3.9.2)。

安装PyTorch 1.8.1或1.11.0

以下操作步骤以安装PyTorch 1.8.1版本为例。

  1. 安装官方torch包。

    • 在aarch64架构下,用户可以选择编译安装官方torch包。
      1. 下载PyTorch v1.8.1源码包,1.11.0版本请替换版本号为v1.11.0。
        git clone -b v1.8.1 https://github.com/pytorch/pytorch.git --depth=1 pytorch_v1.8.1
      2. 进入源码包获取被动依赖代码。
        cd pytorch_v1.8.1
        git submodule sync
        git submodule update --init --recursive
      3. 配置环境变量。
        export USE_XNNPACK=0
      4. 执行编译安装。
        python3 setup.py install

  1. 编译生成PyTorch插件的二进制安装包。

    # 下载对应PyTorch版本分支代码,进入插件根目录, 以v1.8.1-3.0.0为例,1.11.0版本请替换版本号为v1.11.0-3.0.0
    git clone -b v1.8.1-3.0.0 https://gitee.com/ascend/pytorch.git 
    cd pytorch    
    # 指定Python版本编包方式,以Python3.7为例,其他Python版本请使用 --python=3.8或--python3.9
    bash ci/build.sh --python=3.7

  2. 安装pytorch/dist目录下生成的插件torch_npu包。

    pip3 install --upgrade dist/torch_npu-1.8.1-cp37-cp37m-linux_aarch64.whl
    # 若用户在x86架构下安装插件,或安装1.11.0版本,请替换为对应的whl包。

  3. 安装对应框架版本的torchvision。

    #PyTorch 1.8.1需安装0.9.1版本,PyTorch 1.11.0需安装0.12.0版本
    pip3 install torchvision==0.9.1   

  4. 配置环境变量,验证是否安装成功。

    1. 执行单元测试脚本,验证PyTorch是否安装成功。
      cd test/test_network_ops/
      python3 test_div.py

      结果显示OK证明PyTorch框架与插件安装成功。

安装PyTorch 1.5.0

PyTorch 1.5.0只支持通过编译方式安装。

  1. 获取适配昇腾AI处理器的PyTorch源代码。

    git clone -b v1.5.0-3.0.0 https://gitee.com/ascend/pytorch.git

  2. 获取原生PyTorch源代码和third_party代码。

    在当前目录pytorch/下获取原生PyTorch1.5.0的源代码。
    cd pytorch
    git clone -b v1.5.0 --depth=1 https://github.com/pytorch/pytorch.git
    cd pytorch 
    git submodule sync
    git submodule update --init --recursive

    请关注PyTorch原生社区的安全板块Issue板块是否有安全相关问题修复,并根据官方社区的更新与修复及时更新原生PyTorch代码。

  3. 生成适配NPU的PyTorch全量代码。

    进入到pytorch/scripts目录,根据选择的版本执行,执行脚本,会在pytorch/pytorch/目录中生成npu适配全量代码。
    cd ../scripts/
    bash gen.sh

  4. 进入到pytorch/pytorch/目录,安装依赖库。

    cd ../pytorch
    pip3 install -r requirements.txt

  5. 编译生成PyTorch的二进制安装包。

    1. 在pytorch/pytorch/目录,执行以下命令。
      # 指定Python版本编包方式,以Python3.7为例
      bash build.sh --python=3.7
    2. 执行以下命令,安装pytorch/dist目录下生成的torch包,{arch}为架构名称。
      cd dist
      pip3 install --upgrade torch-1.5.0.{version}+ascend-cp37-cp37m-linux_{arch}.whl

  6. 安装对应框架版本的torchvision。

    pip3 install torchvision==0.2.2.post3 

  7. 配置环境变量,验证是否安装成功。

    1. 执行命令运行环境变量配置脚本。
      cd ../
      source env.sh
    2. 执行单元测试脚本,验证PyTorch是否安装成功。
      cd ../
      python3 pytorch1.5.0/test/test_npu/test_network_ops/test_div.py

      结果显示OK证明PyTorch框架安装成功。