1.介绍

  • 2 replies
  • 324 views
*

sisiy

  • *****
  • 174
    • 查看个人资料
1.介绍
« 于: 六月 15, 2019, 11:18:45 am »
 本指南描述并解释了参数选择对当前最先进的深度学习应用程序中常用的各种类型的神经网络层性能的影响。它侧重于为深度学习提供张量核心加速度的gpu (NVIDIA Volta architecture或更近的版本)。

首先,我们提供了一个性能指南:你可以在5分钟内阅读摘要,如果遵循它,你将获得大张量核心性能。根据检查表,我们深入到指南的详细部分,首先介绍GPU性能的高级基础知识。然后,我们将在各自的部分介绍各种常见的神经网络操作——例如全连接层、卷积或批处理规范化。每个操作部分简要描述操作性能的基础,以及每个配置参数对性能的影响,提供数据来说明性能行为。

本指引旨在作为参考;有一些链接链接到其它知识库,但在可能的情况下是独立的。假设您了解一些基本原理,包括矩阵乘法。
« 最后编辑时间: 六月 15, 2019, 11:24:18 am 作者 sisiy »

*

sisiy

  • *****
  • 174
    • 查看个人资料
Re: 1.介绍
« 回复 #1 于: 六月 15, 2019, 11:28:30 am »
1.1 我们如何衡量性能
在本指南中,当我们谈论性能时,我们指的是操作速度,而不是模型精度(有些人称之为任务性能)。我们将操作性能与两个指标进行比较:持续时间(以毫秒为单位)和数学处理速率(或吞吐量),我们将这两个指标简单地称为“性能”(以每秒浮点操作或失败为单位)。整个指南中的图表都使用了最清楚地表示趋势的度量。

性能最简单的度量是持续时间:完成给定操作所需的时间。虽然度量持续时间是直观的,但是很难在非常不同大小的操作之间进行有意义的性能比较,因此我们期望有非常不同的持续时间。考虑性能的另一种方法是根据吞吐量来考虑:单位时间可以执行多少操作。在批大小为1024的层上执行一个推理步骤,自然要比在批大小为1的层上执行相同的步骤花费更长的时间。然而,使用更大的批处理大小意味着要进行更多的计算;通常,这也意味着有更多的机会并行化操作。因此,虽然完成较大的操作需要更多的时间,但通常也更有效:批大小为1024的一个步骤将比批大小为1的1024个步骤更快。这种改进很难在持续时间上看到,但是在吞吐量上可以立即看到。

在本指南中,除非另有说明,否则所有性能示例都假设16位输入和输出数据,32位累积和张量核支持快速处理。除非另有说明,否则假定张量输入和输出为NHWC格式。所有性能数据都经过多次平均以减少方差。对于卷积,数据表示互相关性能。

gpu使用动态电压/频率调整来根据工作负载消耗的功率调整时钟频率。对于本指南中的所有性能数据,输入数据和权重都是由正态分布随机生成的,导致GPU硬件单元的切换率高,功耗最大,时钟频率保守。在记录数据时,使用nvidia-smi -lock- GPU时钟将GPU频率锁定到最大频率(同时保持在功率上限内),以确保结果的一致性。
« 最后编辑时间: 六月 17, 2019, 01:36:11 pm 作者 屠戮人神 »

*

sisiy

  • *****
  • 174
    • 查看个人资料
Re: 1.介绍
« 回复 #2 于: 六月 15, 2019, 11:30:29 am »
1.2。 这本指南有什么用
NVIDIA的GPU深度学习平台提供了丰富的其他资源,您可以使用这些资源来了解更多关于NVIDIA的张量核心GPU架构,以及混合精度训练的基础知识,以及如何在您喜欢的框架中启用它。

特斯拉V100 GPU架构白皮书https://images.nvidia.com/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf  介绍了Volta,这是NVIDIA GPU架构中第一个引入张量核来加速深度学习操作的架构。图灵体系结构的等效白皮书在此基础上进行了扩展,引入了图灵张量核,增加了额外的低精度模式。

混合精度指南的训练https://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/index.html描述了精度较低的神经网络训练的基础,例如从使用的数值格式的算法考虑。它还详细说明了如何在您选择的框架中启用混合精度培训,包括TensorFlow、PyTorch和MxNet。开启混合精度训练和使用张量核的最简单、最安全的方法是通过自动混合精度,这在PyTorch、TensorFlow和MxNet中得到了支持。
« 最后编辑时间: 六月 15, 2019, 11:33:09 am 作者 sisiy »