NVIDIA GPU 系列架构详解 (转)

时间:2024-03-03 09:18:44

(2016年6月27日更新)Real心塞,最近出了基于PASCAL架构的GTX1070[6]/1080[7],这性价比简直逆天了…啥980/980ti都不用买了…买一块Titan X还不如买两块1080…


(原文如下)

1.选择怎样的GPU型号

这 几年主要有AMD和NVIDIA在做显卡,到目前为止,NVIDIA公司推出过的GeForce系列卡就有几百张[1],虽然不少都已经被淘汰了,但如何 选择适合的卡来做算法也是一个值得思考的问题,Tim Dettmers[2]的文章给出了很多有用的建议,根据自己的理解和使用经历(其实只用过GTX 970…)我也给出一些建议。

1

图1 GPU选择

上面并没有考虑笔记本的显卡,做算法加速的话还是选台式机的比较好。性价比最高的我觉得是GTX 980ti,从参数或者一些用户测评来看,性能并没有输给TITAN X多少,但价格却便宜不少。从图1可以看出,价位差不多的显卡都会有自己擅长的地方,根据自己的需求选择即可。要处理的数据量比较小就选择频率高的,要处 理的数据量大就选显存大core数比较多的,有double的精度要求就最好选择kepler架构的。tesla的M40是专门为深度学习制作的,如果只 有深度学习的训练,这张卡虽然贵,企业或者机构购买还是比较合适的(百度的深度学习研究院就用的这一款[3]),相对于K40单精度浮点运算性能是 4.29Tflops,M40可以达到7Tflops。QUADRO系列比较少被人提起,它的M6000价格比K80还贵,性能参数上也并没有好多少。

在挑选的时候要注意的几个参数是处理器核心(core)、工作频率、显存位宽、单卡or双卡。有的人觉得位宽最重要,也有人觉得核心数量最重要,我 觉得对深度学习计算而言处理器核心数和显存大小比较重要。这些参数越多越高是好,但是程序相应的也要写好,如果无法让所有的core都工作,资源就被浪费 了。而且在购入显卡的时候,如果一台主机插多张显卡,要注意电源的选择。

2.一些常见的名称含义

上面聊过了选择什么样的gpu,这一部分介绍一些常见名词。随着一代一代的显卡性能的更新,从硬件设计上或者命名方式上有很多的变化与更新,其中比较常见的有以下一些内容。

  • gpu架构:Tesla、Fermi、Kepler、Maxwell、Pascal
  • 芯片型号:GT200、GK210、GM104、GF104等
  • 显卡系列:GeForce、Quadro、Tesla
  • GeForce显卡型号:G/GS、GT、GTS、GTX

gpu架构指的是硬件的设计方式,例如流处理器簇中有多少个core、是否有L1 or L2缓存、是否有双精度计算单元等等。每一代的架构是一种思想,如何去更好完成并行的思想,而芯片就是对上述思想的实现,芯片型号GT200中第二个字母 代表是哪一代架构,有时会有100和200代的芯片,它们基本设计思路是跟这一代的架构一致,只是在细节上做了一些改变,例如GK210比GK110的寄 存器就多一倍。有时候一张显卡里面可能有两张芯片,Tesla k80用了两块GK210芯片。这里第一代的gpu架构的命名也是Tesla,但现在基本已经没有这种设计的卡了,下文如果提到了会用Tesla架构和 Tesla系列来进行区分。

而显卡系列在本质上并没有什么区别,只是NVIDIA希望区分成三种选择,GeFore用于家庭娱乐,Quadro用于工作站,而Tesla系列用 于服务器。Tesla的k型号卡为了高性能科学计算而设计,比较突出的优点是双精度浮点运算能力高并且支持ECC内存,但是双精度能力好在深度学习训练上 并没有什么卵用,所以Tesla系列又推出了M型号来做专门的训练深度学习网络的显卡。需要注意的是Tesla系列没有显示输出接口,它专注于数据计算而 不是图形显示。

最后一个GeForce的显卡型号是不同的硬件定制,越往后性能越好,时钟频率越高显存越大,即G/GS<GT<GTS<GTX。