赞
踩
上一节说到驱动和固件安装https://blog.csdn.net/lmlmlmj/article/details/136931985?spm=1001.2014.3001.5502
安装conda,这里不作赘述。然后激活环境 source /root/miniconda3/bin/activate
wget https://download.pytorch.org/whl/torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl
pip3 install torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl
通过源码编译安装torch_npu插件时,安装如下环境依赖:
pip3 install pyyaml
pip3 install wheel
pip3 install setuptools
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc3-pytorch1.11.0/torch_npu-1.11.0.post4-cp38-cp38-linux_aarch64.whl
pytorch 发行版 - Gitee.com 这是下载其他版本的地址
pip3 install torch_npu-1.11.0.post4-cp38-cp38-linux_aarch64.whl
执行如下命令,若返回True则说明安装成功
python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
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==7.3.0 cmake==3.12.0
请确保已安装PyTorch框架且setuptools版本小于等于65.7.0,若版本不符合条件,可使用以下命令安装。
pip install setuptools==65.7.0
git clone -b master apex: Ascend apex adapter
cd apex/
bash scripts/build.sh --python=3.#查看多少版本
cd apex/dist/pip3 uninstall apex
pip3 install --upgrade apex-0.1+ascend-cp38-cp38-aarch64.whl # version为python版本和cpu架构
自己安装时一定要和cann,torch版本对上
配置环境变量
export PYTHONPATH={CANN包安装目录}/ascend-toolkit/latest/tools/ms_fmk_transplt/torch_npu_bridge:$PYTHONPATH
在训练脚本中导入以下库代码:
import torch_npu
from torch_npu.contrib import transfer_to_npu
然后进行训练,但发现训练时间过长的问题。结果方法进行性能和精度调优。
apt-get install libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk libharfbuzz-dev libfribidi-dev libxcb1-dev
安装SSE4版本pillow-simd。
pip3 install pillow-simd
安装对应框架版本的torchvision,PyTorch 1.11.0需安装0.12.0版本,PyTorch 2.0.1版本需安装0.15.2版本,PyTorch 2.1.0版本需安装0.16.0版本。。
export GIT_SSL_NO_VERIFY=true
下载源码安装包
git clone https://github.com/opencv/opencv.git cd opencv mkdir -p build
编译安装
cd build
cmake -D BUILD_opencv_python3=yes -D BUILD_opencv_python2=no -D PYTHON3_EXECUTABLE=/usr/local/python3.7.5/bin/python3.7m -D PYTHON3_INCLUDE_DIR=/usr/local/python3.7.5/include/python3.7m -D
PYTHON3_LIBRARY=/usr/local/python3.7.5/lib/libpython3.7m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/python3.7.5/lib/python3.7/site-packages/numpy/core/include -D PYTHON3_PACKAGES_PATH=/usr/local/python3.7.5/lib/python3.7/site-packages -D PYTHON3_DEFAULT_EXECUTABLE=/usr/local/python3.7.5/bin/python3.7m ..
make -j$nproc
make install
在使用.to()指定训练设备时,建议使用non_blocking=True加速数据下沉来提升训练性能。
PyTorch框架提供与算子编译相关的二进制配置参数,可设置模型编译时是否优先在线编译,以此优化模型训练性能。参数配置代码如下,可设置True或False。当前针对Atlas 训练系列产品,若不添加以下代码则默认为True。
先要进行分析工具分析是否存在动态shape
须安装如下依赖。
pip3 install pandas #pandas版本号需大于或等于1.2.4
pip3 install libcst #Python语法树解析器,用于解析Python文件
pip3 install prettytable #将数据可视化为图表形式
pip3 install jedi #三方库套件、亲和API分析时必须安装
进入分析工具所在路径。
cd Ascend-cann-toolkit安装目录/ascend-toolkit/latest/tools/ms_fmk_transplt/
./pytorch_analyse.sh -i 待分析脚本路径 -o 分析结果输出路径 -v 待分析脚本框架版本 -m dynamic_shape
然后在分析脚本下修改脚本,将
for i, (ings, targets, paths, _) in pbar:修改为
for i, (ings, targets, paths, _) in DETECTOR.start(pbar):
运行,读取msft_dynamic_shape_analysis_report.csv 分析为动态shape,需要使用算子二进制
使用算子二进制之前,先进行安装算子包Ascend-cann-kernels-xxx_linux.run
获取软件包https://www.hiascend.com/zh/developer/download/community/result?module=cann
进行安装
安装成功。
动态shape场景下,在模型脚本的main_worker函数中配置进程级别的开关,配置为False。
torch_npu.npu.set_compile_mode(jit_compile=False)
当前昇腾AI处理器支持NPU亲和的融合优化器功能,优化器做了昇腾AI处理器亲和性优化,使性能提升。
按照自己是那种优化器进行替换
然后配置文件进行训练
训练速度果然上来了,速度很快,不根据给出的性能指标,比A100稍慢。
后续再讲
参考文献:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。