【问题标题】:What is the difference between cuda vs tensor cores?cuda 与张量核心有什么区别?
【发布时间】:2018-04-30 07:24:06
【问题描述】:

我对与 HPC 计算相关的术语完全陌生,但我刚刚看到 EC2 在 AWS 上发布了由新的 Nvidia Tesla V100 提供支持的新型实例,它具有两种“内核”:Cuda Cores (5,120 ) 和张量核心 (640)。 两者有什么区别?

【问题讨论】:

    标签: cuda gpu nvidia


    【解决方案1】:

    CUDA 核心:

    每个 GPU 时钟执行一次单值乘法

    1 x 1 per GPU clock
    

    TENSOR 核心:

    每个 GPU 时钟执行一次矩阵乘法

    [1 1 1       [1 1 1
     1 1 1   x    1 1 1    per GPU clock
     1 1 1]       1 1 1]
    

    更准确地说,TENSOR 内核同时执行多个 CUDA 内核的计算。

    【讨论】:

      【解决方案2】:

      与 Cuda 核心相比,张量核心以牺牲精度为代价使用的计算能力要少得多,但精度损失对最终输出的影响并不大。

      这就是为什么对于机器学习模型,张量核心在降低成本方面更有效,而输出没有太大变化。

      谷歌本身使用张量处理单元进行谷歌翻译。

      【讨论】:

      • 误导性答案。 Google 的 TPU 和 nvidia 的 Tensor Core 没有任何共同之处。
      【解决方案3】:

      现在只有 Tesla V100 和 Titan V 有张量核心。两个 GPU 都有 5120 个 cuda 核心,每个核心在每个 GPU 时钟(例如 Tesla V100 PCIe 频率为 1.38Gz)中最多可以执行 1 个单精度乘加运算(例如在 fp32 中:x += y * z)。

      每个张量核心在大小为 4x4 的小矩阵上执行操作。每个张量核心每 1 个 GPU 时钟可以执行 1 个矩阵乘法累加运算。它将两个 fp16 矩阵 4x4 相乘,并将乘积 fp32 矩阵(大小:4x4)添加到累加器(也就是 fp32 4x4 矩阵)。

      之所以称为混合精度,是因为输入矩阵是fp16,而乘法结果和累加器是fp32矩阵。

      可能正确的名称只是 4x4 矩阵核心,但 NVIDIA 营销团队决定使用“张量核心”。

      【讨论】:

      【解决方案4】:

      GPU 一直对机器学习有好处。 GPU 内核最初是为物理和图形计算而设计的,其中涉及矩阵运算。一般的计算任务不需要大量的矩阵运算,因此 CPU 在这些方面要慢得多。物理和图形也比一般计算任务更容易并行化,从而导致高核心数。

      由于机器学习(神经网络)的矩阵重度性质,GPU 非常适合。张量核心只是更专注于机器学习软件(例如 Tensorflow)中涉及的计算类型。

      Nvidia 写了一篇详细的博客 here,其中详细介绍了 Tensor 内核的工作原理以及相对于 CUDA 内核的性能改进。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-04
        • 2013-10-11
        • 2022-07-13
        • 2018-08-08
        • 1970-01-01
        • 2017-03-27
        • 2014-10-12
        • 1970-01-01
        相关资源
        最近更新 更多