经常被问到的问题是“我该怎么做才能让GPU在深度学习方面表现出色?”
这篇文章里,我们将为每个技巧提供一个通用的指导原则和解释,将指导原则应用到示例层,并比较前后的性能。
技巧1:激活Tensor Core
Volta和随后的GPU架构上都提供了Tensor Core,它加速了常见的深度学习操作——特别是计算密集型任务,如全连接和卷积层。
工作负载必须使用混合精度来利用张量核。查看我们的帖子里关于自动混合精度快速设置和 混合精度相关的视频培训。此外,当某一层的某些参数可以被8整除(对于FP16数据)或16整除(对于INT8数据)时,Tensor Core就会被激活。一个具有批量大小和数量的输入输出完全连接的层将使用Tensor Core,一个具有相同数量的输入和输出通道的卷积层也将使用Tensor Core。
这是由于gpu存储和访问数据的方式。不满足这个要求的层仍然在GPU上加速。然而,这些层使用32位CUDA核而不是Tensor Core作为后备选项。
注意:在某些情况下,我们放松了需求。然而,遵循这些准则是确保启用Tensor Core的最简单方法。
让我们看两个来自流行的Transformer 神经网络的例子,来说明激活Tensor Core所带来的加速效果。《注意》(Attention Is All You Need) [Vaswani 2017]中描述的Transformer是目前最先进的语言翻译和其他序列任务网络。Transformer网络的大部分由完全连接的层组成。我们将讨论一