Nvidia Tesla T4 张量核心基准测试 [关闭]

Posted

技术标签:

【中文标题】Nvidia Tesla T4 张量核心基准测试 [关闭]【英文标题】:Nvidia Tesla T4 tensor core benchmark [closed] 【发布时间】:2021-04-20 19:32:39 【问题描述】:

我正在使用here 给出的代码来找出 Nvidia Tesla T4 上混合精度操作的 TFlops。其理论值为 65 Tflops。但是,代码产生的值是 10 Tflops。有什么解释可以证明这种情况的发生吗?

【问题讨论】:

我不认为 CUDA 示例是高性能、高度优化的代码,它们可以接近 GPU 的理论性能。他们在那里展示概念并提供试验场。 那么您可以建议任何基准代码来测试 gpu 的半精度触发器、int4 和 int8 iops?我已经尝试使用这里的代码link。这使得峰值 Tflops 为 15 我说的是能够做到这一点的图灵张量核心...... int4 和 int8 iops 的数字在这里link。向下滚动后,您将在规格部分找到信息 询问如何在合成示例中最大化 TFLOP(例如,使用微不足道的内存访问模式以确保这不是瓶颈)是与解释某些示例代码的性能不同的问题。如果那是您想要的,请单独询问。 【参考方案1】:

这可能更像是一个扩展评论,请听我说...

正如 cmets 中所指出的,CUDA 样本并不是性能测量工具。 您提供的第二个基准测试实际上并未使用张量核心,而只是在 FP32 或 FP64 核心上执行的普通指令。

for(int i=0; i<compute_iterations; i++)
            tmps[j] = mad(tmps[j], tmps[j], seed);
    

在 Turing T4 上,单精度运算的峰值为 7.97 TFLOPS,非常接近 8.1 TFLOPS 的理论极限。 对于半精度运算,我得到 16.09 TFLOPS,正如预期的那样,是单精度性能的两倍。

现在,进入 Tensor 核心。由于前面提到的基准测试没有使用它们,让我们寻找一些可以使用的东西。 CUTLASS (https://github.com/NVIDIA/cutlass) 是来自 NVIDIA 的高性能矩阵-矩阵乘法库。 它们为所提供的所有内核提供了一个分析应用程序。如果你在 T4 上运行它,你应该得到如下输出:

Problem ID: 1

   Provider: ^[[1;37mCUTLASS^[[0m
   OperationKind: ^[[1;37mgemm^[[0m
   Operation: cutlass_tensorop_h1688gemm_256x128_32x2_nt_align8

      Status: ^[[1;37mSuccess^[[0m
Verification: ^[[1;37mON^[[0m
 Disposition: ^[[1;32mPassed^[[0m

 reference_device: Passed
      cuBLAS: Passed

   Arguments: --gemm_kind=universal --m=1024 --n=1024 --k=1024 --A=f16:column --B=f16:row --C=f16:column --alpha=1  \
              --beta=0 --split_k_slices=1 --batch_count=1 --op_class=tensorop --accum=f16 --cta_m=256 --cta_n=128  \
              --cta_k=32 --stages=2 --warps_m=4 --warps_n=2 --warps_k=1 --inst_m=16 --inst_n=8 --inst_k=8 --min_cc=75  \
              --max_cc=1024

       Bytes: 6291456  bytes
       FLOPs: 2149580800  flops

     Runtime: 0.0640419  ms
      Memory: 91.4928 GiB/s

        Math: 33565.2 GFLOP/s

如您所见,我们现在实际使用的是 Tensor 核心和半精度运算,性能为 33.5 TFLOPS。现在,这可能不是 65 TFLOS,但对于您可以在现实世界中使用的应用程序来说,这已经相当不错了。

【讨论】:

我尝试使用 kernel= cutlass_tensorop_h1688gemm_256x128_32x2_nt_align8 运行相同的脚本,但结果仍然没有超过 16000 您确定使用相同的参数运行它吗?我刚刚运行了整个分析器并挑选了一个结果。如果您没有达到足够高的入住率等,那么您将无法获得接近峰值性能的任何东西似乎是合理的。 我用相同的参数运行了代码。我又试了一次,结果证明将时钟设置为最大值就可以了!获得了大约 40 TFLOPS...感谢您对此的帮助..非常感谢..

以上是关于Nvidia Tesla T4 张量核心基准测试 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Nvidia Tesla 上的 OpenCL:未找到任何平台

测量 NVIDIA 张量核心加速

如何使用 python 和 numba 在 RTX GPU 中对 NVIDIA 的张量核心进行编程?

NVIDIA GPU卡有几种架构?

Nvidia Tesla A100 驱动安装方法

Nvidia Tesla A100 驱动安装方法