【体系结构】使用Roofline model 分析GPU性能

Roofline model 评估深度学习模型在GPU上运行的性能

本文使用Roofline model方式评估GeForce RTX 2060和TITAN V两款GPU上分别运行AlexNet以及VGGnet的性能。

  1. GPU性能参数
    根据NVDIA官网数据,GeForce RTX 2060 的峰值算力是7.5 TFLOPS,存储器带宽是336GB/s,TITAN V的峰值算力是7.0 TFLOPS,存储器带宽是652.8GB/s。
    【体系结构】使用Roofline model 分析GPU性能_第1张图片
    图1 GPU算力数据(来自NVDIA官网)
    【体系结构】使用Roofline model 分析GPU性能_第2张图片
    图2 GeForce RTX 2060 访存性能(来自NVDIA官网)
    【体系结构】使用Roofline model 分析GPU性能_第3张图片
    图3 TITAN V 访存性能(来自NVDIA官网)
  2. GPU的Roofline模型
    图4和图5分别是GeForce RTX 2060和TITAN V的Roofline Model。
    对于GeForce RTX 2060,当模型的计算密度小于22.27FLOP/BYTE时,模型的性能受GPU的带宽限制,当模型的计算密度大于22.27FLOP/BYTE时,模型的性能受GPU的峰值浮点运算速度限制。
    对于TITAN V,当模型的计算密度小于10.755FLOP/BYTE时,模型的性能受GPU的带宽限制,当模型的计算密度大于10.755FLOP/BYTE时,模型的性能受GPU的峰值浮点运算速度限制。
    【体系结构】使用Roofline model 分析GPU性能_第4张图片
    图4 GeForce RTX 2060的Roofline Model
    【体系结构】使用Roofline model 分析GPU性能_第5张图片
    图5 TITAN V的Roofline
  3. 深度学习模型的选择
    a) AlexNet
    AlexNet有5个卷积层和3个全连接层
    【体系结构】使用Roofline model 分析GPU性能_第6张图片
    图6 AlexNet网络结构
    C1:96×11×11×3 (卷积核个数/宽/高/深度) 34848个
    C2:256×5×5×48(卷积核个数/宽/高/深度) 307200个
    C3:384×3×3×256(卷积核个数/宽/高/深度) 884736个
    C4:384×3×3×192(卷积核个数/宽/高/深度) 663552个
    C5:256×3×3×192(卷积核个数/宽/高/深度) 442368个
    R1:4096×6×6×256(卷积核个数/宽/高/深度) 37748736个
    R2:4096×4096 16777216个
    R3:4096×1000 4096000个
    共6000万个参数
    AlexNet 训练一次总共需要的浮点计算数为720M。访存量为59.968M*4B=
    239.872MB计算密度为720M/239.872M = 3FLOP/BYTE
    【体系结构】使用Roofline model 分析GPU性能_第7张图片
    图7 AlexNet模型每层每秒浮点运算次数及参数数量
    b) VGG16
    【体系结构】使用Roofline model 分析GPU性能_第8张图片
    图8 VGG16 结构图
    【体系结构】使用Roofline model 分析GPU性能_第9张图片
    图9 VGG16 的参数数量及运算量
    VGG16的浮点计算量约为15GFLOPS,总访存量约为600MB,计算密度约为 25FLOP/BYTE
  4. 模型性能分析
    a) 在GeForce RTX 2060上运行的性能分析
    可以看到VGG16的计算密度已经超过图中两条线的临界点,其性能主要受GPU的峰值浮点运算性能限制,理论上可以达到的运算速度为7.5TFLOP/S。而ALEXNET由于计算密度只有3FLOP/BYTE,故性能瓶颈主要受带宽限制,理论上能达到的最大运算速度为1.008TFLOP/S.
    【体系结构】使用Roofline model 分析GPU性能_第10张图片
    图10 ALEXNET和VGG16在GeForce RTX 2060上运行的性能分析
    b) 在 TITAN V上运行的性能分析
    可以看到VGG16的计算密度已经超过图中两条线的临界点,其性能主要受GPU的峰值浮点运算性能限制,理论上可以达到的运算速度为7TFLOP/S。而ALEXNET由于计算密度只有3FLOP/BYTE,故性能瓶颈主要受带宽限制,理论上能达到的最大运算速度为1.96TFLOP/S.
    【体系结构】使用Roofline model 分析GPU性能_第11张图片
    图11 ALEXNET和VGG16在TITAN V上运行的性能分析
  5. 总结
    通过对两款GPU和两种深度学习模型进行Roofline分析之后,我们可以得出结论,由于GeForce RTX 2060峰值运算速度更高,所以VGG16在GeForce RTX 2060上可以得到更好的表现,而TITAN V的访存速度更快,所以ALEXNET在TITAN V上的表现更好。

你可能感兴趣的:(实战区,体系结构)