本文是 深度学习有多深? (十六) -- 再论计算速度的蛮力 的续篇。
影响 GPU运算速度的技术指标有好几个。
一般人讨论计算速度时, 大多在说芯片时钟的速度。芯片频率越高, 时钟的一个周期越短, 速度越快。但这只是计算能力中的一个维度。
如果你看过我的这篇关于集装箱的文章 集装箱震撼世界 ,集装箱船运的效率, 除了轮船航行的速度 (类似芯片的速度) 以外, 更重要的是轮船的吨位, 装卸货的时间, 港口等待的时间, 等等。
(上图来自维基百科)
一个典型的计算流程是这样的: 1)数据从 CPU 的内存拷贝到 GPU 的内存 2) CPU 把计算指令传送给 GPU 3) GPU 把计算任务分配到各个 CUDA core 并行处理 4) 计算结果写到 GPU 内存里, 再拷贝到 CPU 内存里
除了时钟的速度, 衡量GPU计算能力的其它几个重要参数是:
2016年四月, 在硅谷的 GPU 开发者大会上, Nvidia 的黄仁勋宣布推出最新的超算系统 DGX-1. 这是一个拥有八个最新的代号 P100 的GPU的系统,售价接近十三万美元. 在运行 alexnet 的训练计算时间上, 只花费了两个小时, 比2012年十月 Alex Krizhevsky 团队使用两个 GTX 580 GPU, 六天的运算时间快了 75倍。
(关于 alexnet 可参见我的文章 深度学习有多深? 学了究竟有几分? (六) )
只需两个小时的训练时间,必然将推动更多精巧的算法被发现。
三年半快了 75 倍, 这个计算速度的提升, 是如何做到的呢?
P100 的时钟频率是 1328 Mhz, 比 GTX580 的时钟频率 1544 Mhz 实际上还略低一些。但是:
第一, P100 有 3800 个core, 和 GTX 580 的 512个 core 相比, 并行程度增加了六倍以上。
第二, P100 的内存达到 16 GB, 是GTX 580的十倍以上。内存带宽为 720 GB/s, 是 GTX 580 的三倍以上。(芯片的内存又细分为 Register/寄存器, Cache/缓存, Memory/内存, 这里暂不细表) 内存读写的瓶颈大大减小。
第三, P100 在硬件上实现了一些算法的直接支持,比如十六位的浮点数计算。由于深度学习计算许多时候对精度要求并不高, 十六位浮点数的计算速度, 就比传统的三十二位浮点数计算速度快了两倍。
第四, 由于 P100使用了新的所谓 NVlink 的架构, GPU/CPU 直接通讯的带宽高达 160 GB/s, 是 GTX 580 的二十倍。GPU 之间数据传输, 不再是大的瓶颈。Nvidia 把八个 GPU 放在一起并行运算, 这和 2012年 Krizhevsky 团队使用两个 GPU 相比, 并行程度增加了四倍。
计算能力的提高,不再主要依靠芯片时钟速度的提高,而是通过提升不同模块之间的通讯带宽,加大并行程度而实现。