CUDA数值稳定性测试工具

由该事件影响,写了该工具,可以用来慢速检测CUDA数值稳定性问题。

记录,太坑了,深度学习显卡损坏原来是这样子的。

时间 2020-10-23

深度学习服务器,3张 RTX2080Ti。
损坏的是1号卡,就是夹在0号和2号卡中间的那张卡。
可能常年温度太高,烧坏了。

事件记录:

每过一段时间,1号卡温度和功率会变成nan。重启服务器就好了。

但服务器经常有任务,也不能随便重启,没看到什么问题,就不管了。

又过了一段时间。发现模型运算超慢的。还以为那里出问题了,查来查去,然后发现执行nvidia-smi命令也超慢的。怀疑机器问题,重启一下,好了,就像啥事没发生过。

改了一个模型,只是小小的改动,拿去训练。Loss nan?我就改了个小地方,怎么Nan了!又改了下Loss,没用,醉了,咋回事,查不出问题,暂时搁置了。

好奇怪啊,明明训练分数不错啊,怎么一预测这个鬼样子,热图上总有一些奇怪的伪影,有些地方预测也没错啊。啊,一定是我训练时的验证函数写的不够好,我改改改。。。

然后到了今天,我草,预测热图怎么还是这吊样。把服务器的模型权重拿下来,准备拉到笔记本里大幅度调试一通。

等了10分钟,笔记本跑完了,这不对啊,这预测热图完美啊。开始怀疑是不是有代码没有同步到服务器上去?然后把我的实验代码全部同步了一遍。

???怎么回事???,预测热图怎么还是差距这么大??莫非是依赖库有问题????马上全部依赖库更新一通。

Orz,开始怀疑人生,莫非是pytorch的问题?我的笔记本是torch 1.6,服务器是 torch 1.5.1 。更新服务器pytorch到1.6,没用!不会是CUDA问题把,我的笔记本是CUDA 10.2,服务器是 10.1,换CUDA,搞不起啊,下载太耗时间了。

突然一个想法,死马当活马医,试试换成0号卡,Orz,这热图跟我笔记本预测一模一样了。

原来是显卡的问题,擦,这CUDA运算时内部都不检测数值正确性的吗。这显卡运算单元出毛病了,居然还不报错。

突然间理解了以前显卡坏的时候,都会见到花屏,敢情原来是算错数。

贴两张热图

正常卡预测的热图

GPU板卡的核心元器件 gpu核心容易坏吗_显卡损坏


出问题的卡预测的热图

GPU板卡的核心元器件 gpu核心容易坏吗_深度学习_02