【发布时间】: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.float16和tf.float32中训练相同的网络,但结果相同,我看到了改进,但不知道是什么原因导致模型尺寸减小。
在此先感谢您提供任何帮助/建议。
【问题讨论】:
-
我的猜测是volta_s884gemm_fp16来自cuBLAS库,一些ops直接调用cuBLAS,因此调用不受TF_DISABLE_CUDNN_TENSOR_OP_MATH的影响。
标签: python tensorflow cuda gpu nvidia