200 cycle(全局内存)+ 20 cycle(共享内存)+ 1 cycle(Tensor Core)= 221 cycle因此,我们通过张量核将矩阵乘法的开销从 392 个 cycle 大幅降低到 221 个 cycle 。在这种情况下,张量核降低了共享内存访问和 FFMA 操作的成本 。
在这个例子中,有和没有张量核都大致遵循相同的计算步骤,请注意,这是一个非常简化的例子 。在实际情况下,矩阵乘法涉及到更大的共享内存块,计算模式也稍微不同 。
不过我相信,通过这个例子,我就很清楚为什么内存带宽对于配备张量核的 GPU 来说如此重要 。在使用张量核进行矩阵乘法时,全局内存是 cycle 开销中最重要的部分,如果可以降低全局内存延迟,我们甚至可以拥有速度更快的 GPU 。要做到这一点,我们可以通过增加内存的时钟频率(增加每秒 cycle 数,但也会增加发热和电量消耗)或增加每次可以转移的元素数量(总线宽度) 。
内存带宽从上一节我们已经看到,张量核非常快 。事实上,它们大部分时间都是空闲的,因为需要等待数据从全局内存读到共享内存 。例如,在 BERT 大型训练中,它使用非常大的矩阵——对于张量核来说,越大越好——我们的 Tensor Core TFLOPS 利用率大约为 30%,也就是说,70% 的时间张量核都是空闲的 。
这意味着,当比较两个具有张量核的 GPU 时,GPU 性能的最佳指标之一就是它们的内存带宽 。例如,A100 GPU 的内存带宽为 1555 GB/s,而 V100 的是 900 GB/s 。因此,基本可以估计 A100 的速度是 V100 的 1555/900 = 1.73 倍 。
共享内存 / L1 缓存大小 / 寄存器由于内存传输到张量核是性能的限制因素,所以我们正在寻找其他可以提升内存到张量核传输速度的 GPU 属性 。这和共享内存、L1 缓存以及使用的寄存器数量有关 。理解存储层次结构如何带来更快的内存传输,有助于理解矩阵乘法在 GPU 上如何执行 。
为了执行矩阵乘法,我们利用了 GPU 的存储层次结构,从慢的全局内存到快的本地共享内存,再到快如闪电的寄存器 。然而,越快的存储越小 。因此,我们需要将矩阵分割成更小的矩阵,并在本地共享内存中通过这些更小的块执行矩阵乘法,它们速度快,并且接近于串流多处理器(SM)——相当于 CPU 内核 。对于张量核,我们更进一步:我们取每个块并将其中的一部分装入张量核中 。共享内存中的矩阵 memory tile 比 GPU 全局内存快大约 10-50 倍,而张量核的寄存器比 GPU 全局内存快 200 倍 。
拥有更大的 tile 意味着我们可以重用更多的内存 。我在博文 TPU vs GPU 中详细探讨了这个问题 。实际上,你可以将 TPU 看作是每个张量核都有非常非常大的 tile 。因此,TPU 在每次从全局内存传输数据时都可以重用更多的内存,这使得它们在矩阵乘法计算方面比 GPU 更有效率 。
每个块的大小是由每个串流多处理器(SM,相当于 GPU 上的一个“CPU 内核”)的内存大小决定的 。在以下架构中,我们有以下共享内存大小:
- Volta:96kb 共享内存 / 32 kb L1
- Turing:64kb 共享内存 / 32 kb L1
- Ampere:164kb 共享内存 / 32 kb L1
Ampere 张量核的另一个优点是它们在线程之间共享更多的数据 。这减少了寄存器的使用 。寄存器被限制为每个串流多处理器(SM)64k 或每个线程 255 。比较 Volta 和 Ampere 张量核,Ampere 张量核使用 1/3 的寄存器,允许更多张量核在共享内存的每个块上活动 。换句话说,我们可以用相同数量的寄存器支撑 3 倍的张量核 。然而,由于带宽仍然是瓶颈,所以实际的 TFLOPS 与理论的 TFLOPS 相比,只会有微小的提高 。新的张量核提高了大约 1-3% 的性能 。
总的来说,我们可以看到,Ampere 的架构经过优化,它使用改进后的存储层次结构(从全局内存到共享内存块,再到张量核寄存器),使可用内存带宽更加有效 。
评估 Ampere 的深度学习性能要点:
- 根据内存带宽和 Ampere GPU 改进的存储层次估计,理论上,其速度提升 1.78 倍到 1.87 倍 。
- NVIDIA 提供了 TeslaA100 和 V100 GPU 的准确基准测试数据 。这些出于营销目的数据存在偏差,但是可以建立这些数据的去偏模型 。
- 去偏基准测试数据显示,Tesla A100 在 NLP 方面比 V100 快 1.70 倍,在计算机视觉方面比 V100 快 1.45 倍 。
推荐阅读
- 狗如何训练定点大小便 如何训练柯基狗狗在固定地点大小便
- 初学者如何学太极拳 二个训练方法要谨记
- 跆拳道力量训练的方法有哪些?
- 跑步训练器锻炼有哪些好处呢
- 跑步怎么训练呢
- 长跑体能训练方法有哪些呢
- 足球运动员训练方法介绍
- 运动|曝胖猴仔被训练营“扫地出门”,600W打水漂,网友:自己作的
- 踝关节力量训练方法有哪些?
- 拳击的力量训练有哪些?