• [技术干货] Centos7安装更新GPU driver驱动和cuda
    背景最近在做chatGLM3,但是发现模型升级到最新版后,输出反而变慢了。去官方询问得知是NVIDIA驱动版本旧了,需要升级常用命令查看显卡信息查看自己的显卡信息:lspci | grep -i nvidia我这里是A100的显卡,由于特殊原因无法显示。对于正常家用的GTX1080显卡,显示如下查看显卡状态nvidia-smi:GPU驱动版本,dirverAPI(支持的最高cuda版本)watch -n 1 nvidia-smi:动态监控显卡状态查看CUDAToolkit版本nvcc -V:CUDAToolkit版本,timeAPI(运行时API)更新CUDA版本找到NVIDIA版本列表:cid:link_1点击下载最新版:Download Latest CUDA Toolkit这里我的电脑是Centos,因此选择Linux。Architecture 可以使用如下命令查看使用uname -m可以查看当前Architecture架构(我这里是x86_64)CUDA 只支持Centos7基础安装在线安装方式如下sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo sudo yum clean all sudo yum -y install cuda-toolkit-12-4安装好后,使用该命令可以验证安装是否成功yum list installed | grep cuda-toolkit驱动安装sudo yum -y install nvidia-driver-latest-dkms sudo yum -y install kmod-nvidia-open-dkms在执行第二条命令时报错了,查阅资料,网上说是因为本机装了太多个NVIDIA驱动,因此要删除旧版驱动使用yum list installed | grep dkms 命令,可以在已安装的软件列表中,搜索关键词带有dkms的软件并且,此时使用nvidia-smi命令会报错如下:Failed to initialize NVML: Driver/library version mismatch需要去官网下载最新的驱动。cid:link_2因为我这台显卡是A100,CUDA用的是最新的12.4,因此选择如下产品类型:Data Center / Tesla产品系列:A-Series产品家族:NVIDIA A100操作系统:Linux 64-bit RHEL 7CUDA Toolkit:12.4语言:Chinese(Simplified)然后点击搜索点击下载,从windows这里复制下载地址,然后在centos中,使用wget命令进行下载wget https://cn.download.nvidia.cn/tesla/550.54.14/nvidia-driver-local-repo-rhel7-550.54.14-1.0-1.x86_64.rpm使用下面进行安装rpm -ivh nvidia-driver-local-repo-rhel7-550.54.14-1.0-1.x86_64.rpm然后按照文档还要执行如下几个命令rpm -i nvidia-driver-local-repo-rhel7-460.106.00-1.0-1.x86_64.rpm yum clean all yum install cuda-drivers reboot解决问题nvidia-smi 报错Failed to initialize NVML: Driver/library version mismatch NVML library version: 550.54cat /proc/driver/nvidia/version 输出如下NVRM version: NVIDIA UNIX x86_64 Kernel Module 515.86.01 Wed Oct 26 09:12:38 UTC 2022 GCC version: gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)把nvidia有关的包全部卸载,然后重装Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至8.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译。这个可以参考这篇博客:cid:link_3发生错误时,可以使用如下命令查看日志,对问题进行定位cat /var/log/nvidia-installer.log通过查看日志可以得知,是默认的gcc版本太低,切换成高版本的gcc后,通过NVIDIA官网脚本安装即可:cid:link_0
  • [问题求助] CANN-6.3使用pytorch框架loss在backward出现问题
    问题显示:  File "/home/ma-user/work/DDA6/src/models.py", line 99, in backward     loss.backward()   File "/home/ma-user/anaconda3/envs/Pytorch-1.8.1/lib/python3.7/site-packages/torch/tensor.py", line 245, in backward     torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)   File "/home/ma-user/anaconda3/envs/Pytorch-1.8.1/lib/python3.7/site-packages/torch/autograd/__init__.py", line 147, in backward     allow_unreachable=True, accumulate_grad=True)  # allow_unreachable flag RuntimeError: The size of tensor a (256) must match the size of tensor b (64) at non-singleton dimension 3问题描述:在pytorch框架下的代码,从cuda往cann迁移,在cuda正常运行,而在cann中可以开始训练,但会卡在 loss.backward() 求大佬帮忙