【问题标题】:Measure NVIDIA Tensor Cores speedup测量 NVIDIA 张量核心加速
【发布时间】:2019-06-10 07:58:48
【问题描述】:

我在 Volta 架构 (V100 GPU) 上使用 NVIDIA Tensor Cores。我想测量张量核心对我的代码的影响(用于测试目的的 Tensorflow/Python 中的卷积神经网络)。

如何测量张量核心加速?是否可以禁用张量核心并在有/没有它们的情况下运行相同的代码?

我尝试过的:

  • TF_DISABLE_CUDNN_TENSOR_OP_MATH 设置为1(来自this)。但我仍然看到使用了张量核心。更准确地说,我在nvprof 日志中看到:volta_s884cudnn_fp16 行(使用此选项消失)和volta_s884gemm_fp16(仍然存在)。附带问题:这些行是什么意思?
  • 与没有张量核心的 Pascal 架构 (P100) 上的相同代码进行比较,我看到了 30% 的加速,但我不知道这 30% 的哪一部分是由 GPU 改进引起的,哪一部分是张量核心性能。
  • tf.float16tf.float32 中训练相同的网络,但结果相同,我看到了改进,但不知道是什么原因导致模型尺寸减小。

在此先感谢您提供任何帮助/建议。

【问题讨论】:

  • 我的猜测是volta_s884gemm_fp16来自cuBLAS库,一些ops直接调用cuBLAS,因此调用不受TF_DISABLE_CUDNN_TENSOR_OP_MATH的影响。

标签: python tensorflow cuda gpu nvidia


【解决方案1】:

我选择了一个 hack 来估计张量核心的性能增益:

  • 我在 Pascal 和 Volta 架构上运行 float32 中的代码(以估计架构的性能增益)。
  • 我也在float16 中运行了代码,假设架构的性能增益与float32float16 相同,我可以估计性能增益的另一部分(在@ 987654325@) 归于张量核心。

【讨论】:

    猜你喜欢
    • 2021-04-20
    • 2011-02-18
    • 1970-01-01
    • 2022-07-13
    • 2020-10-10
    • 2021-06-11
    • 2012-05-22
    相关资源
    最近更新 更多