【Atlas 800 训练服务器(型号:9000)商用版驱动固件CANN】昇腾8*Ascend 910 安装驱动、mindspore、torch

avatar
作者
筋斗云
阅读量:0

910B对应驱动

20240516更新

我安装的版本一直不能多卡推理,让官方工作人员给我了商用版驱动固件CANN
和在昇腾官网上选择的型号后出现的都不一样
驱动固件toolkitkernels
最终双卡推理baichuan2-14B-Chat成功
在这里插入图片描述

910b对应驱动

系统内核版本:5.10.0-60.18.0.50.oe2203.aarch64(华为对centos的优化版)
新系统需要先安装依赖

yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran python3-devel 

在这里插入图片描述
这是官方推荐的驱动 Ascend-hdk-910b-npu-driver_23.0.rc3_linux-aarch64.run
在这里插入图片描述
重启要小心,有时候系统会崩,华为只能安装对应的内核才能安装驱动,遥遥领先
在这里插入图片描述
我无法安装,报错cmi module initialize failed. ret is -8005
这个报错网上只有两种解决方案,一个是因为内核版本问题导致,一个是驱动导致

!!!!!千万不要降低或升高内核版本!!!!!

在这里查看对应系统以及内核—昇腾内核对照表
本人已尝试过6种系统,在装系统的时候 对应好内核版本 一步到位才是最优解

昇腾驱动和固件社区资源下载中心:Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run
在这里插入图片描述
所以910B不能安装910B的驱动吗?查看了合同,确定芯片是8*Ascend 910 B,但是服务器型号是A800 (Model 9000)(OEM)(通用版),在社区资源下载中心显示这个型号的服务器的确只能装910的驱动,后面910B对应的算子是无法使用的,所以很矛盾,910B的芯片只能装910的驱动,切不能使用910B的算子

官网显示的两个安装包均无法安装成功

mindspore官网:https://www.mindspore.cn/install/
在这里插入图片描述
经过排除法测试,2.2.0版本可成功安装,不会报错,遥遥领先
经过排除法测试,对应toolkit为Ascend-cann-toolkit_7.0.RC1_linux-aarch64.run

pip install mindspore==2.2.0 

在这里插入图片描述

UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.   setattr(self, word, getattr(machar, word).flat[0]) UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.   setattr(self, word, getattr(machar, word).flat[0]) 

这两个警告不影响程序运行,但是看着也烦,解决方案就是降低numpy版本(这里必须从conda安装,不能pip安装)

conda install numpy==1.21.2 scipy==1.7.3 pandas==1.3.3 

在这里插入图片描述
这下就完全没有警告和什么杂七杂八的日志了

安装torch

pip3 install torch==2.1.0 pip install torchvision==0.16.0 wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc3-pytorch2.1.0/torch_npu-2.1.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl pip3 install torch_npu-2.1.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl pip install setuptools==41.2.0 python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())" 

tokenizers==0.15.0,原因如下
在这里插入图片描述

混合精度apex编译时,先更新python3-devel,再指定版本

sudo yum install python3-devel bash scripts/build.sh --python=3.9 

再验证一下向量计算

python3 -c "import torch;import torch_npu; a = torch.randn(3, 4).npu(); print(a + a);" 

在这里插入图片描述

Warning: Device do not support double dtype now, dtype cast repalce with float. 

就算是设置

torch.set_default_dtype(torch.float32) 

也没有用,报警依然存在
这个就没办法了,openai说训练模型时精度不能损失,推理可以损失,但是可能华为觉得都可以损失

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!