NVIDIA显卡

NVIDIA 产品线主要有以下几款产品:

  • Tesla:面向高性能计算,一般是用于科学计算或通用计算,而不是用于图形显示
  • Quadro:面向服务器、工作站,一般用于专业用途,比如设计、仿真、成像、开发等
  • GeForce:面向桌面、笔记本,是消费级显卡,一般用于游戏加速、高清影视
  • Tegra:移动处理器,比如手机、汽车,强调省电
  • GRID:虚拟化 GPU,比如亚马逊 EC2 提供的 g2.2xlarge 就是具有 1536 内核 GRID K520 GPU
  • NVS:用于多显示器,比如我的 T410 携带的就是这个系列的显卡,估计是最低端的
image_1bpegm3h4lbg10572a3s1f45u9.png-207.1kB
image_1bpegm3h4lbg10572a3s1f45u9.png-207.1kB

其中 GeForce 因为面向普通消费者,因此使用最多。它的产品性能是:GeForce GTX > GeForce GTS / GT > Geforce,分别代表高端性能级显卡、主流显卡、低端显卡。该系列主流产品如下,我的 T450 就带了一颗 NVIDIA GeForce 940M 显卡。这里有一个 显卡性能天梯图,可以看出这个显卡排名 705 位,相当渣渣,不过这个型号以及 940MX 是目前笔记本电脑的主流显卡。

image_1bpfl3qb1qui8tmb313l73ip9.png-149.4kB
image_1bpfl3qb1qui8tmb313l73ip9.png-149.4kB

NVIDIA 显卡末尾数字解读。以 GeForce GTX 980M 为例。GTX 我们上面已经讲了是高端显卡的意思。980M:第一位数字 9,代表第几代的意思(9 当然是高端显卡第九代的意思);第二位和第三位是一起看的,当然了后面两位数大小取决于中间这位数的大小,所以我们通常看第二位,不看第三位数字。第二位至关重要,因为显卡分类高端显卡,中端显卡,入门级显卡就是取决于第二位数字的。第二位数字:第二位数字是 1-2 代表是入门级显卡。第二位数字是 3-6 代表是中端显卡。第二位数字是 6-9 代表是高端显卡。

核显和独显的性能差距基本上如下:


image_1bpvi7kg612fj2401j7j1ipd6h6p.png-55.4kB
image_1bpvi7kg612fj2401j7j1ipd6h6p.png-55.4kB

虚拟机使用显卡的问题

通过 NVIDIA 控制面板,“3D Settings -> Manage 3D settings -> Preferred graphics processor ”,这样可以设置 VirtualBox 使用 NVIDIA 显卡,虚拟机可以利用 NVIDIA 的 OpenGL 功能。然而 CUDA 应该是穿不透的,因此利用显卡进行机器学习是无法实现的。详见 Use NVidia GPU from VirtualBox?

目前推荐的方法是装双系统,Linux 上单独安装 NVIDIA 显卡驱动。

机器学习显卡选型

参考 GPU 购买指南。这里还有一篇 折腾手记

本章我们简要介绍 GPU 的购买须知。这里主要针对个人用户购买一两台自用的 GPU 服务器。而不是针对需要购买

  • 100+台机器的大公司用户。请咨询专业数据中心维护人员,通常你们会考虑 Nvidia Tesla P100 或者 V100。你可以完全跳过此节。

  • 10+台机器的实验室和中小公司用户:不缺钱可以上 Nvidia DGX-1,不然可以考虑购买如 Supermicro 之类性价比较高的服务器。此节的一些内容可以做为参考。

选择 GPU

目前独立 GPU 主要有 AMD 和 Nvidia 两家厂商。其中 Nvidia 由于深度学习布局较早,深度学习框架支持更好,因此目前主要会选择 Nvidia 的卡。

Nvidia 卡有面向个人用户(例如 GTX 系列)和企业用户(例如 Tesla 系列)两种。企业用户卡通常使用被动散热和增加了内存校验从而更加适合数据中心。但计算能力上两者相当。企业卡通常要贵上 10 倍,因此个人用户通常选用 GTX 系列。

Nvidia 一般每一两年会更新一次大版本,例如目前最新的是 1000 系列。每个系列里面会有数个不同型号,对应不同的性能。

GPU 的性能主要由下面三个主要参数构成:

  • 计算能力。通常我们关心的是 32 位浮点计算能力。当然,对于高玩来说也可以考虑 16 位浮点用来训练,8 位整数来预测。
  • 内存大小。神经网络越深,或者训练时批量大小越大,所需要的 GPU 内存就越多。
  • 内存带宽。内存带宽要足够才能发挥出所有计算能力。

对于大部分用户来说,只要考虑计算能力就行了。内存不要太小就好,例如不要小于 4GB。如果显卡同时要用来显示图形界面,那么推荐 6G 内存。内存带宽可以让厂家来纠结。

下图画了 900 和 1000 系列里各个卡的 32 位浮点计算能力和价格的对比(价格是 wikipedia 的推荐价格,真实价格通常会有浮动)。

image_1c3ff8b3epim1rrisch1d1e7o19.png-141.5kB
image_1c3ff8b3epim1rrisch1d1e7o19.png-141.5kB

我们可以读出两点信息:

  • 在同一个系列里面,通常价格和性能成正比
  • 1000 系列性价比 900 高 2 倍左右。

如果大家继续比较 GTX 前面几代,也发现规律是类似的。根据这个我们推荐

  • 买新不买旧,因为目前看来 GPU 性能还是在快速迭代,贬值较快。
  • 量力购买。不缺钱直接上最好的,但入门的 1050TI 也不错。

整机配置

如果主要是用 GPU 来做计算,或者说主要是做深度学习训练,不需要购买高端的 CPU。可以将主要预算花费在 GPU 上。所以整机配置可以参考网上推荐的中高档就好。

不过由于 GPU 的功耗,散热和体积,需要一些额外考虑。

  • 机箱体积。GPU 尺寸较大,通常不考虑太小的机箱。而且机箱自带的风扇要好。(下图里我们曾尝试在一个中等机箱里塞满 4 卡导致散热不好烧了 2 块 GPU。)
  • 电源。购买 GPU 时需要查下 GPU 的功耗,50w 到 300w 不等。因此买电源时需要功率足够的。(我们倒是一开始就考虑了这个,但忘了不过载机房供电。下面是 5 台机器满负荷运行时烧掉了一个 30A 的电源接口。)
  • 主板的 PCIe 卡槽。推荐使用 PCIe 3.0 16x 来保证足够的 GPU 到主内存带宽。如果是多卡的话,要仔细看主板说明,保证多卡一起使用时仍然是 16x 带宽。(有些主板插 4 卡时会降到 8x 甚至 4x)

推荐阅读更多精彩内容