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

时间:2017-11-16 16:45:22

标签: cuda gpu nvidia

我对与HPC计算有关的术语完全不熟悉,但我刚看到EC2在AWS上发布了他们的新型实例,该实例由新的Nvidia Tesla V100驱动,后者具有两种“核心”:Cuda Cores(5.120) )和Tensor Cores(640)。两者有什么区别?

4 个答案:

答案 0 :(得分:43)

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

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

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

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

答案 1 :(得分:13)

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

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

Nvidia撰写了一篇详细的博客here,其中详细介绍了Tensor核心如何工作以及对CUDA核心的性能改进。

答案 2 :(得分:4)

Tensor内核使用的计算能力要比Cuda Cores高得多,但精度损失并不会对最终输出产生太大影响。

这就是为什么对于机器学习模型,Tensor Cores在降低成本的同时更有效地降低了输出。

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

答案 3 :(得分:4)

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内核的计算。