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