编译优化(torch_npu)
- 依赖安装。
torch_npu构建依赖PyTorch,目前需要参考编译优化(PyTorch)用毕昇编译器构建PyTorch之后,在环境里重新安装PyTorch,然后再编译torch_npu。
torch_npu推荐在容器里进行编译,参考使用源代码进行安装章节拉取镜像。以下描述均以torch_npu v2.1.0版为例。
参考安装毕昇编译器配置毕昇编译器环境。
- 获取源码。
- 根据需要的优化类型进行相应编译参数设置并进行编译,LTO和PGO优化可以单独使用,也可以叠加一起使用,当前torch_npu已支持基于毕昇编译器的编译优化选项。
- LTO优化
- 配置编译参数,设置环境变量。
export CC=clang export CXX=clang++
- 执行编译命令。
cd torch_npu git clean -dfx bash ci/build.sh --python=3.8 --enable_lto
- 执行ls dist命令,查看编译成功的whl包。
- 安装whl包。
pip install torch_npu-*.whl --force-reinstall --no-deps
- 配置编译参数,设置环境变量。
- LTO+PGO优化
- 一次编译(插桩编译)
- 配置编译参数,设置环境变量。
export CC=clang export CXX=clang++
- 执行编译命令。
cd torch_npu git clean -dfx bash ci/build.sh --python=3.8 --enable_lto --enable_pgo=1
- 配置编译参数,设置环境变量。
- 安装一次编译后的torch_npu的whl包,执行如下命令:
pip3 install /path/to/*.whl --force-reinstall --no-deps
- 运行需要优化的模型,采集Profile信息。
- 模型跑完之后,程序停止执行,在上述文件路径有已生成的profraw格式文件。
- Profile数据格式转换。
llvm-profdata merge /path/to/profile -o default.profdata
该命令可以合并/path/to/profile目录下所有的profraw文件,profile数据文件不受机器环境影响,可以迁移到其他机器上使用。
- 二次编译(使用Profile数据)
配置profdata文件:将前一步骤中生成的default.profdata文件拷贝到torch_npu目录下。请将profdata文件命名为default.profdata。
执行编译命令:cd torch_npu git clean -dfx bash ci/build.sh --python=3.8 --enable_lto --enable_pgo=2
二次编译后的torch_npu的whl包为正式使用的高性能包。
- 一次编译(插桩编译)
- LTO优化
父主题: 编译优化