分享下实际使用体验,主要针对深度学习。
DGX-1主要卖点是两个,p100和nvlink。
P100性能类似Pascal Titan X。跟Tesla前面系列比基本是 1 P100 ~= 2 M40 ~= 4 K40。在常见CNNs上具体性能可以参见
Performance - mxnet 0.7.0 documentationNVLink号称提供三倍PCIe 16x的带宽,实测下来确实带宽有显著提升。不过比较纠结的是,DGX-1的GPU连接比较复杂,具体可以参考nvida blog的这张图
首先一块卡只能直接跟另三块卡通讯。要想跟更远的卡通讯,需要要么通过另外一块GPU,要么通过PCIe走CPU。目前CUDA 8似乎是默认走CPU。PCIe一个switch连2块GPU和一块CPU,外加一个IB接口。所以左上角GPU要跟右下角GPU通讯,那么就是
GPU <-> PCIe <-> QPI <-> PCIe <-> GPU
不管是latency还是bandwidth自然都是很差。综合下来,8卡的all-to-all通讯,我们发现DGX-1跟纯PCIe的EC2 P2.8xlarge差不多。
在DGX1比较好的做法应该是通过中间GPU来转,这样可以全走nvlink,但这样编程会稍微复杂点。
总结下是P100单卡性能符合预期,NVLINK用得好会不错,但需要额外针对性的优化。但考虑到其价格,仅推荐土豪用户购买。
个人推荐:小厂和个人用户推荐Pascal Titan X,大厂推荐PCIe based P100。
另外,Pascal下一代Volta据说也不远了,至少又是2倍的性能提升。真是一个幸运和不幸的时代。