cuda与张量核心有什么区别?

Sim*_*ate 40 cuda gpu nvidia

我对与HPC计算相关的术语完全不熟悉,但我刚刚看到EC2在AWS上发布了他们的新型实例,该实例由新的Nvidia Tesla V100提供支持,它具有两种"核心":Cuda Cores(5.120),以及张量核心(640).两者有什么区别?

小智 52

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

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

它被称为混合精度,因为输入矩阵是fp16,但乘法结果和累加器是fp32矩阵.

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

  • 时间来更新这个答案 - [Nvidia的图灵架构](https://nvidianews.nvidia.com/news/nvidia-reinvents-computer-graphics-with-turing-architecture)刚刚发布 (13认同)

Mik*_*ica 17

GPU一直很适合机器学习.GPU核心最初设计用于物理和图形计算,涉及矩阵操作.通用计算任务不需要大量的矩阵运算,因此CPU的速度要慢得多.物理和图形也比一般计算任务更容易并行化,从而导致高核心数.

由于机器学习(神经网络)的矩阵性质,GPU非常适合.Tensor内核对机器学习软件(如Tensorflow)中涉及的计算类型更加专业化.

Nvidia在这里写了一篇详细的博客,其中详细介绍了Tensor内核如何工作以及对CUDA内核的性能改进.


小智 7

CUDA 核心:

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

1 x 1 per GPU clock
Run Code Online (Sandbox Code Playgroud)

张量核心:

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

[1 1 1       [1 1 1
 1 1 1   x    1 1 1    per GPU clock
 1 1 1]       1 1 1]
Run Code Online (Sandbox Code Playgroud)

更准确地说,TENSOR 核心同时进行许多 CUDA 核心的计算。


小智 6

Tensor内核使用的计算能力要比Cuda Core少得多,但会牺牲精度,但是精度损失对最终输出影响不大。

这就是为什么对于机器学习模型而言,Tensor Core在降低成本的同时却没有太大变化的情况下更有效。

Google本身使用Tensor处理单元进行Google翻译。

  • 误导性的答案。谷歌的 TPU 和 nvidia 的 Tensor Core 没有任何共同点。 (14认同)