910B对应驱动
20240516更新
我安装的版本一直不能多卡推理,让官方工作人员给我了商用版驱动固件CANN
和在昇腾官网上选择的型号后出现的都不一样
驱动、固件、toolkit、kernels
最终双卡推理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说训练模型时精度不能损失,推理可以损失,但是可能华为觉得都可以损失