首先,如果大家在开始或者是初期的时候,如果只有非常少量的服务器,或者说机器。打比方说,我只有四五台 Server,很多人的选择就是先用几块GeForce显卡,稍微先试一试;当需要大规模投入的时候,一般来讲大家都会去选择用企业级产品Tesla。这里面最大的一个原因,在这里就不展开讲,主要是由于硬件设计之初,企业级产品是要保证24小时稳定工作的,不太像消费级产品对容错率要求不是那么高。可以想像一下,假设一块显卡的出错概率,是一个月出错一次,那么你想一下,如果你有一百块,甚至更多的显卡的时候,会是什么样的一个场景。 如果需要大量计算资源的时候,也有两种选择: 1、比如说买一些GPU的Server; 2、选择NVIDIA跟合作伙伴做的Tesla的GPU Server,或者选择DGX-1。 两者之间主要区别是什么呢?DGX-1主要是对扩展性要求比较高的场合。换句话说,当你需要在相对短时间内,对一个比较大的模型进行训练的时候,用DGX-1。 如果你不太有比较大规模训练任务,比如用2块GPU做几个小时就可以完成的,一般用2卡或4卡的机器,都可以满足大家的需求。 那么,到底是自己选择买Server,还是用云服务,也就是HPC GPU节点。主要区别在于你到底想不想在IT这块,也就是硬件的infrastructure上做投入。如果用云服务,硬件维护还有整个环境的管理,都是由云服务商提供的,确实可以省去比较多的麻烦。当然,如果决定自己去维护这个环境的话,可以试图搭建硬件平台。 上面两页是Tesla P100的SPEC。它的具体SPEC,比如峰值是多少等等,我就不详细介绍了。主要说两点,一个是P100用了HBM2高速的memory,它的GPU memory带宽会非常高,第二,GPU之间可以用NV Link进行互联。NV Link单个通路,单向可以做到每秒二十几GB,能够大大地加速GPU之间的数据传输。 NVIDIA推出的DGX-1,是由2个CPU,再加8个P100的GPU所构成的,GPU之间由NV Link进行互联。在做神经网络模型训练的时候,实际上有两个主要步骤: 一是做梯度的计算; 二是做梯度的Reduction;Reduction的时候是需要大量的数据传输。用DGX-1的话,中间利用NV Link,能够显著的缩短Reduction时候内存拷贝所带来的对于scalability的影响。 对于training来讲,选择稍微复杂一点。总结一下,还是要看大家的需求: 如果是少量training需求,特别是一开始尝试的时候,完全可以买一二块消费级显卡先试一试;当变成非常严肃的投资时,当你需要买几十块乃至几百块GPU,还是建议用企业级产品,要么采购GPU服务器,要么用云服务商提供的GPU节点。inference的话,相对简单一些。 上面是P4和P40两款GPU的SPEC。这里也不详细介绍了。最关键的提一点,就是其中的int8的支持。 int8指的是用8比特的整型去做神经网络的前向inference。实际测试发现,int8的使用,可以通过数据转化的调整等等操作,把精度的损失降到非常非常的小,打比方说,在做图像分类的时候,精度损失在百分之零点几。对于精算性能的提高,还是很显著的。理论上来说,是四比一的关系。实际上,相对于MP 32的浮点数计算能力,大概是三点几倍。 值得提的一点,Tesla P4实际上是由NVIDIA中国的解决方案工程师针对中国用户的需求,向美国总部提出并设计的产品。你会发现它的功耗比较低,只有50瓦或者70瓦这两种SPEC的SQ,不需要额外供电,能够插在很多没有针对GPU做额外电源设计的服务器里面。 上面主要介绍的是硬件的平台的选择。接下来,主要从整个软件生态上做一个概括性的介绍,大概能了解清楚NVIDIA提供哪些软件库供方便大家使用,很多情况下不需要做重复开发。 (责任编辑:本港台直播) |