CANN 版本升级及 Add 算子调试
本篇文章是将 CANN 版本升级到最新的 8.0.0C1.alpha003,并成功运行 Add 算子。因为我们没有物理设备,是在服务器上运行,所以是无法安装固件的,只需要升级驱动和 CANN 就可以了。
在升级前,要先查看版本是否支持。参考下面的文档,当时这个文档并没有表明如何查看当前的 CANN 版本。
环境升级
远程登录工具下载
在购买服务器并绑定 IP 后,登陆方式是多种的,可以考虑 cloudshell 和 VNC 登陆方式,我们这里采用第三方远程登录工具登录,使用的工具是 mobaxterm,之所以选择该工具是因为它支持上传文件到服务器。
Mobaxterm 下载链接可以自行百度,在这里就不做介绍了。
解压后,我们可以直接运行,不用安装。
![](https://static001.geekbang.org/infoq/28/28a4ec15aa4483a9820ff55bc71ef2b9.png)
打开后,点击 session,输入 IP 地址,就可以登录了。
![](https://static001.geekbang.org/infoq/de/de25a71ec7babaad54011bca23ccd33f.png)
驱动和 CANN 下载
服务器 Ascend 310 本身安装的驱动是 20 版本,我们要先将驱动升级到 23 版本。
驱动下载链接:
选择相对应的版本:
![](https://static001.geekbang.org/infoq/60/60836c1eb71dd03749bc1cae67453800.png)
CANN 下载链接:
https://www.hiascend.com/developer/download/community/result?module=cann
选择需要的版本进行下载:
![](https://static001.geekbang.org/infoq/22/22c28dfc49d4cd3113ea2129a7c8367d.png)
下载完成后,我们可以直接将对应的文件拖拽到相关的文件夹内。
![](https://static001.geekbang.org/infoq/ab/ab250933a28b152cee57d3b110553425.png)
驱动和 CANN 升级
首先要确定用户是 root,然后给下载的驱动包和 CANN 开发套件分别加上执行权限并安装。
切换到文件所在的文件夹,执行 chmod +x ./A300-3010-npu-driver_23.0.0_linux-x86_64.run,
![](https://static001.geekbang.org/infoq/cb/cb21192657991a53bd6b0e41d0867fa0.png)
权限加上以后,在升级前,要先校验下文件。
./A300-3010-npu-driver_23.0.0_linux-x86_64.run --check
没问题的话,在执行升级命令:
./A300-3010-npu-driver_23.0.0_linux-x86_64.run --upgrade
![](https://static001.geekbang.org/infoq/31/31357dd179023922884294437e01a8cd.png)
执行后,会提示要重启设备,执行 reboot 命令重启服务器即可。执行 npu-smi info 命令查看是否升级成功:
![](https://static001.geekbang.org/infoq/43/438f4512c97268b5ec1e9f7cba299e47.png)
驱动成功安装后,我们可以考虑升级 CANN 了,和驱动相似,我们也要先加权限。
切换到 CANN 开发套件所在文件夹,加权限:
chmod +x ./Ascend-cann-toolkit_8.0.RC1.alpha003_linux-x86_64.run
校验文件:
./Ascend-cann-toolkit_8.0.RC1.alpha003_linux-x86_64.run --check
升级 CANN:
./Ascend-cann-toolkit_8.0.RC1.alpha003_linux-x86_64.run --upgrade
如下图,就说明升级成功了!
![](https://static001.geekbang.org/infoq/8e/8e2a657eb251109896d6d942d2404f34.png)
Add 算子下载及 CPU 侧调试
通过下方的样例链接进行下载,因为服务器没有安装 git,因此要下载 zip 压缩包,然后在上传到服务器,如果是第一次访问 gitee 平台,需要注册账户。
https://gitee.com/ascend/samples/tree/master/operator/AddCustomSample
上传完成后,执行解压命令:unzip ./samples-master.zip
切换到样例所在目录,开始执行样例:bash run.sh -r cpu -v Ascend310P1
报如下错误,提示 cmake 版本太低。
![](https://static001.geekbang.org/infoq/c1/c1480db6b4facd9bc04bcdf23a200e7a.png)
参考了网上好多的 cmake 版本升级方式,最终如下方法搞定:
在 cmake 官网下载对应操作的最新版本,下载成功后,上传到服务器,执行解压命令:tar -xzvf cmake-3.XX.X.tar.gz
进入文件夹,创建用于构建的目录,并进入。
运行 bootstrap 脚本:
../bootstrap
执行如下命令进行编译和安装:
make;sudo make install
需要注意的是编译可能花费时间比较久,要耐心等待。
安装成功后,查看版本是否成功安装:
![](https://static001.geekbang.org/infoq/e3/e31fafcde8d907573443169b91550d81.png)
再次执行样例,发现这次又又又报错了:
![](https://static001.geekbang.org/infoq/8a/8ad6267e58f1865b560bcfab4b3b8b91.png)
发现是 gcc 版本过低,下面是解决方案:
安装 centos-release-scl:
yum install centos-release-scl
安装 gcc11:
yum install devtoolset-11-gcc*
执行如下命令,替换软连接:
mv /usr/bin/gcc /usr/bin/gcc.bak
ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++.bak
ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++
mv /usr/bin/c++ /usr/bin/c++.bak
ln -s /opt/rh/devtoolset-11/root/bin/c++ /usr/bin/c++
mv /usr/bin/cpp /usr/bin/cpp.bak
ln -s /opt/rh/devtoolset-11/root/bin/cpp /usr/bin/cpp
mv /usr/bin/cc /usr/bin/cc.bak
ln -s /opt/rh/devtoolset-11/root/bin/cc /usr/bin/cc
执行完成后,再次运行样例:
![](https://static001.geekbang.org/infoq/c3/c374cfc6079b366fd21fd339afbc388e.png)
至此,环境总算搭建完成,样例也调试成功了!
评论