深度 | 英伟达深度学习Tensor Core全面解析

原标题:深度 | 英伟达深度学习Tensor Core全面解析

原标题:写在RTX2080评测之前:老黄想用AI/光线追踪颠覆显卡?

AI 科技评论消息,不久前,NVIDIA在SIGGRAPH
2018上正式发布了新一代GPU架构——Turing(图灵),黄仁勋称Turing架构是自2006年CUDA
GPU发明以来最大的飞跃。Turing架构的两大重要特性便是集成了用于光线追踪的RT
Core以及用于AI计算的Tensor
Core,使其成为了全球首款支持实时光线追踪的GPU。

【PConline
杂谈】
过去两年的显卡市场是游戏玩家不堪回首的记忆,2016年NVIDIA发布Pascla显卡之后带来了性能更强、能效更好的GTX
10系列显卡,但是之后显卡市场遭遇矿卡从疯狂到崩盘、显存大涨价等多方因素影响,导致显卡市场两年来都没新一代更替,直到8月20日的科隆游戏展上,NVIDIA推出了代号图灵Turing的新一代GPU架构,并启用了GeForce
RTX品牌,新一代显卡终于来了。

说到AI计算,NVIDIA
GPU成为最好的加速器早已是公认的事实,但将Tensor
Core印上GPU名片的并不是这次的Turing,而是他的上任前辈——Volta。

澳门金沙4787.com 1

澳门金沙4787.com 2

澳门金沙4787.com 3

基于Volta架构的Titan
V是NVIDIA在计算领域成就的集大成者。深度学习和神经网络已成为NVIDIA
GPU的背后驱动力,作为最先进的计算加速器,它集成了用于机器学习操作的内置硬件和软件加速,深度学习能力完全可以被当做Titan
V和Volta的名片。

游戏玩家这一次的等待时间很长,不过某种方面来说这次的等待也很值得,因为NVIDIA的图灵显卡号称有史以来升级最大的GPU架构,创始人、CEO黄仁勋直接称之为2006年以来GPU最大的飞跃。

Titan V与初代基于开普勒的GeForce GTX
Titan已经相去甚远,初代Titan的定位是一款万能显卡,既可作为游戏发烧友的旗舰游戏显卡,也为专业消费者提供全双精度浮点(FP64)计算能力。在Titan
V诞生之前,Titan产品线几乎都是基于这种设计方法,一颗巨大的GPU核心是NVIDIA“高大全”设计思路的最好代表。

澳门金沙4787.com 4

澳门金沙4787.com 5

另一方面,全新的GeForce RTX
20系列显卡的售价也水涨船高,这次发布了GeForce RTX 2080 Ti、RTX 2080及RTX
2070三款显卡,其中前两款显卡率先上市,FE创始人公版RTX 2080
Ti价格达到了9999元,RTX
2080显卡的FE公版也要6499元,第三方厂商的价格分别是8199、5699元,整体价格比现在的GTX
1080系列高出一截。

而在Titan
V上,NVIDIA再次扩展了大核心的上限。Volta最引人注目的则是其全新的专用处理模块——Tensor
Core(张量计算核心),它与Volta的其他微架构改进,以及支持深度学习和HPC(高性能计算)的软件/框架集成在一起。

澳门金沙4787.com 6

凭借面积达815mm²的巨大GV100核心,Titan这一产品线变得比以往任何时候都更接近工作站级,Titan
V在拥有世界最强图形渲染性能的同时,深度学习和高性能计算方面的性能都有了极大的提升,当然它的价格也达到了工作站级的3000美元。

目前NVIDIA的GeForce RTX
2080系列显卡还没有解禁,因此性能提升幅度还没有定论,不好比较更高价的RTX
2080系列显卡是否对得起它的售价。不过今晚NVIDIA解禁了图灵显卡的技术细节,我们可以从技术角度来看看图灵GPU架构到底带来哪些改变?

强化算力,重造Titan

GP102与TU102核心参数对比 显卡RTX2080TiGTX1080Ti Quadro RTX
6000Quadro 6000架构Turing
Pascal
TuringPascal晶体管数186亿120亿186亿120亿 制作工艺12nm16nm
12nm16nm 流处理器**43523584 46083840 RTX-Ops**7811.3
84显存容量**11GB11GB24GB24GB 澳门金沙4787.com,显存类型**GDDR6GDDR5X
GDDR6GDDR5X 显存位宽352Bit352Bit384bit384bit
显存频率14000MHz11000MHz14000MHz9000MHz
显存带宽**616GB/s484GB/s672GB/s432GB/sFP3214.2TFlops11.3TFlops16.3TFlops12.6TFlopsFP1628.5TFlops-32.6TFlops-INT8227.7TFlops-261.0TFlops-TDP**260W250W 260W250

除了深度学习和通用计算之外,Titan品牌的这次迭代还涉及到其他一些因素。
NVIDIA其实已经不太需要通过Titan系列为自己树立形象,最初的GTX
Titan已经通过NVIDIA K20Xs为Oak
Ridge国家实验室的Titan超级计算机提供计算力。况且,Titan系列在产品价格和性能方面也没有任何特别的竞争压力。

▍ NVIDIA图灵架构改进:

尽管Titan V的非ECC
HBM2显存和GeForce驱动程序堆栈都更加面向消费者,但该卡仍可直接受益于框架和API的软件支持,这是NVIDIA深度学习开发整体工作的一部分。
鉴于单路Titan V并不会对服务器计算卡Quadro
GV100产生什么影响,NVIDIA在Titan
V上只砍掉了针对服务器多路互联设计的NVLink高速总线,而主要的计算能力(FP64/FP16/Tensor
Core)都被完整保留。

1、图灵CUDA核心大改:性能提升50%

澳门金沙4787.com 7

N卡玩家常听到的一个词就是CUDA核心,它就是GPU架构中的基本单位——流处理器单元,CUDA核心数越多,显卡性能越强,同时每个CUDA核心的性能越强,这就类似于CPU中的核心数及单核性能一样,只有CUDA核心又多又强的情况下显卡性能提升才会更明显。

与Pascal及更早期的产品均使用面向PC设计的GPU以及常规GDDR5(x)显存不同,NVIDIA这次选择了一颗规模巨大、产量和良品率都不高的服务器级芯片,有大量的晶体管被花费在了非图形功能上(即Tensor
Core),这是NVIDIA在计算领域押下的赌注,NVIDIA已经不满足于只在传统图形计算卡和通用计算方面处于领先地位。

澳门金沙4787.com 8

由于是首次分析GPU的深度学习性能,所以目前市面上还没有确定一套标准的基准测试,特别是对于Volta独特的张量内核和混合精度功能。对于Titan
V,我们将使用百度DeepBench、NVIDIA的Caffe2 Docker、Stanford
DAWNBench和HPE深度学习基准套件(DLBS)来测试。

在现在的Pascal显卡上,GP102大核心的CUDA核心数最多3840个,GTX 1080
Ti是3584个,而图灵GPU的TU102核心完整版是4608个CUDA核心,不过RTX 2080
Ti现在只使用了4352个,从3584到4352意味着CUDA核心数增加了21%,这个增幅并不算高,因为图灵这一代的CUDA架构着重于提升性能,NVIDIA宣称每个CUDA核心的性能提升了50%。

但是在深入研究这些测试数据之前,我们首先会对深度学习、GPU、Volta微架构以及深度学习性能基准进行一些背景介绍。

CUDA核心性能大幅增长则受益于SM单元的改变,在Pascal
GPU架构中,NVIDIA在GP102、GP104、GP106核心中的SM单元中塞入了128个CUDA核心,配备了48KB
L1缓存、96KB共享缓存、256KB寄存器容量,架构如下所示:

GPU与深度学习

GTX1080显卡的GP104核心SM单元架构

首先要说明的是,虽然“机器学习”或更通用的“AI”有时可互换用于“深度学习”,但从技术上讲,它们各自指的是不同的东西,机器学习是AI的子集,深度学习则是机器学习的子集。

澳门金沙4787.com 9

澳门金沙4787.com 10

TU102核心的SM单元架构

深度学习是因“深度神经网络”(Deep Neural
Networks)而得名,其最终被设计为识别数据中的模式,产生相关预测,接收关于预测准确度的反馈,然后基于反馈进行自我调整。计算发生在“节点”上,“节点”被组织成“层”:原始输入数据首先由“输入层”处理,“输出层”推出代表模型预测的数据。两者之间的任何一层都被称为“隐藏层”,而“deep”则代表着深度神经网络有许多隐藏层。

图灵GPU架构的SM单元不一样,NVIDIA减少了SM单元中的CUDA核心数到64个,但增大了SM单元数量,TU102总计72组SM单元,而GP104是20组SM单元,同时又增加了每组SM单元的缓存,新增了L0缓存、L1/共享缓存增加到了96KB,看似减少了,但是分配方式更灵活,需要的时候L1缓存分配到64KB,比Pascal显卡的48KB提升50%。

这些隐藏层可以在不断增加的抽象层次上运行,使得它们甚至可以从复杂的输入数据中提取和区分非线性特征。一个标准的例子是图像识别,其中初始层寻找某些边缘或形状,这通知后面的层寻找鼻子和眼睛,之后的层可能寻找面部。最后的图层组合了所有这些数据以进行分类。

澳门金沙4787.com 11

澳门金沙4787.com 12

此外,图灵GPU的SM单元还基于常见工作负载做了执行单元的优化,增加了第二条并行单元,在执行整数类型的计算时浮点单元也不会空置了,使得执行单元的效率提升了36%,大幅提升了执行单元的效率及性能。

随着输入数据在模型中向前推进,计算包括特殊的内部参数(权重),最后会产生一个表示模型预测与正确值之间误差的损失函数。然后使用此错误信息反向运行模型以计算将改善模型预测的权重调整,该前向和后向传递(或反向传播)序列包括单个训练迭代。

澳门金沙4787.com 13

对于推断来说,这个过程自然地排除了反向传递,最终需要的计算强度比训练模型更小。从这个意义上说,推断也不太需要像FP32这样高的精度,并且可以对模型进行适当的修剪和优化,以便在特定的设备上部署。然而推断设备对延迟、成本和功耗变得更加敏感,尤其是在边缘计算的场景下。

总的来说,在CUDA及SM单元上,图灵架构重新分配了缓存系统,优化了执行单元效率,使得CUDA核心性能最多提升50%,在其他不同类型的负载中提升幅度也有50-70%,使得图灵显卡在CUDA核心数没有大幅增长的情况下游戏性能依然有明显提升。

卷积神经网络(CNN)和递归神经网络(RNN)是深度神经网络的两个重要子类型。卷积本身是一种操作,将输入数据和卷积核结合起来形成某种特征映射,转换或过滤原始数据以提取特征。

图灵架构的重点之一:保留Tensor单元,显卡也能玩AI

CNN通常是“前馈”的,因为数据在没有循环的情况下流过各层。而对于RNN(以及像LSTM和GRU这样的变体)来讲,每次计算后都会有一个单独的权重循环回自身,给网络一种“记忆”感,这让网络能够做出有时间意识的预测,在文本分析等场景中很有用。

图灵显卡虽然大幅提升了CUDA单元的性能,那为什么不增加更多的CUDA单元呢?毕竟核心面积以及晶体管规模相比Pascal显卡大幅增加了,原本该有足够的空间增加CUDA核心才对。这个问题就要说到NVIDIA在图灵架构上的野心了,这也是NVIDIA一直强调图灵显卡为什么是有史以来架构变化最大的GPU了,因为它增加了AI运算单元及RT光线追踪渲染单元。

由于深度学习数学可以归结为线性代数,因此某些操作可以重写为对GPU更友好的矩阵乘法。当NVIDIA首次开发并公布cuDNN时,其中一个重要实现就是将算法降级为矩阵乘法以加速卷积。多年来cuDNN的发展包括“预先计算的隐式GEMM”卷积算法,它恰好是触发Tensor
Core卷积加速的唯一算法。

澳门金沙4787.com 14

NVIDIA GPU的优势

先说AI单元,实际上叫做Tensor
Core(张量核心),这是Volta架构上首次增加的新单元,图灵架构继承了Tensor
Core设计,每个SM单元中有8个Tensor Core核心,总计576个Tensor单元,不过RTX
2080 Ti实际启用的是544个。

对于深度学习训练来说,GPU已经成为加速器的最佳选择。大多数计算本质上是并行的浮点计算,即大量的矩阵乘法,其最佳性能需要大量的内存带宽和大小,这些需求与HPC的需求非常一致,GPU正好可以提供高精度浮点计算、大量VRAM和并行计算能力,NVIDIA的CUDA可谓恰逢其时。

澳门金沙4787.com 15

CUDA和NVIDIA的计算业务的发展与机器学习的研究进展相吻合,机器学习在2006年左右才重新成为“深度学习”。GPU加速神经网络模型相比CPU可提供数量级的加速,反过来又将深度学习重新推广到如今的流行词汇。与此同时,NVIDIA的图形竞争对手ATI在2006年被AMD收购;OpenCL
1.0在2009年才发布,同年AMD剥离了他们的GlobalFoundries晶圆厂。

相比一般的CUDA核心,Tensor
Core主要用于执行神经网络、推理训练等深度学习相关的运算,特点就是对性能要求很高,但对运算精度没这么高,因此图灵架构大砍了FP64双精度运算,仅为FP32单精度的1/32,反正对游戏来说FP64单元没什么意义,只会增加功耗。

随着DL的研究人员和学者们成功地使用CUDA来更快地训练神经网络模型,NVIDIA才发布了他们的cuDNN库的优化深度学习库,其中有很多以HPC为中心的BLAS(基本线性代数子例程)和相应的cuBLAS先例,cuDNN将研究人员创建和优化CUDA代码以提高DL性能的需求抽象出来。至于AMD的同类产品MIOpen,去年才在ROCm保护伞下发布,目前也只在Caffe公开发布。

增加专用的Tensor Core核心之后,图灵显卡的AI性能大幅提升,以RTX 2080
Ti为例,其FP32浮点性能为13.4TFLOPS,FP16浮点性能翻倍到了26.89TFLOPS,FP16
Accumulate性能高达107.6TFLOPS,INT8、IN4性能更是可以达到215.2TFLOPS、430.4TFLOPS,这是现有Pascal显卡不支持的运算。

所以从这个意义上讲,尽管NVIDIA和AMD的底层硬件都适合DL加速,但NVIDIA
GPU最终成为了深度学习的参考实现。

澳门金沙4787.com 16

剖析Tensor Core

图灵显卡增加了Tensor除了可以用于AI加速运算,NVIDIA也在加速推动游戏支持AI加速的过程,这次还推出了NGX软件工具,通过它可以在图灵显卡上实现DLSS(深度学习超级采样)抗锯齿,INPAINTING图形修补、AI
Slow-Mo慢动作、AI Super Rez超级分辨率等功能。

在关于Volta混合精度Tensor
Core的几个谜团中,一个比较烦人的问题是4×4矩阵乘法的能力。Tensor
Core是一种新型处理核心,它执行一种专门的矩阵数学运算,适用于深度学习和某些类型的HPC。Tensor
Core执行融合乘法加法,其中两个4*4 FP16矩阵相乘,然后将结果添加到4*4
FP16或FP32矩阵中,最终输出新的4*4 FP16或FP32矩阵。

澳门金沙4787.com 17

NVIDIA将Tensor
Core进行的这种运算称为混合精度数学,因为输入矩阵的精度为半精度,但乘积可以达到完全精度。碰巧的是,Tensor
Core所做的这种运算在深度学习训练和推理中很常见。

以DLSS抗锯齿技术为例,在RTX
2080显卡上,DLSS技术不仅能带来更精细的画质,基于Tensor
Core强大的AI加速能力,RTX 2080实现DLSS的速度比GTX
1080显卡可以高出一倍之多。

澳门金沙4787.com 18

AI加速在游戏显卡上的应用还是初级阶段,不过它已经显示出了极具竞争力的前景,后续还需要NVIDIA与游戏开发商合作推动更多游戏支持AI加速功能。

Tensor
Core虽然在GPU里是全新的运算单元,但其实它与标准的ALU(算术逻辑单元)流水线并没有太大差别,只不过Tensor
Core处理的是大型矩阵运算,而不是简单地单指令流多数据流标量运算。Tensor
Core是灵活性和吞吐量权衡的选择,它在执行标量运算时的表现很糟糕,但它可以将更多的操作打包到同一个芯片区域。

图灵架构的重点之二:新增RT Core,一切为了光线追踪

Tensor
Core虽然有一定的可编程性,但仍然停留在4*4矩阵乘法累加层面上,并且不清楚累积步骤是如何以及何时发生的。尽管被描述为进行4*4矩阵数学运算,但实际上Tensor
Core运算似乎总是使用16*16矩阵,并且操作一次跨两个Tensor
Core进行处理。这似乎与Volta架构中的其他变化有关,更具体地说,与这些Tensor
Core是如何集成进SM中有关。

如果说图灵架构增加Tensor
Core是把专业技术带到消费显卡上来,那么图灵架构真正给游戏市场带来变化的改进则是RT
Core,也就是专门的光线追踪渲染核心。在8月底的科隆游戏展发布会上,NVIDIA创始人、CEO黄仁勋提及最多的就是光线追踪了,他表示图灵显卡的RT性能是Pascal显卡的6倍多,是提升最明显的。

澳门金沙4787.com 19

澳门金沙4787.com 20

对于Volta架构,SM被划分为四个处理块或子核。对于每个子核,调度器每个时钟向本地分支单元(BRU)、Tensor
Core阵列、数学分派单元或共享MIO单元发出一个warp指令,这就首先阻止了Tensor运算和其他数学运算同时进行。在利用两个Tensor
Core时,warp调度器直接发出矩阵乘法运算,并且在从寄存器接收输入矩阵之后,执行4*4*4矩阵乘法。待完成矩阵乘法后,Tensor
Core再将得到的矩阵写回寄存器。

光线追踪也是游戏玩家常听到但又非常陌生的技术,在电影工业光线追踪技术已经应用很多年了,但在游戏卡一直是雷声大雨点小,在图灵GPU之前显卡跑RT运算的性能非常弱,并不足以支撑良好的RT光线追踪体验。

澳门金沙4787.com 21

澳门金沙4787.com 22

在Tensor
Core执行实际指令时,即使在使用NVVM
IR(LLVM)的编译器级别上,也仅存在用于warp级矩阵操作的本征,对于CUDA++和PTX
ISA,warp级别仍然是唯一级别。加载输入矩阵的形式是每个扭曲线程持有一个片段,其分布和身份均未指定。从广义上讲,它遵循标准CUDA核心的基于线程级别拼接的GEMM计算的相同模式。

为此NVIDAI在图灵显卡中改变了RT渲染的工作流程,将其从Shader渲染器中独立出来,变成了单独的RT
Core,专门用于RT运算,每个SM单元有一个专用的RT Core,RTX 2080
Ti显卡上总计68组RT Core,带来了10+ Giga
Rays/s的光线追踪渲染能力,而现在的Pacal显卡的渲染能力只有1.2 Giga
Rays/s,性能提升了10倍,而老黄现场宣布的6倍光线追踪渲染性能还是很谦虚的了。

澳门金沙4787.com 23

澳门金沙4787.com 24

一般而言,给定A*B+C Tensor
Core操作,片段由A的8个FP16*2元素(即16个FP16元素)和B的另外8个FP16*2元素,以及FP16累加器的4个FP16*2元素或
FP32累加器的8个FP32元素组成。

从后续公布的RT渲染测试来看,图灵显卡的光线追踪性能确实很强大,GTX 1080
Ti显卡渲染单光源的延迟可以做到11毫秒,但2-16光源的情况下延迟大幅提升,不具备可行性了,图灵显卡在单光源、双光源乃至8光源下都能将延迟控制在10毫秒内,性能提升了四五倍,这是有史以来首次有游戏卡能够达到这样的光线追踪渲染性能。

在矩阵乘法累加运算之后,计算结果会分散在每个线程的目标寄存器片段中,需要在整个范围内统一,如果其中一个warp线程退出,这些低级操作基本上就会失败。

澳门金沙4787.com 25

澳门金沙4787.com 26

对游戏玩家来说,RT光线追踪技术的进入使得游戏画质更上一层楼,这个技术多年来一直被视为3D图形技术的一次革命,将极大地改变游戏以及电影工业的渲染方式,通过追踪光线的轨迹来计算物品对光线的反射和折射,更真实地还原物品在现实中的颜色,带来了更真实的光影效果,从而达到梦寐以求的“以假乱真”效果,让玩家真正融入到游戏中。

Citadel
LLC团队的低级微基准测试揭示了许多Volta微体系结构细节,包括Tensor
Core操作和相关的片段,与输入矩阵相比,它们都位于寄存器和标识中。他们观察到,子核核心以特定的拼接模式计算矩阵乘法,其中所有32个warp线程都在运行。

澳门金沙4787.com 27

澳门金沙4787.com 28

在图灵显卡发布之后,RT光线追踪技术也成为新一代3A游戏大作的选择,包括战地5、古墓丽影以及国内的逆水寒、剑侠3等11款游戏都宣布支持光线追踪技术,这个名单目前来说还不多,但是等到RTX
2080显卡上市、普及之后,支持RT渲染的游戏会越来越多。

从概念上讲,Tensor
Core在4*4子矩阵上运行,以计算更大的16*16矩阵。warp线程被分成8组,每组4个线程,每个线程组连续计算一个8*4块,总共要经过4组的过程,每一个线程组都处理了目标矩阵的1/8。

图灵显卡显存:不只首发GDDR6,还有高效压缩

澳门金沙4787.com 29

随着GPU计算性能的增加,对带宽的要求也越来越高,在图灵架构上NVIDIA也升级了显存子系统,首发支持了GDDR6显存,这是7年来GPU架构首次从GDDR5升级到GDDR6,不过图灵GPU在显存改进上做的不只是带宽大幅增加,还改进了内存压缩技术。

在一个集合中,可以并行完成四个HMMA步骤,每个步骤适用于4*2子块。这四个线程直接链接到寄存器中的那些矩阵值,因此线程组可以处理单个Step
0 HMMA指令,从而一次性计算子块。

澳门金沙4787.com 30

澳门金沙4787.com 31

在显存选择上,现在的显卡大部分选择了GDDR5,这是成熟标准,不过速率很难超过8Gbps,搭配256bit位宽的话,带宽可达256GB/s,如果最求性能会上HBM
2显存,4096bit位宽下带宽可达1024GB/s,但是HBM
2的成本比GDDR5显存贵太多了,一颗4GB HBM2显存成本就要80美元,8GB
HBM2显存成本就要160美元了,光这一项就占了高端显卡的1/3到1/2价格,实在是用不起。

由于矩阵乘法在数学上需要对某些行列进行复用,以允许跨所有8*4块并行执行,每个4*4矩阵被映射到两个线程的寄存器。在计算16*16父矩阵的4*4次子矩阵运算中,这将包括将连续计算的集合相加,形成16*16矩阵中4*8个元素的相应块。尽管Citadel没有对FP16进行测试,但它们发现FP16
HMMA指令只产生2个步骤,而不是4个步骤,这或许与FP16只占用的较小的寄存器空间有关。

NVIDIA在去年的Volta架构上就首发了HBM 2显存,所以技术上使用HBM
2不存在问题,NVIDIA没用HBM
2显然还是出于成本控制原因,再加上今年GDDR6显存也开始商业化了,这次的图灵GPU就首发了GDDR6显存。

澳门金沙4787.com 32

澳门金沙4787.com 33

通过独立的线程调度和执行,以及warp同步和warp-wide结果分配,基本的4*4*4
Tensor Core操作转换为半可编程16*16*16混合精度矩阵乘法累加。虽然CUDA
9.1支持32*8*16 and
8*32*16矩阵,但相乘的矩阵都需要相应的列和行为16,最终矩阵为32*8或8*32。

GDDR6是现有GDDR5内存的继任者,在保持工艺、规格大部分兼容的情况下进一步提高了显存速率,通过16bit数据预取、单通道升级双通道等方式将数据频率从GDDR5时代的不超过8Gbps提升到了JEDEC标准的12-16Gbps,而三星、美光还在研发速度高达18Gbps及20Gbps的GDDR6显存。

Tensor Core的运行方式似乎是NVIDIA
GEMM计算层次结构的一个硬件实现的步骤,如CUTLASS(用于GEMM操作的CUDA C
++模板库)中所示。对于传统的CUDA核心,最后一步需要将warp
tile结构分解为由各个线程拥有的标量和向量元素。使用WMMA
API(现在表示张量核),所有这些都被抽象掉了,只剩下了需要处理的合作矩阵片段加载/存储和多重积累。积累发生在一个FMA类型的操作中。

图灵显卡首发的GDDR6显存频率为14Gbps,考虑到GDDR6显存还是首发,这个频率还是可以的,相比目前8Gbps的GDDR5显存速率已经提升了75%,同样在256bit或者384bit位宽下能带来448GB/s、672GB/s的带宽,性能非常接近HBM
2显存了,要知道AMD的RX Vega64显卡使用的HBM 2带宽也不过484GB/s,Vega
56甚至只有404GB/s。

澳门金沙4787.com 34

澳门金沙4787.com 35

在寄存器级别上,NVIDIA在他们的Hot Chips
2017论文中提到“使用三个相对较小的乘法和累加器数据的4*4矩阵,可以执行64次乘加运算。”而增强的Volta
SIMT模型的每线程程序计数器(能够支持张量核)通常需要每个线程2个寄存器槽。HMMA指令本身会尽可能多复用寄存器,所以我无法想象寄存器在大多数情况下不会出现瓶颈。

全新的内存压缩算法

对于独立的4*4矩阵乘法累加,Tensor
Core阵列在寄存器、数据路径和调度方面很有核能并没有物理设计,它只能用于特定的子矩阵乘法。

GDDR6内存带来内存带宽大幅提升,不过NVIDIA还从源头进一步降低了对带宽的消耗,图灵显卡支持更先进的内存压缩算法,全新的GPU压缩引擎可以自动匹配最合适的算法以便在不同的材质上寻找最有效的压缩方法,与GP102核心的GTX
1080 Ti显卡相比,RTX 2080
Ti的内存压缩能够提升50%的效率,与带宽更高的GDDR6一起为图灵架构的SM单元性能提升50%保驾护航。

澳门金沙4787.com 36

图灵显卡的SLI进化:迎接NVLink时代的到来吧

无论如何,从NVIDIA的角度来看,Volta不是一颗深度学习的专用ASIC,它仍然覆盖GPGPU的领域,因此保持CUDA可编程Tensor
Core适用于GEMM / cuBLAS和HPC是合乎逻辑的。对于CUDA
c++的CUTLASS来说,情况更是如此,因为它的WMMA
API支持旨在为广泛的应用程序启用Tensor
CoreGEMM操作。从根本上说,NVIDIA深度学习硬件加速的发展与cuDNN(以及cuBLAS)的发展有很大关系。

如果说NVIDIA的图灵显卡中最让人意外的技术升级,那肯定非NVLink莫属了,因为NVLink原本是NVIDIA联合IBM开发的高性能总线技术,主要用于服务器市场上,目前已经发展了两代标准。

让FP16适用于深度学习

相比现在的PCIe 3.0总线,NVLink的优势就是延迟更低、带宽更高,NVLink
1.0的带宽就可达160GB/s,NVLink
2.0的带宽更是高达300GB/s以上,远远超过现在的PCIe 3.0
x16总线的16-32GB/s带宽。

Volta的深度学习能力是建立在利用半精度浮点(IEEE-754
FP16)而非单精度浮点(FP32)进行深度学习训练的基础之上。

澳门金沙4787.com 37

该能力首先由cuDNN 3支持并在Tegra
X1的Maxwell架构中实现,随后原生半精度计算被引入Pascal架构并被称为“伪FP16”,即使用FP32
ALU处理成对的FP16指令,理论上可以使每个时钟的FP16吞吐量增加一倍。这一特性实际上已经在Tensor
Core处理寄存器中矩阵片段的过程中得到体现,其两个FP16输入矩阵被收集在8个FP16*2或16个FP16元素中。

正是因为NVLink技术的超高性能,所以原本没期待消费级的RTX
2080系列显卡能用上NVLink,不过NVIDIA竟然真的在图灵显卡上开放了NVLink技术,不过消费级的NVLink技术带宽也没有那么夸张,TU102核心的RTX
2080 Ti以及专业级的Quadro RTX 8000/6000显卡的NVLink带宽100GB/s,RTX
2080显卡NVLink带宽50GB/s,RTX 2070显卡遗憾不能支持NVlink。

就FP32与FP16而言,由于单精度浮点所包含的数据多于半精度浮点,因此计算量更大,需要更多的内存容量和带宽来容纳和传输数据,并带来更大的功耗。因此,在计算中成功使用低精度数据一直是穷人的圣杯,而目标则是那些不需要高精度数据的应用程序。

澳门金沙4787.com 38

澳门金沙4787.com 39

由于NVLink的超高带宽,图灵显卡SLI之后可以玩出更多花样,比如支持5K
75Hzueu,支持4K 144Hz环绕屏模式,还可以支持8K视频,RTX 2080
Ti更可以做到8K环绕屏模式。

除了API/编译器/框架的支持之外,深度学习一直都有在使用FP16数据类型时损失精度的问题,这会让训练过程不够准确,模型无法收敛。

澳门金沙4787.com 40

据雷锋网了解,NVIDIA以前也曾在类似的情况下推出过“混合精度”这一概念,在Pascal的快速FP16(针对GP100)和DP4A/DP2A的整数点积操作(针对GP102、GP104和GP106
GPU)中,就曾提出过类似的说法。

不过NVLink还需要搭配额外的NVLink桥,这个东西也是单独出售的,有3插槽及4插槽两种版本,售价79美元,折合人民币也要500多块。

澳门金沙4787.com 41

图灵显卡视频及接口改进:支持双8K,VittualLink对VR更友好

当时人们关注的是推理能力,就像Titan
V的“深度学习TFLOPS”一样,Titan X(Pascal)推出了“44
TOPS(新型深度学习推断指令)”。新的指令对4元8位向量或2元8位/16位向量执行整数点积,从而得到一个32位整数积,可以与其他32位整数一起累积。

澳门金沙4787.com 42

澳门金沙4787.com 43

在I/O接口上,图灵显卡也带来了全面的升级,最大的变化就是首发支持了VitualLink接口,它的物理接口为USB
Type-C,也就是现在电脑及手机上开始普及的USBC接口,而VitualLink则是NVIDIA、AMD以及微软、Oculus、Valve等公司联合制定的VR设备专用接口,有望能简化这些线缆的需求,提供更简单、统一的体验,而不仅仅是性能,据说新的接口还能为更低的延迟时间作出优化。

对于Volta的混合精度而言,重要的精度敏感数据(如主权重)仍然会存储为FP32;而Tensor
Core的混合精度训练则会将两个半精度输入矩阵相乘得到一个精度乘积,然后累积成一个精度和。NVIDIA表示,在将结果写入内存之前,Tensor
Core会将结果转换回半精度,这样当使用半精度格式时,寄存器和存储器中需要的数据更少,这有助于处理超大矩阵中的数据。

澳门金沙4787.com 44

澳门金沙4787.com 45

VitualLink接口将是未来VR设备的统一接口,因此图灵显卡对VR设备更加友好,以后用它来玩VR设备更合适,而USBC物理接口还能提供15-27W的供电能力,支持DP视频及USB
3.1 Gen 2数据传输,是个万能接口。

FP16与FP32所包含的数据空间并不相同,归一化方法可以解决FP32格式数据超出FP16可表示范围的问题。举个例子,许多激活梯度的值都落在FP16的范围之外,但由于这些值聚集在一起,因此将损耗乘以缩放因子便可以移动FP16范围内的大部分值。在完成最终的权重更新之前,将梯度重新缩放到原始范围,便可以维持其原始的精度。

澳门金沙4787.com 46

澳门金沙4787.com 47

在视频接口方面,图灵显卡除了支持HDMI 2.0之外,还支持了DP
1.4a标准,支持双8K
60Hz输出能力,虽然目前的8K显示器还是凤毛麟角,不过图灵显卡在技术上已经做好了准备。

不过,并非所有的算数、神经网络和层都适用于FP16,通常FP16和Tensor
Core的混合精度最适合卷积和RNN重图像处理等,而对于不适合的神经网络框架或类型,FP16将默认禁用或不推荐使用。

澳门金沙4787.com 48

内存改进,SM变化

最后,图灵显卡在还升级了用于视频编码解码的NVENC单元,新增支持H.265 8K
30fps编码,同时提供H.265格式25%的码率节省,H.264格式也能节省15%码率,而解码性能也更快,支持的格式更多。

使用Tensor
Core处理混合精度数据似乎可以减轻内存带宽问题,但事实证明,尽管Volta在几乎所有方面都得到了内存子系统的增强,但幅度并不明显。

总结:

首先,Volta有一个12
KB的L0指令缓存,虽然Pascal及其他之前的GPU核心也有指令缓存,但Volta更高效的L0是子核心SM分区私有的,因此它对warp调度器来说也是私有的,这对Volta架构更大的指令大小是一种补偿,并有可能为支持Tensor
Core通道的框架做出贡献。同时Volta指令延迟也要低于Pascal,特别是核心FMAs从6个周期减少到了4个周期。

澳门金沙4787.com 49

澳门金沙4787.com 50

NVIDIA宣称他们的Turing图灵架构是一次技术飞跃,尽管其中不乏宣传的味道,但是从图灵架构的改变来看,这代显卡的技术亮点还真不少,等待了两年多的N饭并没有白等,CUDA核心性能大增50%、新增RT
Core及Tensor
Core将原来行业级的技术带入到了消费级显卡中,同时首发了GDDR6显存,增加了USB-C输出接口,升级幅度要比之前的历代NVIDIA
GPU更为明显。返回搜狐,查看更多

随着每个SM中调度器比例的增加,砍掉第二个调度端口似乎是对具有独立数据路径和数学调度单元的子核心的权衡。而具备FP32/INT32执行能力,也为其他低精度/混合精度模型打开了大门。这些子核方面的增强,都是为了优化Tensor
Core阵列。

责任编辑:

另一个重大变化是合并L1缓存和共享内存。在同一个块中,共享内存可配置为每SM
最高96 KB。HBM2控制器也进行了更新,其效率提高了10~15%。

澳门金沙4787.com 51

深度学习基准测试

俗话说“光说不练假把式”,实践永远是检验真理的唯一标准。对计算机来说,介绍的再详细也不如真刀真枪跑一下测试,没有什么比benchmark更能提现硬件的实际表现了。

很多时候,深度学习这样的新领域会让人难以理解。从框架到模型,再到API和库,AI硬件的许多部分都是高度定制化的,因而被行业接受的公开基准测试工具很少也就不足为奇。随着ImageNet和一些衍生模型(AlexNet、VGGNet、Inception、Resnet等)的影响,ILSVRC2012(ImageNet大规模视觉识别挑战)中的图像数据集训练逐渐被行业所认可。

澳门金沙4787.com 52

在常见的第三方深度学习基准套件中,Fathom和TBD是更传统的基准测试套件,其测试针对特定框架和模型进行了配置,涵盖了许多不同的机器学习应用程序。
同时,最近的深度学习框架侧重于比较给定模型和跨框架的数据集的性能。

而DeepBench本身并不使用框架,而是使用低级库来评估不同设备的机器学习性能。就其本身而言,虽然它并不直接将框架/模型/应用程序性能与其他测试联系在一起,但它提供了代表供应商优化的数学操作和硬件性能的指标,每个产品的二进制文件都使用硬件供应商提供的库进行编译。

澳门金沙4787.com 53

DAWNBench则更加与众不同,与其说它是一个基准测试套件,不如说是对三个数据集(ImageNet、CIFAR10和SQuAD)的训练和推断结果进行类似于竞赛的报告,重点考量端对端的计算精确度和成本。

至于HPE
DLBS,作为HPE深度学习指南的一部分,它主要以GPU为中心,坚持使用TensorFlow、MXNet、PyTorch和Caffe类型框架,还包括TensorRT测试。虽然其具有良好的多测试批处理、日志记录、监控和报告功能,但它只输出纯粹的性能和时间指标,不涉及端对端的时间精度或成本。

从这些基准测试软件中可以看出,深度学习框架之间的差异很容易使测试结果变得毫无意义,从而影响我们对这些框架的研究。convnet-benchmark和PyTorch的创始人Soumith
Chintala指出,如果没有机器学习的背景,很难独立地验证深度学习基准测试的准确性和范围,不过MLPerf测试项目似乎试图解决这个问题。

澳门金沙4787.com 54

MLPerf是由DAWNBench等测试软件的设计者和工程师联合打造的全新高端基准测试套件,希望囊括Fathom的跨域测试方法以及DAWNBench对超过阈值精度模型的端对端计算时间考察。不过它目前正在处于alpha阶段,开发团队表示其尚不适合进行精确的硬件对比。

综合考虑之下,本次测试将不包含MLPerf项目,而是使用DeepBench、Caffe2
Docke、Stanford DAWN和HPE DLBS来进行。

DeepBench训练测试之GEMM和RNN

发表评论

电子邮件地址不会被公开。 必填项已用*标注