一. 工作站软硬件环境说明
系统: Ubuntu20.04 内核版本: 5.13.0-30-generic 主机: AMD 5800 8-Core 16-Thread 显卡: GTX 1080Ti 深度学习框架: Pytorch 1.7 CUDA版本: CUDA10.2 CUDA11.0 CUDA11.1 CUDNN版本: 8.0.0 显卡驱动: 510.54
解决的过程比较曲折,可以直接看四.正式解决部分的内容.
二. 问题描述
1.换显卡原因 起因如下,我把小型工作站上的3080拆下来,换成了自己买的1080Ti,打算搭建一个自己做小模型测试的环境.之前工作站上3080显卡安装的显卡驱动版本为:510.54,在NVIDA官网上查了一下,给我推荐的1080Ti显卡驱动版本也是510.54,其实就表明直接把显卡换上就行了! 2.发现问题 但是当我装上显卡时,接好线路,进入系统,输入nvidia-smi 和nvcc -V ,返回的结果都是正常的,但是我发现一个致命的问题,Ubuntu桌面好像出现调帧的情况:鼠标滚轮滚动时桌面会一卡一卡,点击文件后移动文件也会一卡一卡!!
三. 尝试解决
3.1 重装显卡驱动(无效)
因为是使用的4年前的1080Ti,我一开始怀疑显卡驱动版本有问题,于是首先在Ubuntu终端输入:
ubuntu-drivers devices
发现给我推荐的NVIDIA驱动版本为470,因此决定将显卡驱动通过我的另一篇博客这种方式进行重新安装,结果是:使用470版本的驱动,仍然失败,一卡一卡的问题仍然没有解决! 在网上查了一下,发现1080Ti大多他们配的都是Ubuntu18.04或更老的16.04, 心想既然470不行, 1080Ti的古董驱动390应该总可以了吧?我试了一下,发现还是不行 ! ! 在重装了几个不同版本的驱动后,我不得不开始打量1080Ti这样一个"卡皇"的真实度,既然是17, 18年甚至19年深度学习主流配置,Ubuntu层面对1080Ti乃至整个NVIDIA显卡的支持度应该也没那么低吧? 只能把对显卡的怀疑放一边,检查一下其他问题.
3.2 切换内核版本(无效)
由于已经知道Ubuntu定期更新内核会导致显卡驱动挂掉,我特意进入了一个以前版本的内核,进入之后发现,虽然桌面速度恢复了,但输入nvidia-smi 会报错,这说明这个版本的内核压根没有显卡驱动,因此也就不会出现显卡信息了,这也不是我们想要的结果 ! ! 还有人说系统监视器里面有监视频率,这个会影响需要关掉,我一进去发现压根没有我可以关的,不知道那人用的哪个版本的…反正就是每用. 为了避免每次进Ubuntu需要选内核版本,我直接把没用的内核版本删掉了,这条路看来也走不通了 !
3.3 调整CPU频率(无效)
1. 模仿win10事故重新拔插电源头
寒假在公司实习时发生过一件事让人哭笑不得:我的朋友使用我的3080工作站进win10打开游戏,发现帧率还不到50帧,此时我意识到事情不对,我的工作站配置打腾讯全家桶至少应该稳定200帧以上的,于是就打开任务管理器进入"性能"页面检查了下CPU和GPU利用率,发现CPU利用率也不很高,但是主频惊人的低,仅仅只有0.51GHZ! ! 我在重启一次主机后发现进入win10其主频仍旧只有0.51GHZ ,于是感觉是电源线没插好,导致因接触不良而掉电,果不其然,在关机后重新插紧电源插头,开机后主频回到了正常的4.33GHZ ,朋友进入游戏时帧率已经稳定在240帧左右.
2.借鉴win10上的思路手动设置主频
在搜索了Ubuntu工作站类似桌面卡顿的问题后,我把目光集中在了CPU频率问题,使用CPU主频管理工具包pufrequtils对CPU主频进行监控和调整:
sudo apt install cpufrequtils
然后查看当前CPU主频详情:
watch -n 1 cpufreq-info
发现主频大概在2.00GHZ 左右,并且2.00GHZ 处于硬件限制主频的最低频率: 这不禁让人心生疑惑,2GHZ也不是很低的频率,为何我会感觉到明显的卡顿? 但是我还是将CPU频率自定义为最高频率:
sudo cpufreq-set -g performance
这次再看一下,结果发现CPU主频是上去了,但是卡顿的问题仍然没有解决 ! !
四. 正式解决
尝试了所有软件层面的解决手段后,我对1080Ti彻底失去耐心,准备把3080换上去,看看到底是不是10系显卡真的被Ubuntu20.04拒之门外.这时我转念一想,既然3080可以,换上1080Ti之后又不行了,应该还是显卡驱动的问题吧? ?我这样想着,于是就停止了拆机,又把拔掉的线重新插回去.
有一点值得一提,拆机时有个细节引起了我的注意,我的显卡HDMI头很容易地就从显卡口拔下来了,相比之下我在拔主机电源头时却显得相当费劲.但这时我也并没有太在意,毕竟,同样的插线方式,我进win10和进没有显卡驱动的Ubuntu内核版本桌面都不会卡顿呀 ? ? 我这样想着,还是把所有线重新插好,但是这次我不经意又把所有线确认了一遍确实插好了,然后开机打算重装显卡驱动,结果发现,居然好了 ! ! 桌面再也没有卡顿的迹象了! ! 在终端发现显卡也能够正常调用了! ! 万万没想到,这个和寒假实习期间遇到的问题是同样的,都不是软件的问题,都是硬件线路没有插好! ! 那为什么同样的接法,我进入win10鼠标就有正常速度呢?原因可能是NVIDIA对win10的支持比较好,而且我进win10当时也没有运行任何游戏,也没有通过看到游戏明显的掉帧等可以直接判断硬件问题的途径!
总之,这次经历警示我们跟电子设备打交道,首先要确保硬件线路没问题,然后再检查软件版本方面的问题,包括但不限于嵌入式开发,深度学习环境配置等等 ! !
|