这篇文章可以帮助我们了解 GPU 对深度学习性能的多个影响因素,从而帮助我们评估、选用 GPU。本文将按照 GPU 各组件的重要程度顺序来进行介绍。Tensor Core(张量计算核心)是最重要的因素,其次是 GPU 的内存带宽和缓存层次结构,最后是 GPU 的 FLOPS。
目录
01 Tensor Core(张量计算核心)
1.1 在没有张量计算核心的情况下进行矩阵乘法运算
1.2 使用张量计算核心进行矩阵乘法运算
1.3 使用张量计算核心和异步拷贝(RTX 30/RTX 40)以及TMA(H100)进行矩阵乘法运算
02 内存带宽
03 二级缓存/共享内存/一级缓存/寄存器
01 Tensor Core(张量计算核心)
Tensor Core(张量计算核心)是一种能执行高效矩阵乘法运算的微小核心。由于矩阵乘法是任何深度神经网络中最耗费计算资源的部分,因此Tensor Core(张量计算核心)非常有用。它的功能非常强大,强大到我不推荐使用任何没有Tensor Core(张量计算核心)的 GPU。
了解它们的工作原理,有助于理解这些特有的矩阵乘法计算单元(computational units)的重要性。下面以一个简单的 A*B=C 矩阵乘法为例(其中所有矩阵的大小都是 32×32),展示了有张量计算核心和没有张量计算核心的计算模式。这只是一个简化后的例子,并不是高性能矩阵乘法核心的精确编写方式,但它包含了所有基本要素。CUDA 程序员会将此作为第一份 “草稿”,然后利用双缓冲(double buffering)、寄存器优化(register