本文是 深度学习有多深? (十六) -- 再论计算速度的蛮力 的续篇。

(1)

影响 GPU运算速度的技术指标有好几个。

一般人讨论计算速度时, 大多在说芯片时钟的速度。芯片频率越高, 时钟的一个周期越短, 速度越快。但这只是计算能力中的一个维度。

如果你看过我的这篇关于集装箱的文章 集装箱震撼世界 ,集装箱船运的效率, 除了轮船航行的速度 (类似芯片的速度) 以外, 更重要的是轮船的吨位, 装卸货的时间, 港口等待的时间, 等等。

(上图来自维基百科)

(上图来自维基百科)

一个典型的计算流程是这样的: 1)数据从 CPU 的内存拷贝到 GPU 的内存 2) CPU 把计算指令传送给 GPU 3) GPU 把计算任务分配到各个 CUDA core 并行处理  4) 计算结果写到 GPU 内存里, 再拷贝到 CPU 内存里

除了时钟的速度, 衡量GPU计算能力的其它几个重要参数是:

  1. (CUDA cores) 并行计算的核心处理器的数目. (类似轮船的吨位)     2. 内存大小 (类似港口的大小). 3. 内存带宽 (Bandwidth, 指数据传输的速度, 类似轮船装卸货的速度)   4. GPU/CPU之间通讯的带宽. (类似从港口到火车/卡车上的装卸货的速度) 任何一个技术参数过慢, 都可能成为妨碍计算能力进步的瓶颈。反过来说, 提高计算能力的关键, 在于改进提高计算过程中的瓶颈。

(2)

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 相比, 并行程度增加了四倍。

计算能力的提高,不再主要依靠芯片时钟速度的提高,而是通过提升不同模块之间的通讯带宽,加大并行程度而实现。