文章目录
显卡巨头Nvidia公司的产品可以分为三大类:科学计算卡(Tesla)、专业图形卡(Quadro)和家用显卡(Geforce)类。可是同样都是显卡,为什么Geforce卡只需要几千块,而Tesla计算卡能卖到5-6万呢?
1、科学计算显卡的几个主要性能指标
:
1、运算能力:FLOPS 每秒浮点运算次数,TFLOPS表示每秒万亿(10^12)次浮点计算;
2、计算性能:
3、显存大小:显存大小也决定了实验中能够使用的样本数量和模型复杂度。
4. cuda 核心数量
2、性能指标比较
1、CUDA compute capability对比(computer capability 并不代表显卡的计算能力,主版本号说明GPU的架构,副版本号相当于更新的版本)
GTX Titan x :5.2
GTX 980 :5.2
Tesla P100 :
Tesla K80 :3.7
Tesla K40 :3.5
K4200 : 3.0
2、计算性能(TFLOPS) 比较
单精度single 双精度double
GTX Titan x : 7 0.2
GTX 980 : 4.6 0.15
Tesla P100 : 10.6 5.3
Tesla K80 : 8.73 2.91
Tesla K40 : 4.29 1.43
K4200 : 2.0
单精度能够保证小数点后6到7位计算准确(2^23),双精度则是14到15位(2^52)
3、显存大小
GTX Titan x :12Gb
GTX 980 :4Gb
Tesla P100 : 16G
Tesla K80 :24Gb
Tesla K40 :12Gb
K4200 :4Gb
4、cuda 核心数量
GTX Titan x
GTX 980
Tesla P100 : 3584
Tesla K80 : 4992
Tesla K40 : 2880
K4200
5、价格比较(网上商城京东淘宝报价)
GTX Titan x :8000±
GTX 980 :6000±
Tesla P100 : 45000++
Tesla K80 :33000±
Tesla K40 :25000±
K4200 :6000±
3、优缺点
1、GTX 系列显卡优缺点:
优点:单精度计算能力强大,显存最大12Gb,性价比高
缺点:双精度计算能力弱,没有计算纠错ECC 内存,对于超高精度计算不利
2、Tesla 或 quadro显卡优缺点:
优点:双精度计算能力最强,拥有ECC内存增强计算准确率,
缺点:单精度计算能力差,价格较高
总结:单从性能上选择,Tesla K80是最强大的,但也最贵;综合性价比来考虑 GTX Titan X 最好。
4、FP64双精度
浮点计算能力强(参考)
对于专业卡而言,仅强调FP32单精度运算速度是不够的,毕竟进行生化模拟,比如化学分析和生物遗传学对数学精度的要求远远高于图形成像要求。举个例子吧,要展示一个清晰的图像,我们使用能计算到小数点后23位的Geforce卡能满足(你能看出两张2K分辨率图片中几个像素点的不同吗?)。但是对于科学家而言,小数点后23位可能会产生误差,这种误差可能导致药物研发/航空探索等科学研究出现重大失误。这时就需要双精度(FP64=52位小数)进行更加精准的计算。下图为不同显卡的双精度浮点运算能力:
小数点后的小数越多,误差越小,读数越精确,这是我们从小学就知道的基本数学常识。
5、FP16半精度
计算能力强
如果说上面的双精度做的是“数学题”,要求答案越精准越好,那么半精度计算就是做“选择题”,只要求答案“YES or NO”。半精度浮点计算通常应用于深度学习/人工智能应用中,NV官方曾经对某CSDN博主提问“为何1070半精度运算比单精度慢”做出回答:同样是帕斯卡架构,只有P100完整核心的拥有完整的计算速度。下图是不同架构中半精度、单精度和双精度吞吐量对比,6.0代表帕斯卡架构完整核心,7.0代表最新的volta架构完整核心。从图中可以看出不同架构中完整核心都是支持所有精度计算模式的。
可是这和价格贵有什么关系呢?
- 核心完整程度不同
上文提到的FP64和FP16,一个要求在SM单元中专门安置FP64单元进行双精度计算,效果仅有FP16的1/8不到,普通Geforce卡的GPU并没有独立FP64单元,被民间称为“阉割版”,所以拥有完整计算能力的专业卡GPU价格昂贵;FP16则不需要独立单元参与,这里不提。商品功能越多,附加值越高,这一点很好理解吧。
上图是最近热门的Nvidia Volta核心SM单元结构图,可以看到一个SM单元不仅保留了FP32/FP16混合计算,还支持IN8与FP64甚至单独的Tensor,这样一张Volta完整核心的Tesla计算卡可以胜任半精度(AI/深度学习)、单精度(普通影音处理)和双精度(生化物理研究模拟等)甚至120T的Tensor多重计算任务。
- 颗粒不同
另外,为了支持高精度计算不会在读写存储时出现误差,Tesla通常都采用了带ECC纠错能力的HBM2显存,这种显存产量低价格昂贵,这也构成了Tesla计算卡价格昂贵的原因之一。选择不具备ECC内存纠错功能的GPU卡进行高精度计算会如何?2018年年初一些研究人员发现用Titan V卡进行仿真计算时会输出不准确的答案,这就是因为Nvidia TITAN系列显卡禁用了HBM颗粒的ECC功能导致数据出现误差的,英伟达官方也建议:在进行高精度科学计算时应该采用专业的Tesla显卡。
- 市场需求