WSL安装CANN的亲身经验分享

  •  安装依赖 
  • 可以参照文档

https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC2alpha002/softwareinst/instg/instg_0026.html?sub_id=%2Fzh%2FCANNCommunityEdition%2F80RC2alpha002%2Fsoftwareinst%2Finstg%2Finstg_0133.html 

  • 这一步只是验证有没有安装完全
  • 最以逸待劳的方法就是直接用后面的下载命令,直接全部重新安装,管他有没有装全
  • 不过要注意版本的限制,后面有讲

gcc --version 
g++ --version 
make --version 
cmake --version 
dpkg -l zlib1g| grep zlib1g| grep ii 
dpkg -l zlib1g-dev| grep zlib1g-dev| grep ii 
dpkg -l libsqlite3-dev| grep libsqlite3-dev| grep ii 
dpkg -l openssl| grep openssl| grep ii 
dpkg -l libssl-dev| grep libssl-dev| grep ii 
dpkg -l libffi-dev| grep libffi-dev| grep ii 
dpkg -l libbz2-dev| grep libbz2-dev| grep ii 
dpkg -l libxslt1-dev| grep libxslt1-dev| grep ii 
dpkg -l unzip| grep unzip| grep ii 
dpkg -l pciutils| grep pciutils| grep ii 
dpkg -l net-tools| grep net-tools| grep ii 
dpkg -l libblas-dev| grep libblas-dev| grep ii 
dpkg -l gfortran| grep gfortran| grep ii 
dpkg -l libblas3| grep libblas3| grep ii 复制

  •  这是正常的反应,就跟1+1=2一样,如果没反应那就不对,出事了

gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 
g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 
GNU Make 4.3 
cmake version 3.22.1 
ii  zlib1g:arm64   1:1.2.11.dfsg-2ubuntu9 arm64        compression library - runtime 
ii  zlib1g-dev:arm64 1:1.2.11.dfsg-2ubuntu9 arm64        compression library - development 
ii  libsqlite3-dev:arm64 3.37.2-2     arm64        SQLite 3 development files 
ii  openssl        3.0.2-0ubuntu1 arm64        Secure Sockets Layer toolkit - cryptographic utility 
ii  libssl-dev:arm64 3.0.2-0ubuntu1 arm64        Secure Sockets Layer toolkit - development files 
ii  libffi-dev:arm64 3.4.2-4      arm64        Foreign Function Interface library (development files) 
ii  libbz2-dev:amd64 1.0.6-8.1ubuntu0.2 arm64        high-quality block-sorting file compressor library - development 
ii  libxslt1-dev:amd64 1.1.29-5ubuntu0.3 arm64        XSLT 1.0 processing library - development kit 
ii  unzip          6.0-26ubuntu3 arm64        De-archiver for .zip files 
ii  pciutils       1:3.7.0-6    arm64        PCI utilities 
ii  net-tools      1.60+git20181103.0eebece-1ubuntu5 arm64        NET-3 networking toolkit 
libblas-dev:arm64 3.9.0-1build1 arm64        Basic Linear Algebra Subroutines 3, static library 
gfortran       4:9.3.0-1ubuntu2 arm64        GNU Fortran 95 compiler 
libblas3:arm64 3.9.0-1build1 arm64        Basic Linear Algebra Reference implementations, shared library 复制

  •  以逸待劳一步通命令
sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev libbz2-dev libxslt1-dev unzip pciutils net-tools libblas-dev gfortran libblas3 复制

  • 检查python 有没有正常安装 
  • 重点是看版本是否在3.7.X以上,具体看说明

python3 --version 
pip3 --version 复制

  •  安装Python 相应的库
  • 这里要注意,版本限制,比如实测中numpy 的版本会使得ATC转换失败

pip3 install attrs 
pip3 install numpy 
pip3 install decorator 
pip3 install sympy 
pip3 install cffi 
pip3 install pyyaml 
pip3 install pathlib2 
pip3 install psutil 
pip3 install protobuf
pip3 install scipy 
pip3 install requests 
pip3 install absl-py 复制

 

  •  numpy 版本会影响程序 

 

pip index versions numpy 
pip install numpy==1.24.0 复制

  • 安装具体过程,下载社区版本的 Ascend-cann-toolkit_8.0.RC2.alpha002_linux-x86_64.run
  • 注意PC要设置好--install-path,除非你不想C盘炸了的话

 

./Ascend-cann-toolkit_8.0.RC2.alpha002_linux-x86_64.run --install-path=/mnt/m/R6-GPU/W2_SZ_notebook_20240619/cann --install 

vim ~/.bashrc 

source /mnt/m/R6-GPU/W2_SZ_notebook_20240619/cann/ascend-toolkit/set_env.sh 
export LD_LIBRARY_PATH=/mnt/m/R6-GPU/W2_SZ_notebook_20240619/cann/ascend-toolkit/latest/x86_64-linux/devlib/:$LD_LIBRARY_PATH 

source ~/.bashrc 复制

  • 成功安装结果如下

  • 在包含动态shape网络或单算子API(例如aclnn类API)场景下需要安装算子包Ascend-cann-kernels-_xxx__linux.run,支持多个芯片类型的二进制算子包安装在同一台设备上 

 

cke_609883.png

  • 安装kernels算子支持 多种特性安装
  • 多次选择特性安装时,新特性为增量安装,不会覆盖已安装特性 
    • aclnn_ops_infer 
    • aclnn_ops_train 
    • aclnn_math 
    • aclnn_rand 
./Ascend-cann-kernels-310b_8.0.RC2.alpha002_linux.run --install-path=/mnt/m/R6-GPU/W2_SZ_notebook_20240619/cann --feature=aclnn_ops_infer --install 复制

  
 

cke_668590.png

  

  • 若开发环境和运行环境上的操作系统架构不同,需在开发环境中使用交叉编译工具,并使用运行环境架构的库文件进行编译
  • 这样编译出来的可执行文件,才可以在运行环境中执行。 

 

sudo apt-get install g++-aarch64-linux-gnu 复制

  

  • 以上就安装成功了
  • 下面进行具体ATC转换 
  • 使用samples仓库中01-yolov5案例进行测试 
  •  我们需要将onnx转换为om模型进行使用,onnx文件在下列链接
  • https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/downloads/23.0.RC1/Ascend-devkit_23.0.RC1_downloads.xlsx 
  • 以下为转换指令:

atc --model=yolov5s.onnx --framework=5 --output=yolov5s_bs1 --input_format=NCHW --input_shape="input_image:1,3,640,640" --log=error --soc_version=Ascend310B4 复制

其中转换参数的含义为:   

  • model:输入模型路径 
  • framework:原始网络模型框架类型,5表示ONNX 
  • output:输出模型路径 
  •  input_format:输入Tensor的内存排列方式 
  • input_shape:指定模型输入数据的shape 
  • log:日志级别 
  • soc_version:昇腾AI处理器型号 
  • input_fp16_nodes:指定输入数据类型为FP16的输入节点名称 
  • output_type:指定网络输出数据类型或指定某个输出节点的输出类型 

具体测试过程见论坛帖

https://www.hiascend.com/forum/thread-0272154252863718072-1-1.html?postId=0372154255171980769

  • 总结如下,发现的两个待解决问题 
    • 7.7.3版本netron打开ATC导出的om文件,会出现乱码情况,但是同样的软件打开案例仓里自带的yolo.om不会出现乱码 
    • 使用启智社区CANN7镜像生成的om,放进yolov5官方案例可以运行,用WSL + cann8 和启智cann8版本ATC生成的om,放进官方案例都不能运行,而且爆出内部错误的提示,看报错都是内部存储空间的问题 
    • 所以总结来说前面花费大时间进行配置环境都没什么卵用,可能安装wsl + cann7可以走得通,因为用启智cann7镜像进行ATC导出就可以-因此再一次被环境配置戏耍,感觉到卧式煞笔的无力感 
    • 不知道有多少伙伴亲自动手去ATC转换,还是就是跑了一下官方案例 
    • 如果有伙伴使用cann8能够成功转换,还望告知,是不是命令要做修改,还是咋样。。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值