测量 NVIDIA Tensor 核心加速
Measure NVIDIA Tensor Cores speedup
我在 Volta 架构 (V100 GPU) 上使用 NVIDIA Tensor Cores。我想衡量 Tensor Cores 对我的代码的影响,(Tensorflow/Python 中的卷积神经网络用于测试目的)。
如何测量 Tensor Cores 加速?是否可以禁用张量核心和 运行 相同的代码 with/without 它们?
我尝试过的:
- 将
TF_DISABLE_CUDNN_TENSOR_OP_MATH
设置为 1(来自 this)。但我仍然看到使用了 Tensor Cores。更准确地说,我在 nvprof
日志中看到:volta_s884cudnn_fp16
行(使用此选项消失)和 volta_s884gemm_fp16
(仍然存在)。附带问题:这些行是什么意思?
- 与没有 Tensor Core 的 Pascal 架构 (P100) 上的相同代码相比,我看到了 30% 的加速,但我无法分辨这 30% 中哪一部分是由 GPU 改进引起的,哪一部分是张量核心性能。
- 在
tf.float16
和 tf.float32
中训练相同的网络,但结果相同,我看到了改进,但无法判断是什么原因导致模型尺寸减小。
在此先感谢help/advice。
我选择了一个 hack 来估算 Tensor Cores 的性能增益:
- 我 运行 Pascal 和 Volta 架构上
float32
中的代码(以估计架构的性能增益)。
- 我 运行
float16
中的代码也在两者上,并假设架构的性能增益与 float32
和 float16
相同,我可以估计性能增益的另一部分(在 float16
中)可归因于 Tensor Cores。
我在 Volta 架构 (V100 GPU) 上使用 NVIDIA Tensor Cores。我想衡量 Tensor Cores 对我的代码的影响,(Tensorflow/Python 中的卷积神经网络用于测试目的)。
如何测量 Tensor Cores 加速?是否可以禁用张量核心和 运行 相同的代码 with/without 它们?
我尝试过的:
- 将
TF_DISABLE_CUDNN_TENSOR_OP_MATH
设置为 1(来自 this)。但我仍然看到使用了 Tensor Cores。更准确地说,我在nvprof
日志中看到:volta_s884cudnn_fp16
行(使用此选项消失)和volta_s884gemm_fp16
(仍然存在)。附带问题:这些行是什么意思? - 与没有 Tensor Core 的 Pascal 架构 (P100) 上的相同代码相比,我看到了 30% 的加速,但我无法分辨这 30% 中哪一部分是由 GPU 改进引起的,哪一部分是张量核心性能。
- 在
tf.float16
和tf.float32
中训练相同的网络,但结果相同,我看到了改进,但无法判断是什么原因导致模型尺寸减小。
在此先感谢help/advice。
我选择了一个 hack 来估算 Tensor Cores 的性能增益:
- 我 运行 Pascal 和 Volta 架构上
float32
中的代码(以估计架构的性能增益)。 - 我 运行
float16
中的代码也在两者上,并假设架构的性能增益与float32
和float16
相同,我可以估计性能增益的另一部分(在float16
中)可归因于 Tensor Cores。