为什么我的显卡显存变了?急!

  现在电脑已经普及了,人手一台,有的甚至有好几台,家用的,工作用的,炒股专业等等,但是电脑的显卡有时候会出现一些故障,最怕的就是显卡的显存出现问题。显卡显存坏了会怎么样?一起来看看吧!

  显卡显存坏了会怎么样 篇1

  显卡显存坏了会怎么样?

  1.显示器间歇性的黑屏。

  2.屏幕上有雪花点。

  3.玩大型游戏时蓝屏或自动重启。

  显卡常见故障问题:

  (1)显卡接触不良故障:

  显卡接触不良通常会引起无法开机且有报警声或系统不稳定死机等故障。造成显卡接触不良的原因主要是显卡金手指被氧化、灰尘、显卡品质差或机箱挡板问题等。对于金手指被氧化造成的接触不良,可以使用橡皮擦拭金手指来解决;对于灰尘引起的接触不良,一般清除灰尘后即可解决;对于硬件品质造成的接触不良,通常通过替换法来检测,一般采用更换显卡来解决;对于机箱挡板问题造成的接触不良,通常显卡无法完全插入显卡插槽,可采用更换机箱来排除。

  (2)兼容性问题:

  兼容性故障通常会引起电脑无法开机且报警声、系统不稳定死机或屏幕出现异常杂点等故障现象。显卡兼容性故障一般发生在电脑刚装机或进行升级后,多见于主板与显卡的不兼容或主板插槽与显卡金手指不能完全接触。显卡兼容性故障通常采用替换法进行检测,一般采用更换显卡来排除故障。

  (3)显卡元器件损坏故障:

  显卡元器件损坏故障通常会造成电脑无法开机、系统不稳定死机、花屏等故障现象。显卡元器件损坏一般包括显卡芯片损坏、显卡BIOS损坏、显存损坏、显卡电容损坏或场效应管损坏等。对于显卡元器件损坏故障一般需要仔细测量显卡电路中的各个信号来判断损坏的元器件,找到损坏的元器件后,进行更换即可。

  (4)显卡过热故障:

  由于显卡芯片在工作时会产生大量的热量,因此需要有比较好的散热条件,如果散热风扇损坏将导致显卡过热无法正常工作。显卡过热故障通常会造成系统不稳定死机、花屏等故障现象。出现显卡过热只要更换散热风扇即可。

  (5)显卡驱动程序故障:

  显卡驱动程序故障通常会造成系统不稳定死机、花屏、文字图像显卡不完全等故障现象。显卡驱动程序故障主要包括显卡驱动程序丢失、显卡驱动程序与系统不兼容、显卡驱动程序损坏、无法安装显卡驱动程序等。对于显卡驱动程序故障一般首先进入“设备管理器”查看是否有显卡的驱动程序,如果没有,重新安装即可。如果有,但显卡驱动程序上有“!”,说明显卡驱动程序没有安装好、驱动程序版本不对、驱动程序与系统不兼容等。一般删除显卡驱动程序重新安装,如果安装后还有“!”,可以下载新版的驱动程序安装。如果无法安装显卡驱动程序,一般是驱动程序有问题或注册表有问题。

  CMOS设置故障是由于CMOS中显示相关选项设置错误引起的`故障。常见CMOS设置故障主要包括:集成显卡的主板,CMOS中的显卡屏蔽选项设置错误;如“AGPDrivingControl”选项设置错误(一般应为“AUTO”),“AGPApertureSize”选项设置错误:“FASTWriteSupported”选项设置错误等。CMOS设置错误一般用载入默认BIOS值修改即可。

  (7)显卡超频问题:

  显卡超频问题是指使用时为了提高显卡的速度,提高显卡的工作频率而导致的电脑故障。出现问题后,可以将频率恢复到出厂默认设置即可。

  显卡显存坏了会怎么样 篇2

  1、显卡坏了――半残状态

  如果显卡没有完全坏掉,电脑表现出一下症状:

  (1):能够正常开机、上网、使用小型软件(比如OFFICE)等操作,一般的基础的操作是没有问题的。但是,如果一旦使用“完全”的硬件加速或者玩游戏时,电脑速度变慢,或者显示器花屏。即使重新安装显卡驱动程序,无法解决速度慢或变花屏的问题。

  (2):一般情况下,显卡即将损坏还没有完全损坏的时候,硬件设备会出现这样的情况:显卡设备上面的电容器凸出或能够闻到烧焦的味道。电路出现痕迹模糊、接口出现松动等。

  2、显卡坏了――完全损坏

  当显卡完全损坏的时候,电脑就不能正常开机了,当开机的时候,显示器的屏幕上提示“无信号”等字样。这种情况我们直接换显卡就可以了。

  注意哦,购买显卡的时候一定要注意,您的主板支持什么样的针脚即支持什么样的接口的显卡,您就购买哪种显卡,否则,购买错了,白花了钱,也不能插到主板上使用。

  显卡坏了的电脑常见症状

  1、电脑显示器没反应,开机完全黑屏,或者有滴滴滴的叫声。

  2、显示颜色不正常,画面很模糊。此类故障一般有一下原因:

  (1):显示卡与显示器信号线接触不良。

  (2):显示器自身故障。

  (3):在某些软件里运行时颜色不正常,一般常见于老式机,在BIOS里有一项校验颜色的选项,将其开启即可。

  (4):显卡损坏 。

  (5):显示器被磁化,此类现象一般是由于与有磁性能物体过分接近所致,磁化后还可能会引起显示画面出现偏转的现象。

  出现此类故障一般多见于主板与显卡的不兼容或主板与显卡接触不良;显卡与其它扩展卡不兼容也会造成死机。

  4、显示器出现花屏、看不清字迹、画面变色以及画面显示不完全等等。

  此类故障一般是由于显示器或显卡不支持高分辨率而造成的。花屏时可切换启动模式到安全模式,然后再在Windows 98下进入显示设置,在16色状态下点选 “应用”、“确定”按钮。重新启动,在Windows 98系统正常模式下删掉显卡驱动程序,重新启动计算机即可。

  5、开机启动时屏幕上有乱码

  6、显卡驱动程序丢失

  显卡驱动程序载入,运行一段时间后驱动程序自动丢失,此类故障一般是由于显卡质量不佳或显卡与主板不兼容,使得显卡温度太高,从而导致系统运行不稳定或出现死机,此时只有更换显卡。

  此外,还有一类特殊情况,以前能载入显卡驱动程序,但在显卡驱动程序载入后,进入Windows时出现死机。可更换其它型号的显卡在载入其驱动程序后,插入旧显卡予以解决。如若还不能解决此类故障,则说明注册表故障,对注册表进 行恢复或重新安装操作系统即可。

【显卡显存坏了会怎么样】相关文章:

导读 今天小编跟大家讲解下有关为什么现在显卡的显存位宽都比原来低了 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关为什么现在

今天小编跟大家讲解下有关为什么现在显卡的显存位宽都比原来低了 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关为什么现在显卡的显存位宽都比原来低了 的相关资料,希望小伙们看了会有所帮助。

显存位宽只是显卡的一个性能指标,而且还是显卡发展10多年来最固定的一个指标,因为无论是从最早的ddr显存还是最新的gddr6显存,显存位宽的组成形式都是一样的,显存颗粒围绕GPU核心排列,组成128bit位宽仅需4颗显存,组成256bit位宽需要8颗显存,要是位宽更大的话也就需要更多的显存颗粒了,因此受限于显卡的PCB板面积和供电布局,这么多年来显卡的最大显存位宽也就是512bit。

你可以想象一下,512bit显存位宽需要多达16颗显存,并且还要在PCB板双面排列才行,这不仅对显卡设计提出了很高的要求,对于成本控制来说实在是太难了,16颗显存可不是一笔小钱,所以经过多年的市场和研发经验,显卡厂商认为最具性价比的显存位宽范围还是128bit到256bit,如果想提升显存性能的话就以提升显存频率为主,直到目前也是这个样子。

所以说即使是八年前的中高端显卡,显存位宽可能和现在的高端显卡一样都是256bit显存位宽,但是显存速度已经不可同日而语,仅仅是位宽大并不能代表高性能;另外市场竞争也很重要,如今1000元能买到256bit位宽的RX580显卡,性能比同价位128bit位宽的GTX1050ti强很多,追求性能的选择RX580,追求低功耗的可能就选择1050ti,各取所需而已。

最近跑的模型都比较大,尤其是Bert, 这真的是难为我 1080ti 了, 在Bert的Example中,官方提供了一些 Trick 来帮助我们加速训练,很良心, 但感觉还不够,于是花费一些时间整理出一个 Trick 集合,来帮助我们在显存不足的时候来嘿嘿嘿。

本文分为两大部分,第一部分引入一个主题:如何估计模型所需显存, 第二个主题:GPU显存不足时的各种 Trick 。

监控GPU最常用的当然是 nvidia-smi ,但有一个工具能够更好的展示信息:gpustat

下面有同学推荐nvtop, 我简单试了试,的确挺好的,展现出现的信息很丰富 , 推荐试一试。

如何估计模型显存 [1]

首先,思考一个问题: 模型中的哪些东西占据了我的显存,咋就动不动就 out of memory

其实一个模型所占用的显存主要包含两部分: 模型自身的参数, 优化器参数, 模型每层的输入输出

模型自身的参数指的就是各个网络层的 Weight 和Bias,这部分显存在模型加载完成之后就会被占用, 注意到的是,有些层是有参数的,如CNN, RNN; 而有些层是无参数的, 如激活层, 池化层等。

从Pytorch 的角度来说,当你执行 model.to(device) 是, 你的模型就加载完毕,此时你的模型就已经加载完成了。

对于Pytorch来说,模型参数存储在 model.parameters() 中,因此,我们不需要自己计算,完全可以通过Pytorh来直接打印:

优化器参数指的是模型在优化过程即反向传播中所产生的参数, 这部分参数主要指的就是 dw, 即梯度,在SGD中, 其大小与参数一样, 因此在优化期间, 模型的参数所占用的显存会翻倍。

值得注意的是,不同的优化器其所需保存的优化参数不同, 对于 Adam, 由于其还需要保存其余参数, 模型的参数量会在优化区间翻 4 倍。

首先,第一点是输入数据所占用的显存, 这部分所占用的显存其实并不大,这是因为我们往往采用迭代器的方式读取数据,这意味着我们其实并不是一次性的将所有数据读入显存,而这保证每次输入所占用的显存与整个网络参数来比是微不足道的。

然后,在模型进行前向传播与反向传播时, 一个很重要的事情就是计算并保存每一层的输出以及其对应的梯度, 这意味着,这也占据了很大一部分显存。

最后, 模型输出的显存占用可以总结为:

  • 每一层的输出(多维数组), 其对应的梯度, 值得注意的是,模型输出不需要存储相应的动量信息(即此处如果使用Adam, 模型输出的参数量依旧是2倍而不是4倍)

那么有没有办法通过Pytorch来计算这部分参数量呢? 答案是有的,我们可以假设一个batch的样本,然后通过 model.modules() 来对每一层进行遍历,获得每一层的输出shape, 然后就能够获得一个batch的数据的输出参数量。[2]

其中,n是根据优化算法来定的,如果选用SGD, 则 n = 2, 如果选择Adam, 则 n = 4.

一个很棒的实现如下, 我懒得再重新写了,你可以根据这个改一改,问题不大。

# 模型显存占用监测函数
 

此处不讨论多GPU, 分布式计算等情况,只讨论一些常规的 Trick, 会不定时进行更新。

这应该很好理解,适当降低batch size, 则模型每层的输入输出就会成线性减少, 效果相当明显。这里需要注意的一点是, dev batch size 的调整也有助于降低显存, 同时,不要将 dev 或 test 的batch size 设置为样本集长度, 我最近就干了这个傻事,害的我调试了一天才调出来是这个问题。

一般默认情况下, 整个网络中采用的是32位的浮点数,如果切换到 16位的浮点数,其显存占用量将接近呈倍数递减。

在设计模型时,适当的精简模型,如原来两层的LSTM转为一层; 原来使用LSTM, 现在使用GRU; 减少卷积核数量; 尽量少的使用 Linear 等。

对于文本数据来说,长序列所带来的参数量是呈线性增加的, 适当的缩小序列长度可以极大的降低参数量。

考虑到 loss 本身是一个包含梯度信息的 tensor, 因此,正确的求损失和的方式为:

释放不需要的张量和变量

采用del释放你不再需要的张量和变量,这也要求我们在写模型的时候注意变量的使用,不要随心所欲,漫天飞舞。

激活函数 Relu() 有一个默认参数 inplace ,默认为Flase, 当设置为True的时候,我们在通过relu() 计算得到的新值不会占用新的空间而是直接覆盖原来的值,这表示设为True, 可以节省一部分显存。

首先, 要了解一些Pytorch的基本知识:

我们知道, batch size 与占用显存息息相关,但有时候我们的batch size 又不能设置的太小,这咋办呢? 答案就是梯度累加

我们先来看看传统训练:

而加入梯度累加之后,代码是这样的:

其实,这块有两种理解方式(受到评论区同学启发), 我谈谈在 bert 里面最常见的那种。

比较来看, 我们发现,梯度累加本质上就是累加 accumulation_stepsbatchsize/accumulationsteps 的梯度, 再根据累加的梯度来更新网络参数,以达到真实梯度类似batch_size 的效果。在使用时,需要注意适当的扩大学习率。

我们再更新参数。其实本质上就等价于:

梯度积累能很大程度上缓解GPU显存不足的问题,推荐使用。

在Bert的仓库中,就使用了这个Trick,十分实用,简直是我们这种乞丐实验室的良心Trick。

这个Trick我没用过,毕竟模型还没有那么那么大。

等我用过再更新吧,先把坑挖下。

哎, 如果你看完了这篇文章,就说明了一件事情: 小伙子,你卡也不够啊。哎, 乞丐实验室不配深度学习,哭了。

我要回帖

更多关于 电脑显卡突然变卡了 的文章

 

随机推荐