快捷搜索:

使用TensorRT集成加速TensorFlow推理,Core全面解析

日期:2019-12-17编辑作者:澳门新葡8455最新网站

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

澳门新葡8455最新网站 1

摘要: 本文讲述了TensorRT集成如何加速TensorFlow推理,以及实例演示帮助入门

本文转载自超能网,其他媒体转载需经超能网同意

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

近日,金山云基于Tesla T4的GPU云服务器正式对外商用,这也是继去年国内首家商用Tesla V100之后,金山云在GPU云服务器领域再一次拔得头筹,代表金山云在新技术应用上始终处于行业领先水平。作为全面升级的新一代GPU云服务器,T4采用了最新的Turing架构,单卡提供8.1 TFLOPS的单精浮点计算能力和65 TFLOPS的混合精度(FP16/FP32)矩阵计算能力。Tesla T4相比于上一代产品Tesla P4,其整体性能有了较大的提升,在给定场景下,T4的推理性能提升超过350%。

NVIDIA宣布完成了推理优化工具TensorRT与TensorFlow将集成在一起工作。TensorRT集成将可用于TensorFlow1.7版本。TensorFlow仍然是当今最受欢迎的深度学习框架,而NVIDIA TensorRT通过对GPU平台的优化和提高性能,加速了深度学习推理。我们希望使用TensorRT能为TensorFlow用户提供尽可能高的推理性能以及接近透明的工作流。新的集成提供了一个简单的API,它能够使用TensorFlow中的TensorRT实现FP16和INT8的优化。对于ResNet-50基准测试的低延迟运行,TensorRT将TensorFlow推理速度提高了8倍。

GPU发展史上,2006年是一个不能错过的节点——这一年AMD以54亿美元的代价收购了ATI公司,从此手握CPU及GPU两张好牌,AMD此后一直以此为荣,强调他们是业界唯一能够同时提供高性能CPU及高性能GPU的公司,CPU拳打NVIDIA,GPU脚踢英特尔。当年另外一件事就是微软在DX10 API上推出了统一渲染架构,NVIDIA 2006年发布的G80架构GeForce 8800 GTX显卡率先支持统一渲染,从此NVIDIA的CUDA也闪亮登场了。

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

震撼的多精度推理性能为AI全面加速Tesla T4基于Turing架构,提供了更加强大的训练和推理能力,在原有对FP32和FP16支持的基础上,Turing架构中的Tensor Core新增了对INT8和INT4的支持,并探索性地推出了INT1精度模式。通过对多种精度模式的支持,T4能够有效缩短在线预测和离线训练时长。根据Nvidia公布的测试数据,在语言推理的场景中(NLP: GNMT Model),T4相对于P4,其性能提升超过350%。

下面让我们看一下工作流的概述,以及一些例子以便帮助入门。

2006年发生的这两件事本质上没什么关联,但是回想起当年及之后的GPU发展情况,总忍不住遐想一下如果当年ATI没被AMD收购,ATI、NVIDIA两家GPU公司今天的发展会如何?因为在2006年前后,ATI在独显GPU市场上的份额与NVIDIA并没有多大差距,05年之前市场份额甚至还领先一些,但2006年被收购之后由于两家公司需要整合,AMD/ATI两边的CPU、GPU产品路线图都不免受到影响,也是从那个时候AMD显卡的份额不断下滑,与NVIDIA的差距不断拉大,从曾经的55开变成了46开、37开,直到今年初双方的差距已经是28开了。

澳门新葡8455最新网站 2

Tesla T4使用TU104核心,搭载136亿个晶体管,共40个SM(stream multiprocessor),每个SM单元中有64个CUDA Core和8个混合精度的矩阵运算单元Tensor Core,共2560个CUDA core和320个Tensor core,提供8.1 TFLOPS的单精度性能和65 TFLOPS的混合精度(FP16/FP32)性能。此外,T4中还集成了Turing架构首次引入的RT Core,可实现高效的光线追踪(Ray Tracing)功能,在图形图像渲染方面有着广泛的应用。目前,金山云基于T4的GPU加速计算服务已全面商用,为诸多客户提供着高性能的计算支撑。

使用与TensorRT集成的TensorFlow优化并执行兼容的子图,让TensorFlow执行剩余的图。你仍然可以使用TensorFlow广泛且灵活的功能集,但是TensorRT能尽可能的解析模型,并对图的部分应用进行优化。而且TensorFlow程序只需要几行新代码就可以促进集成。将TensorRT优化应用于TensorFlow模型时需要导出图表,在某些情况下还需要手动导入某些不受支持的TensorFlow层,这可能会非常耗时。

澳门新葡8455最新网站 3

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

优异的机器学习能力让技术更智能

现在让我们逐步了解工作流。在冻结TensorFlow图进行推理后,使用TensorRT对TensorFlow子图进行优化。然后TensorRT用TensorRT优化节点替换每个支持的子图,生成一个在TensorFlow中运行的冻结图来进行推断。图1说明了工作流。

Reddit上有帖子讨论了2002年到2017年GPU市场的份额变化

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

T4针对深度学习应用场景,进行了全方位的优化。首先,T4卡配备了320个Tensor Core。Tensor Core作为专门用于执行张量/矩阵运算的计算单元,能够为训练和推理场景中的矩阵运算提供极大的加速,被广泛用于各种深度学习的场景中。Turing Tensor Core相对于先前的Volta版,强化了推理的功能,支持了INT8和INT4两种精度模式,算力分别高达130TOPS和260TOPS。其次,T4继承了Volta架构中首次引入的Multi-Process Service(MPS)功能,优化了对batch较小时推理的性能,减少启动延迟,从而能够支持更多的并发请求。

澳门新葡8455最新网站 4图一所示:在推理过程中使用TensorRT时的工作流图

NVIDIA做大靠的是AMD收购ATI的机遇吗?也许有天时地利的因素,但从根本上来说双方差距的拉大还是源于产品/技术的差异,NVIDIA在G80架构之后就开始占上风了,期间虽然也有GTX 480这样的翻车事故,但总体上还是一路上扬的,40nm Fermi费米架构之后Kepler、Maxwell、Pascal、Volta(这代只有Titan V这一个桌面版显卡),再到去年的Turing图灵显卡,NVIDAI在GPU市场上的地位已经稳如狗了,AMD近几代显卡掀不起大风大浪了。

澳门新葡8455最新网站 5

及时响应是提升用户参与度的关键,随着模型准确性和复杂性的提高,快速交付正确答案所需的计算能力也在呈指数级提升。T4拥有先进的实时推理性能,在会话式人工智能、推荐系统和可视化搜索等场景的处理上,可提供低延时、高吞吐量的计算能力,进而实时满足更多的处理请求。T4通过优异的机器学习推理能力让技术应用更为智能。除了深度学习外,T4在视频转码和虚拟桌面等诸多场景中都能够发挥重要的作用。

TensorFlow在所有可支持领域内执行图形,并调用TensorRT执行TensorRT优化节点。例如,假设图形有三个段,A、B和C,片段B经过了TensorRT优化并被一个节点替换。那么在推理过程中,TensorFlow执行A,然后调用TensorRT执行B,之后继续TensorFlow执行C。从用户角度来看,该过程和之前使用TensorFlow执行图形一样。现在让我们看看应用这个工作流的一个示例。

澳门新葡8455最新网站 6

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

作为中国领先的云计算服务提供商,金山云始终致力于通过最前沿的技术、最高效的产品为客户提供更加安全、稳定、便捷的云服务。目前基于T4的 GPU云服务器已经开放商用,卓越的深度学习推理性能,让用户能够更加快速、高效地构建AI业务,运行大规模模型推理应用。同时,基于Tesla T4的实例具备易扩展和高性价比的特性,能够为用户节省大量计算成本,有效提升AI产品迭代的速度,提高企业AI竞争力。

澳门新葡8455最新网站,新的TensorFlow API

NVIDIA的GPU路线图已经四五年没更新了,最新的还是15年版

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

文章来源:DOIT

让我们看看如何使用新的TensorFlow api将TensorRT优化应用到TensorFlow图中。首先在现有的TensorFlow GPU代码中添加几行代码:

NVIDIA以往会在GTC大会上提前两三年公布GPU路线图,不过2015年之后更新过Pascal显卡之后就不再推新的GPU路线图了,Turing图灵显卡发布之前就没在路线图上出现过,图灵之后的GPU架构官方也是守口如瓶,目前的说法称之为Amper安培,但最终是否如此还是未知数。

强化算力,重造Titan

1ã��在GPU内存中指定TensorFlow可用的部分,TensorRT可以使用剩余的内存。

今天的超能课堂里我们就来回顾下NVIDIA GPU的发展过程,回头来看下这10年中NVIDIA GPU都经历了怎样的变化。同样地,后续还有AMD的GPU发展路程姊妹篇,敬请期待。

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

2ã��让TensorRT分析TensorFlow图,应用优化,并用TensorRT节点替换子图。

NVIDIA G80到GF100架构:40nm费米GPU的教训

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

使用GPUOptions函数中的新参数per_process_gpu_memory_fraction指定TensorRT可以使用的GPU部分。该参数需要在第一次启动TensorFlow-TensorRT时进行设置。例如,0.67意味着将为TensorFlow分配67%的GPU内存,而剩下的33%用于TensorRT引擎。

NVIDIA的GPU发展史少说也要从G80时代CUDA架构开始讲起,不过限于篇幅原因,这里不打算再挖坟这么深了,G80及衍生版的G92核心在NVIDIA GPU中非常经典,马甲卡当初就是形容这一时期变化的,可以说花样频出,比现在的刀法精湛多了。

澳门新葡8455最新网站 7

澳门新葡8455最新网站 8

澳门新葡8455最新网站 9

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

使用新函数create_inference_graph将TensorRT优化应用于冻结图。然后,TensorRT将一个冻结的TensorFlow图作为输入,并返回一个带有TensorRT节点的优化图。参见下面的示例代码片段:

microway之前总结过GF100架构及之前的NVIDIA GPU架构情况

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

澳门新葡8455最新网站 10

曾经有段时间业界形容AMD、NVIDA在GPU策略上的不同是“AMD擅长小核心,性能适中,但是低功耗、NVIDIA偏重大核心,性能强,但功耗高、成本更贵”,NVIDIA在GT200核心上确实是大核心策略,在GF100核心上达到了巅峰,从SP单精度、DP双精度配比上大家应该可以看出来,这时候NVIDIA已经在大幅提升GPU的计算性能了。

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

让我们看一下函数的参数:

在40nm Fermi费米架构中,NVIDIA一下子将CUDA核心数提升到了512个,是GT200核心的两倍,而且单双精度达到了1:2,大量核心用于双精度计算。但是第一代费米核心的GTX 480显卡也因此翻车了,还记得那个著名的显卡红外温度100°C+的图片吗?说的就是GTX 480时代的事。

GPU与深度学习

frozen_graph_def:冻结的TensorFlow图表

澳门新葡8455最新网站 11

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

put_node_name:带有输出节点名称的字符串列表,例如

当年的GTX 480显卡与GTX 580显卡

澳门新葡8455最新网站 12

max_batch_size:整数,输入批次的大小,如16。

GTX 480在功耗、发热上的翻车教训导致NVIDIA一度很难堪,直到后来推出了GTX 580显卡才有所缓解,详细情况大家可以翻看我们之前的评测:Fermi威力完美呈现,GeForce GTX 580全球同步评测

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

max_workspace_size_bytes:整数,可用于TensorRT的最大GPU内存。

总的来说,40nm费米架构这一代,NVIDIA在GPU设计上有了一次飞跃,规格大幅提升,不仅注重游戏性能,也重视计算性能,为此塞入了更多的双精度计算单元,但也因此带来了诸多问题,GTX 480翻车事故带给NVIDIA很多教训,多多少少都影响了后来的GPU架构设计。

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

precision_mode:字符串,允许的值为“FP32”,“FP16”或“INT8”。

2012年NVIDIA Kepler架构:游戏、计算GPU分离,NVIDIA后发制人

澳门新葡8455最新网站 13

可以通过设置per_process_gpu_memory_fraction和max_workspace_size_bytes参数来获得最佳性能。例如,将per_process_gpu_memory_fraction参数设置为/ 12 = 0.67,将max_workspace_size_bytes参数设置为4000000000,用于12GB的GPU,以便为TensorRT引擎分配4GB。

距离GTX 580显卡发布一年半时间后,2012年3月22日NVIDIA推出了GTX 680显卡,由此28nm工艺的Kepler架构闪亮登场。这时候AMD基于全新GCN架构的HD 7970显卡已经发布将近3个月了(海外市场2011年12月底发布,国内是次年1月初),后者当时光芒万丈,GCN架构同时融合了计算及游戏的优点,性能比之前的VLIW架构显卡有了明显进步,而且还首发了台积电28nm工艺、PCIe 3.0等等。

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

在TensorBoard中将优化后的图形可视化

澳门新葡8455最新网站 14

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

首先在TensorBoard中应用TensorRT优化,然后将对ResNet-50节点图的更改进行可视化。如图2所示,TensorRT几乎优化了整个图形,并用“my_trt_po0”节点进行替换。根据模型中的图层和操作,TensorRT节点会因优化而替换部分模型。

GTX 680发布于2012年3月底

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

澳门新葡8455最新网站 15图2.左:TensorBoard中的ResNet-50图。右:经过TensorRT优化并且子图被TensorRT节点替换之后。

GTX 680显卡使用的是Kepler家族中的GK104核心,但GK104反应的架构设计思路早在GF100到GF104、GF114架构中就有所体现了,那就是减少SM单元数(NVIDA这代的正式称呼是SMX单元),提升每组SM单元中的CUDA核心数,GF100时代每组SM单元还是32个CUDA核心,GF104/GF114则是每组SM单元48个CUDA核心,而到了Kepler时代,每组SM单元的CUDA核心数一下子提升到了192个,纹理单元也增加到16组,前端渲染单元也增加到四组,同时SFU以及LD/ST单元也是水涨船高,增加到32组,纹理单元再次翻倍,8组SMX单元总计有1536个流处理器、128个纹理单元以及32个ROP单元。

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

要注意TensorRT节点下的名为“conv1”的节点。它实际上不是一个卷积层,而是一种显示为conv1的从NHWC到NCHW的转置操作。这是因为TensorBoard仅显示层次结构中顶部节点的名称,而不是默认情况下的单个操作。

澳门新葡8455最新网站 16

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

自动使用TensorBoard Cores

GF110 SM单元、GF114 SM单元以及GK104 SMX单元对比

NVIDIA GPU的优势

与FP32和FP64相比,使用半精度算法能够减少神经网络的内存使用,而且还能够花费更少的时间部署更大的网络。每个Tensor Core包含一个4x4x4的矩阵处理阵列来完成D=AxB+C的运算,其中A、B、C、D是4x4的矩阵,如图3所示。矩阵相乘的输入A和B是FP16矩阵,相加矩阵C和D可能是FP16矩阵或FP32矩阵。

除了SM单元大变之外,NVIDIA在Kepler架构中还做了一项重要改变——从Kepler开始,NVIDIA以往坚持的Core:Shader=1:2的分频模式已经没有了,以前采用这种方式是因为核心频率不能大幅提高,为了提高性能就必须让CUDA的核心频率增加一倍,但是这也意味着更高的能耗。

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

澳门新葡8455最新网站 17图3.Tensor Cores上的矩阵处理运算

澳门新葡8455最新网站 18

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

在使用半精度算法时,TensorRT会自动在Volta GPU中使用Tensor Cores进行推理。NVIDIA Tesla V100上的Tensor Cores峰值性能比双精度快大约10倍,比单精度快4倍。只需使用“FP16”作为create_inference_graph函数中的precision_mode参数的值即可启用半精度,如下所示。

GK104架构的一大特点就是CUDA规模大幅增长

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

澳门新葡8455最新网站 19

GTX 680中NVIDIA将SMX单元中的CUDA核心数提高至原来的3倍,而且核心频率也达到1GHz以上,不再需要Shader异步了,二者将同频运行,有助于降低显卡功耗,因此GTX 680在CUDA数量暴增的同时功耗更低,而每瓦性能比更是提高了一倍。

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

图4显示了使用NVIDIA Volta Tensor Cores与仅运行TensorFlow的TensorFlow-TensorRT集成的差距,ResNet-50在7 ms延迟下执行速度提高了8倍。

澳门新葡8455最新网站 20

剖析Tensor Core

澳门新葡8455最新网站 21图4.ResNet-50推理吞吐量性能

GTX 680显卡的规格

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

优化INT8推理性能

在Kepler时代,NVIDIA还改变了一个潜规则——以往GPU发布是首发大核心,比如费米时代的GF100到GF104/GF106,而Kepler时代是首发GK104,更大的核心GK110是后面才发布的。不过这次改变也只是Kepler时代出现的,在后面的Pascal、Volta及现在的Turing中多是大核心先发(GTC大会上首发,Tesla计算卡先用),GX104/106核心后续才会跟进。

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

使用INT8精度进行推理能够进一步提高计算速度并降低宽带要求。动态范围的减少使得神经网络的表示权重和激活变得更加有挑战性。表1说明了动态范围的影响。

GTX 680显卡的发布解决了NVIDIA的燃眉之急,游戏性能小幅领先AMD的HD 7970,扳回了一局,不过计算性能上不如后者,毕竟GK104并不是为计算而生的架构。对NVIDIA来说,Kepler是他们真正贯彻了游戏、计算卡彻底分离的产品,想要更好的计算性能?那就找大核心的GK110核心吧。

澳门新葡8455最新网站 22

澳门新葡8455最新网站 23表1:FP32 vs FP16 vs INT8动态范围

2012的GTC大会上NVIDIA就展示了GK110大核心的威力,年底的SC超算大会上正式发布了基于GK110的Tesla K20X及Tesla K20加速卡,完整版GK110核心拥有15组SMX单元,总计2880个CUDA核心,集成了71亿晶体管,核心面积也达到了551mm2。

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

TensorRT提供了在单精度和半精度中接受训练的模型,并将它们转换为用于INT8量化的部署,同时能够将精度损失降至最低。要想模型能够使用INT8进行部署,需要在应用TensorRT优化之前校准经过训练的FP32模型。剩下的工作流保持不变。图5显示了更新后的工作流。

澳门新葡8455最新网站 24

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

澳门新葡8455最新网站 25图5.更新后的TensorFlow工作流,包括TensorRT优化之前的INT8校准

GK110核心的SMX单元中依然有192个CUDA核心,但DP双精度单元数量从GK104的8个提升到了64组,这样一来但双精度的比例就变成了1:3,虽然还没有达到费米时代1:2那么夸张的地步,但远高于GK104的1:24了,再加上总性能的提升,GK110核心的计算性能总体来说还是进步的。

澳门新葡8455最新网站 26

首先使用create_inference_graph函数,并将precision_mode参数设置为“INT8”来校准模型。这个函数的输出是一个冻结的TensorFlow图,可以用来校准。

此外,GK110不仅仅是计算规模的增加,还增加了一些计算专用的新技术,比如NVIDIA开发的Grid Management Unit、GPUDirect、Hyper-Q以及Dynamic Parallelism动态并行技术。

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

澳门新葡8455最新网站 27

澳门新葡8455最新网站 28

澳门新葡8455最新网站 29

接下来用校准数据来执行校准图。TensorRT根据节点数据的分布来量化节点的权重。校准数据非常重要,因为它可以密切反应生产中问题数据集的分布。我们建议在首次使用INT8校准模板是检查推理期间的错误积累。

第一代Titan显卡

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

在校准数据上执行图形后,使用calib_graph_to_infer_graph函数对校准图形应用TensorRT优化。还可以用为INT8优化的TensorRT节点替换TensorFlow子图。函数的输出是一个冻结的TensorFlow图表,可以像往常一样用于推理。

在消费级显卡中,GK110首先用于2013年3月发布的GTX Titan显卡中,自此NVIDIA也开辟了一条新的产品线——Titan显卡,售价是999美元起步,比当时的高端显卡翻倍。

澳门新葡8455最新网站 30

澳门新葡8455最新网站 31

此外,Titan显卡的公版设计也与之前的显卡大为不同,并影响了后面的GTX XX80/80 Ti系列公版显卡的设计。

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

这两个命令可以启用TensorFlow模型的INT8精度推断。所有运行的这些示例代码请点击这里。

澳门新葡8455最新网站 32

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

TensorRT集成可用性

Titan显卡不是一般人买得起的,2013年11月份NVIDIA又推出了基于GK110核心的GTX 780系列显卡,其中GTX 780 Ti使用的是GK110-425-B1新核心,与此前的GK110还有所不同,核心面积更小一些,而且启用了完整版SMX单元,导致它的规格实际上比Titan显卡更好,性能更强,以致于后面NVIDIA又推出了完整版GK110核心的Titan Black显卡。

澳门新葡8455最新网站 33

我们将继续与TensorFlow团队紧密合作,以加强TensorRT集成的可用性。我们期望新的解决方案在能够保持TensorFlow易用性和灵活性的同时,可以确保NVIDIA GPU性能达到最高。而且由于TensorRT支持多种网络,所以开发人员不需要对现有代码进行任何更改,仅从自动更新中就能获益。

澳门新葡8455最新网站 34

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

使用标准的pip安装过程来获得新的集成解决方案,一旦TensorFlor1.7可用:

在Kpler架构的尾声阶段,NVIDIA还推出了GK210核心,它可以说是GK110核心的再改良版,也被称为Kepler 2.0,CUDA计算能力从GK104的3.0、GK110的3.5升级到了CUDA 3.7。

澳门新葡8455最新网站 35

澳门新葡8455最新网站 36

此外,NVIDIA并没有改变CUDA核心数或者CUDA的架构,他们改进的只是SMX单元之间的内存子系统,GK110的SMX单元拥有256KB寄存器文件,64KB共享缓存,GK210的规模翻倍,拥有512KB寄存器文件,128KB共享缓存,因此它改进了SMX单元的数据吞吐量,提高了效率,确保CUDA核心的更容易频繁使用。

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

本文北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

不过GK210架构主要是用在计算卡上, 消费级显卡中没有,所以DIY玩家的影响力非常少,倒是有同样Kpler 2.0的GK208等核心用于低端的GT 740/730/720及移动版产品中。

澳门新葡8455最新网站 37

文章原标题《TensorRT Integration Speeds Up TensorFlow Inference | NVIDIA Developer Blog》

2014年NVIDIA Maxwell架构:SMM单元又重组,更注重能效

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

译者:奥特曼,审校:袁虎。

在Kpler时代,NVIDIA显卡从AMDHD 7970显卡的阴影中走出来了,GK104核心的GTX 680追上了HD 7970,但没有全面优势,GK110大核心的GTX 780系列性能上有绝对优势了,只是功耗要高,但此时的NVIDIA已经掌握主动权了,毕竟AMD后来推出HD 7970继任者的R9 290X同样存在功耗、发热的问题。

澳门新葡8455最新网站 38

详细内容请阅读原文

根据NVIDIA的路线图,Kepler之后就是Maxwell架构了,这时候制程工艺还是28nm,Maxwell架构的重点则是改进能效。在这个阶段,NVIDIA又上演了一次出人意料的举动,Maxwell架构既不是GM200也不是GM204,而是GM107,用在了GTX 750 Ti及GTX 750显卡,从命名上也不是更新一代的,还是沿用了GTX 700系列的。

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

澳门新葡8455最新网站 39

澳门新葡8455最新网站 40

GM107核心使用的是Maxwel一代架构,其最大变化就是将SM单元(这一代称为SMM单元)再次重组,从Kpler时代的每组SM单元192个CUDA核心减少到了每组128个,但是每个SMM单元将将拥有更多的逻辑控制电路,便于精确控制,这使得GM107核心的每核心效能提升了35%,每瓦功耗比提升了一倍。

通过独立的线程调度和执行,以及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。

澳门新葡8455最新网站 41

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

这种全新的 SM 架构可大幅提升节能性,而且在着色器有限的工作场合中可令每个CUDA核心的性能提升 35%。实现这些进步需要对架构进行大量重大更改。 NVIDIA重新编写了SM调度器架构和算法,使其更加智能,避免了不必要的停顿,同时进一步降低了调度每条指令所需的能耗。

澳门新葡8455最新网站 42

当然,SMM单元也有很多改进的地方,比如L2缓存容量从之前的256KB大幅增加到2MB,H.264及NVENC编码/解码能力也提升了,指令周期性能也改善了。

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

澳门新葡8455最新网站 43

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

反映到显卡上,GTX 750 Ti及GTX 750显卡拥有极好的能效比,游戏功耗比同期的HD 7770、GTX 660甚至GTX 650Ti功耗要低很多,而且温度、噪音也非常低,这款显卡可以说是近年来的一代经典。

澳门新葡8455最新网站 44

澳门新葡8455最新网站 45

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

在GM107核心的Maxwell一代架构之后,NVIDIA又在2014年9月份推出了GTX 980/970显卡,它们使用的是GM204核心,也被称为Maxwell 2.0架构。整个GM204核心可分为4组GPC单元,每组GPC则包含4个SMM单元,每个SMM单元又包含128个CUDA核心,8个纹理单元以及一个多边形引擎单元(PolyMorph Engine 3.0),总计2048个CUDA核心,128个纹理单元。

让FP16适用于深度学习

澳门新葡8455最新网站 46

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

在桌面级显卡命名上,NVIDIA这次跳过了GTX 800系列(OEM及移动版GPU上有GTX 800系列),直接进入了GTX 900系列,GTX 980使用的是GM204-400核心,搭配4GB GDDR5显存,但它的性能已经超过了GK110大核心的GTX 780 Ti显卡,TDP则从250W直降到165W,整机功耗测试中也印证了功耗的大幅下降,可以说能效优势非常明显,不论是对AMD的显卡还是对自家上代显卡而言都是如此,能效简直是碾压般的存在。

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

澳门新葡8455最新网站 47

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

在GM107、GM204、GM206核心之后,NVIDIA在Titan X显卡上又使用了GM200核心,而且是完整版的GM200-400核心,该卡发布于2015年3月18日,它使用的GM200核心拥有6组GPC单元,24组SMM单元,每组SMM单元128个CUDA核心,总计3072个CUDA核心,而显存控制器也从之前4组64bit GDDR5变成了6组,位宽384bit。

澳门新葡8455最新网站 48

澳门新葡8455最新网站 49

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

不过6月1日NVIDIA又推出了GTX 980 Ti显卡,使用的也是GM200大核心,但是阉割版的GM200-310核心,CUDA核心数为2816个。GTX 980 Ti显卡的详细规格如下:

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

澳门新葡8455最新网站 50

澳门新葡8455最新网站 51

2016年NVIDIA Pascal架构:16nm制程红利,计算游戏核心再分离

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

时间很快到了2016年,4月初的GTC大会上NVIDIA发布了Tesla P100加速卡,使用的是GP100核心,这是pascal架构的大核心,制程工艺升级到了16nm,这种工艺则是高性能工艺,所以在Pascal显卡上其GPU频率大幅提升,起步就达到了1.6GHz,加速频率达到2GHz稀松平常。

澳门新葡8455最新网站 52

澳门新葡8455最新网站 53

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

在Pascal显卡上,最大的特色就是先进工艺带来的制程红利,不过这时候的GPU架构再次出现了游戏、计算的分离,出现了GP100、GP102两种大核心,而且使用的架构、显存都是不同的,其中GP100是纯粹的计算核心,不仅有3584个单精度CUDA核心,双精度核心也达到了1792个,重新回到了1:2的比例。

澳门新葡8455最新网站 54

澳门新葡8455最新网站 55

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

此外,计算用的GP100核心使用的是HBM 2显存,等效位宽4096bit,带宽达到了720GB/s,虽然没有实现HBM2显存1TB/s的满速带宽,但带宽已经比当时的GDDR5显存大幅提升了,只不过HBM2显存实在太贵了,别说2016年,直到2019年的今天都远未普及。

澳门新葡8455最新网站 56

2016年7月份NVIDIA推出了Titan X Pascal显卡,它使用的也是16nm Pascal架构,但核心是GP102,全规格的GP102核心确实可以称为目前最强大的微架构:120亿晶体管、3584个流处理器、12GB GDDR5X 显存、384-Bit位宽,相比Tesla P10的HBM 2显存和NVLink有所妥协,所以显存带宽为480GB/s,8+6Pin供电,显示接口提供Display Port 1.4、HDMI 2.0b以及双链DVI,最大支持7680*4320@60Hz输出,性能上达到11TFLOPS。

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

澳门新葡8455最新网站 57

内存改进,SM变化

在Titan X Pascal之外,桌面的GTX 1080 Ti显卡也是GP102核心,除了显存容量、位宽的变化之外,GP102核心的SM单元架构也跟GP100核心不同,后者为了追求更高的计算性能,每组SM单元的CUDA核心数减少到了64个,但集成了更多组SM单元,高达56组,而GP102核心虽然也是3584个CUDA核心总数,但只有28组,每组SM单元的数量回归到了Maxwell的128个,所以这一代游戏及计算再次分离,本质上来说GP100是真正的Pascal核心,而GP102核心是16nm加强版的Maxwell架构。

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

澳门新葡8455最新网站 58

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

Maxwell架构与GP104核心的SM单元架构

澳门新葡8455最新网站 59

从GTX 1080的GP104到GTX 1080 Ti的GP102核心,它们的SM单元架构倒是一致的,只是CUDA核心数量的区别。

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

澳门新葡8455最新网站 60

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

除此之外,GTX 1080系列显卡在在技术上也比GTX 980系列有所增强,使用了频率更高的GDDR5X显存及更先进的内存压缩算法,改进了异步运算及对VR的支持。

澳门新葡8455最新网站 61

2017年NVIDIA Volta:真正为计算而生的GPU,支持AI加速

深度学习基准测试

在NVIDIA的路线图上,原本Maxwell之后是Volta,后者技术迈进的更多,但因为种种原因,Volta显卡进度不如预期,所以中间多了个Pascal显卡,这也可以解释为什么GP102/104核心的架构其实比Maxwell没什么质的变化。

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

但是Volta就不同了,这又是一款真正为计算而生的显卡架构了,与Pascal相比,GV100核心的CUDA核心数一下子增加到了5120个,尽管使用了16nm改良版的12nm FFN工艺,但它各方面规格都很惊人——815mm2核心面积、211亿晶体管、5120个CUDA核心、15TFLOPS浮点性能等等。

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

澳门新葡8455最新网站 62

澳门新葡8455最新网站 63

在GV100大核心中,每组GPC单元是14个SM单元,总数应该是84组SM单元,但是现在Tesla V100跟Tesla P100一样都不是完全体,前者启用了56组SM单元,后者启用了80组SM单元,总计80x64=5120个CUDA核心。

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

除此之外还有FP64单元,GV100依然延续了GP100中FP32:FP64=2:1的比例,每个SM单元中有32个FP64单元,理论上有2688个FP64单元,实际启用的是2560个。

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

澳门新葡8455最新网站 64

澳门新葡8455最新网站 65

更重要的是,Volta架构在传统的单双精度计算之外还增加了专用的Tensor Core张量单元,用于深度学习、AI运算等,在GV100大核心中,每组SM单元中还有8个Tensor单元,这样整个SM单元中就是FP32:FP64:Tensor=64:32:8的比例存在,GV100也因此有了Tensor计算能力这个指标,Tesla P100的Tensor计算能力高达120TFLOPS,NVIDIA宣称它的Tensor性能是Pascal架构的12倍。

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

澳门新葡8455最新网站 66

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

Volta架构如此之特殊,以致于NVIDIA并没有推出对应的消费级产品,除了TITAN V这一款显卡,TITAN V从Tesla V100的4096-bit、16GB缩减为3072-bit、12GB的HBM2显存,显存频率850MHz,等效数据频率1700MHz,带宽高达652.8GB/s,另外TITAN V的L2缓存减少到4.5MB,这些使得在深度学习运算性能上稍不如Tesla V100(112TFLOPS),显卡供电接口是6+8pin,显卡TDP250W,显示接口为3个DP+1个HDMI。

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

2018年NVIDIA Turing架构:追光十二年,RTX全新品牌诞生

澳门新葡8455最新网站 67

Volta这一代没有什么主流游戏卡问世,但这也没影响NVIDIA的显卡布局,GTX 10系列显卡时代恰逢矿卡市场再次火爆,导致GTX 1060等显卡完全不愁销路,2017到2018年上半年的时候NVIDIA及AMD都不担心互相抢市场了,光是卖矿卡就大赚特赚了,所以GTX 10系列的Pascal显卡升级换代周期长达2年多,发布2年之后不光没有退市,还没有降价,简直是显卡市场上的奇迹。

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

不过2018年下半年了,矿卡崩了,NVIDIA及显卡厂商即便有矿卡库存问题,还是要推新架构,8月底的德国科隆游戏展上NVIDIA正式发布了Turing图灵架构,当然这次其实是游戏展之前的SIGRAPH大会上现发布了面向工作站的Quadro RTX 8000/6000系列专业卡。

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

澳门新葡8455最新网站 68

DeepBench训练测试之GEMM和RNN

对于图灵显卡,我们已经很熟悉了,这一代显卡最大的变化首先是全新的品牌命名,从GTX变成了RTX,而RTX代表就是实时光线追踪技术,因为这是图灵显卡技术升级最多的地方,NVIDIA CEO黄仁勋在发布会热情表态图灵是他们12年来GPU架构变化最大的一次,原因就是RTX,通过专用的RT Core核心,NVIDIA实现了游戏中可用的实时光线追踪渲染。

首先进行的是GEMM测试,利用某些深度学习应用程序(DeepSpeech、Speaker ID和Language Modeling)中的内核进行GEMM操作,测出的性能比在cuBLAS中运行纯矩阵-矩阵乘法更有代表性。

澳门新葡8455最新网站 69

测试的结果在意料之内,启用Tensor Core可以大幅提升性能。深入研究细节可以发现,Tensor Core对于特定类型的矩阵-矩阵乘法会有特别的影响。

除了RTX之外,图灵显卡也支持Volta的Tensor Core,可以用于AI加速,NVIDIA之前也提供了多种显卡可用的AI玩法,比如DLSS抗锯齿技术,不过相比RTX光追技术,AI加速在游戏中应用太少,不够吸引人。

澳门新葡8455最新网站 70

澳门新葡8455最新网站 71

通过深度学习应用程序拆分GEMM测试,我们可以了解Tensor Core在理想和非理想情况下的表现。

在SM单元架构中,图灵这一代又有所不同了,不同于Pascal架构中的GP102/GP104核心,更像是Volta架构的GV100大核心,因为每组SM单元又变成了64个CUDA核心,其中RTX 2080 Ti使用的TU102核心一共分为6组GPC单元,每组GPC单元又拥有12个SM单元,一共是72个SM单元,但RTX 2080 Ti也只用到其中的68个而已,算下来68 x 64=4352个CUDA流处理器。

澳门新葡8455最新网站 72

至于RTX 2080显卡使用的TU104核心,完整版的TU104核心依然是6组GPC单元,不过每组GPC改为8个SM单元,一共是6×8=48个,而RTX 2080的GPU核心是TU104-400,只用上了46组,还有预留有2组空缺的,46×64=2944个,规模要比RTX 2080 Ti小多了。

Speaker ID GEMM工作负载实际上只包含两个内核,其中10微秒的时间差意味着大约1 TFLOPS的算力差异。

支持RTX光追是图灵显卡的特色,不过RTX光追除了游戏数量的问题之外,还有一个问题就是它对性能的要求还是太高了,所以在图灵显卡这一代中NVIDIA的市场策略也不同,支持RTX技术的显卡主要是RTX Titan、RTX 2080 Ti、RTX 2080、RTX 2070及RTX 2060,而不支持RTX的则变成了GTX 16系列,包括GTX 1660 Ti、GTX 1660及刚刚发布的GTX 1650显卡。

澳门新葡8455最新网站 73

澳门新葡8455最新网站 74

通过对语言模型内核的研究,可以了解Tensor Core在非理想情况下的性能。这些核矩阵的大小是m=512或1024,n=8或16,k=500000,虽然每个数在技术上都可以被8整除——这是满足张量核加速度的基本要求之一——但这些矩阵的形状与Tensor Core支持的16*16*16、32*8*16和8*32*16等基本WMMA形状不太匹配。假如Tensor Core真正在独立的8x8x8级别上运行,那么运算8*8*8矩阵的性能也不会很好。

RTX 20系列显卡的规格

澳门新葡8455最新网站 75

澳门新葡8455最新网站 76

因此,Tensor Core无法高效的将这些非常不平衡的矩阵分解为n=8或16。而且,Tensor Core在DeepSpeech内核上的性能也出现异常:

GTX 16系列显卡的规格

澳门新葡8455最新网站 77

总结:五代GPU性能大幅提升,能效更高,但价格也更高

从所有子项的平均成绩来看,这个浮点运算性能令人印象深刻。当矩阵适合于Tensor Core时,性能可以超过90TFLOPS;相反如果二者无法契合,并正确的换位没有发挥作用,性能会低至<1TFLOPS的水平。

从2012年的Kepler显卡到今天为止,NVIDIA的显卡已经推出了五代架构,如果算上每代中的大核心与游戏核心,那就是至少10款了,这些显卡的制程工艺也从28nm一路升级到16nm、12nm。在游戏性能上,根据超能网的显卡天梯榜,如今的RTX 2080 Ti显卡的性能是GTX 480显卡的7倍左右,而GPU的晶体管数量也从30亿增长到了210亿,与性能增幅基本同步。

对于DeepBench RNN内核的测试,RNN类型之间没有明显的差异,但是在每种RNN类型中,如果将不同内核挨个进行对比判断,也可以看到与GEMM中相同的趋势。

如果考虑到性能、功耗,那么多年来NVIDIA显卡的能效增长还是很明显的,毕竟大核心的TDP功耗多年来一直维持在250-300W之间,但性能已经增长了6-7倍。

澳门新葡8455最新网站 78

此外,前面我们没有详细提及历代显卡的价格,但是这个趋势也很明显了,GTX 400到GTX 700阶段中,高端显卡的售价都是3999元,但是这几年来价格已经水水涨船高,NVIDIA这边尤其明显,Titan显卡从最初7999元的价格一路涨到了2万元,而主流市场上的旗舰显卡价格也涨到了6000元以上,RTX 20这一代涨价更多,RTX 2080 Ti售价直奔9999元,这是以往Titan显卡的级别了。

澳门新葡8455最新网站 79

澳门新葡8455最新网站 80

澳门新葡8455最新网站 81

文章出处:超能网

比较有趣的是,Titan Xp与Titan V在未使用Tensor Core加速时的表现有很接近,Titan Xp的高频率为其性能起到了一定的帮助。

DeepBench训练测试之Convolutions

在卷积训练工作负载测试中,Tensor Core再次显着提高了性能。鉴于卷积层是图像识别和分类的基础,因而卷积运算是Tensor Core加速的最大潜在受益者之一。

从所有测试项的平均成绩可以看出,Volta在启用了Tensor Core的FP16混合精度运算能力后性能再次取得了领先。不过与GEMM不同,在FP32卷积上启用Tensor Core会导致明显的性能损失。

澳门新葡8455最新网站 82

澳门新葡8455最新网站 83

当计算涉及不匹配的张量尺寸时,标准精度模式遵循cuDNN指定的最快前向算法(如Winograd),而混合精度模式必须对所有内核使用隐式预计算GEMM,这会造成两种混合精度模式的性能会出现下滑。

要符合Tensor Core加速的要求,输入和输出通道尺寸必须是8的倍数,输入、过滤和输出数据的类型必须是半精度。使用Tensor Core实现卷积加速要求张量采用NHWC格式,但大多数框架都希望采用NCHW格式的张量。在这种情况下,输入通道不是8的倍数,但测试程序会自动填充以解决此问题。

澳门新葡8455最新网站 84

需要注意的是,所有这些NCHW内核都需要转换为NHWC。想要从Tensor Core中受益,需要正确的调整卷积格式,本次测试使用的是NVIDIA提供的标准库和makefile。NVIDIA指出,一旦进行加速卷积,它会消耗掉相当多的运行时间,这将会对FP32和FP16混合精度模式造成影响。

澳门新葡8455最新网站 85

澳门新葡8455最新网站 86

DeepBench推理测试之GEMM

数据精度方面,百度将DeepBench GEMM和卷积定义支持32bit累加的INT8格式,以支持Volta和Pascal上的INT8计算。

澳门新葡8455最新网站 87

Titan V和Titan Xp均拥有4倍于INT32的INT8性能,DeepBench的INT8推理测试正中Pascal引入的DP4A矢量点积能力之下怀。Volta同样拥有这一能力,在指令集中二者均显示为IDP和IDP4A。

澳门新葡8455最新网站 88

对IGEMM来说,正如CUTLASS所示,DP4A是一项定制操作。因此除语言建模之外,INT8的性能都非常之高。当然,与硬件不匹配的张量尺寸不适合Tensor Core加速,这一点与之前完全一样。

澳门新葡8455最新网站 89

澳门新葡8455最新网站 90

在完全连接(仿射)层中,每个节点都与前一层中的各节点相连接。对于一个典型的CNN来说,完全连接的层意味着可以结合所有提取的特征做出最终预测并对图像进行分类。这些测试结果数据也意味着大型且规则的矩阵可以在Tensor Core加速中获得更大的收益。

澳门新葡8455最新网站 91

澳门新葡8455最新网站 92

DeepBench推理测试之Convolutions

再次来到卷积测试环节,8位乘法/32位累加再次出现在INT8推理中。

测试中最引人注目的是Titan Xp,在Resnet、Speaker ID和Vision项目中,Titan Xp表现出了强劲的INT8吞吐量。

澳门新葡8455最新网站 93

从内核方面来看,并没有发现这一现象的根源所在,猜测可能是由于Pascal的DP4A库好驱动程序比Volta更为成熟所致,亦或许是Volta通过单独的INT单元处理这些运算。

澳门新葡8455最新网站 94

澳门新葡8455最新网站 95

澳门新葡8455最新网站 96

澳门新葡8455最新网站 97

DeepBench推理测试之RNN和Sparse GEMM

DeepBench的最后一项推理测试是RNN和Sparse GEMM,虽然测试中可以选择FP16,但实际上它们都只支持FP32运算。

澳门新葡8455最新网站 98

澳门新葡8455最新网站 99

澳门新葡8455最新网站 100

虽然RNN可能会有加速,但DeepBench和NVIDIA目前仅支持单精度RNN推理。

NVIDIA Caffe2测试之ResNet50和ImageNet

虽然内核和深度学习数学运算可能很有用,但实际应用中是使用真实数据集进行训练的。使用标准的ILSVRC 2012图片集,在ImageNet上通过ResNet50模型来训练和推断,可以展示更具参考的性能数据。

虽然FP16和Tensor Core有单独的开关,但Titan V在启用和禁用Tensor Core的情况下运行FP16的性能是完全一样的。

澳门新葡8455最新网站 101

只看原始吞吐量性能的话,Titan V在所有批尺寸下都处于领先地位。凭借Tensor Core,Titan V可处理的批尺寸达到甚至超过了64,而其他显卡即便有12 GB显存也无法使用这个数量。

澳门新葡8455最新网站 102

不过只看原始吞吐量性能的问题在于,深度学习的实际性能从来没有这么简单。首先,许多模型可能会牺牲精度和训练时间以换取针对吞吐量的优化,如果模型需要较长的时间来收敛,那么每秒训练的峰值性能就没有参考意义了。

这些问题与使用FP16存储和Tensor Core的Volta尤为相关,如果在实际应用中使用了有损缩放或单精度批量归一化,这在吞吐量性能中都是无法体现的。

HPE DLBS Caffe2测试之ResNet50和ImageNet

接下来,我们看一下深度学习指南中的HPE DLBS。与通常的深度学习测试不同,HPE DLBS基本上只输出吞吐量和时间指标。

HPE DLBS的一大特色是支持NVIDIA Caffe2测试使用的数据集,我们同样可以在ImageNet上使用ResNet50模型来训练和推断。但是由于二者的模型和实现不同,测出的吞吐量性能无法与NVIDIA Caffe2直接进行比较。

澳门新葡8455最新网站 103

在测试中,Titan V无法支持某些特定的批尺寸,但总体趋势和之前的测试基本相同,FP16和Tensor Core提供了更高的吞吐量。不过遗憾的是,HPE DLBS Caffe2测试似乎不支持INT8推理。

澳门新葡8455最新网站 104

HPE DLBS TensorRT测试之ResNet50和ImageNet

HPE DLBS的另一大特色是支持TensorRT(NVIDIA推理优化引擎)的基准测试功能, NVIDIA近年来已将TensorRT与新的深度学习功能(如INT8/DP4A和Tensor Core的16位累加器模式)相结合以进行推理。

澳门新葡8455最新网站 105

使用Caffe模型,TensorRT可以根据需要调整模型,以便在给定的精度下进行推理。我们在Titan X(Maxwell)和Titan Xp(Pascal)上运行了64、512和1024的批尺寸,在Titan V运行了128、256和640的批尺寸。

Titan Xp的高INT8性能在一定程度上印证了GEMM/卷积性能,这两个工作负载似乎都在使用DP4A。不过雷锋网并未了解到DP4A如何在Titan V上实现,只知道它由Volta指令集提供支持,且Volta确实拥有独立的INT32单元。

DAWNBench测试之CIFAR10图像分类

就实际应用的性能而言,深度学习训练更适合用时间/准确性和成本来描述,而这两点分别对应DAWNBench的两项子测试。对于使用CIFAR10的图像分类来说,这两项子测试为:

style="font-size: 16px;">时间/准确性:训练CIFAR10数据集的图像分类模型,报告训练所需的时间,且要求测试集准确性至少为94%。

style="font-size: 16px;">成本:在公共云基础架构上,计算达到94%或更高的测试集准确性所需的总时间,将所花费的时间(以小时为单位)乘以每小时实例的成本,以获得训练模型的总成本。

测试选用PyTorch的CIFAR10训练实现中最快的两个,其中一个基于ResNet34,是为了在NVIDIA GeForce GTX 1080 Ti上运行,而第二个基于ResNet18,是为了在单个Tesla V100上运行。这些都是DAWNBench中最近的热门测试,可以认为它们是相当符合现代的项目,同时CIFAR10也不是一个非常密集的数据集。

澳门新葡8455最新网站 106

澳门新葡8455最新网站 107

CIFAR10的小型图像数据集运行良好,第一个训练实现是在单个GTX 1080 Ti上运行,需要35分37秒才能训练到94%的准确性,而在第二个训练实现中,Titan V只用了5分41秒就完成了94%的目标。

顺带一提,虽然Titan V在第一个训练实现中不会使用Tensor Core,但凭借相对于Pascal的一般改进,Titan V在这个测试中的速度依然比Titan Xp快20%左右,同时系统峰值功耗也下降了大约80W。

澳门新葡8455最新网站 108

澳门新葡8455最新网站 109

结语

Tensor Core是Titan V的重要组成部分,本文的目的也是尽可能的了解Volta,所以测试着重考察了Tensor Core加速。

本次测试还有许多没有涉及到的各种其他测试和套件,它们普遍在设计上有太多欠缺。事实证明,无论从整体还是局部来看,都不可能找到一个负载贴合当下实际、提供端到端指标、覆盖多个机器学习域、支持Tensor Core和混合精度,最重要的是易于非专业开发者使用的深度学习套件。

即便是参考价值较大的DAWNBench,设计本意也并非提供一个通用的基准,而是为方便研究者和开发者创建他们自己的实现。DAWNBench的深度学习框架仍然需要修改以作为一款有效的基准测试使用,但重新配置一个与Volta兼容的混合精度模型就不是一件可以轻松完成的事情。

澳门新葡8455最新网站 110

这实际上与Titan V自身相关,Tensor Core和混合精度需要专门的开发来适配支持,只能在特定情况下明显提升性能。且即便用户的代码和数据集可以与Tensor Core良好的匹配,到头来神经网络处理也会受到来自传统ALU的限制。

而对于主流消费者群体来说,Tensor Core的发展对他们意味着什么?最新的Turing架构证明,Tensor Core在游戏卡领域同样可以有所应用。雷锋网曾在NVIDIA RTX 2080Ti/2080/2070发布时报道过,RTX光线追踪技术就是使用Tensor Core对图像进行降噪以弥补光线数量的限制。NVIDIA唯一需要考虑的问题是,这些玩家是否乐意为这些Tensor Core买单。

澳门新葡8455最新网站 111

澳门新葡8455最新网站 112

对于任何考虑购买Titan V以满足计算需求的人来说,投资Titan V就意味着投资混合精度深度学习模型和基于WMMA的HPC GEMM加速。在cuDNN、cuBLAS以及早期DP4A和FP16*2混合精度计算的背景下,Tensor Core是试图用可编程硬件来实现深度学习加速的一种自然进化。

可以肯定的是,Titan V绝对代表了NVIDIA对未来GPGPU的愿望。

来源:Anandtech

原文链接:)

责任编辑:

本文由澳门新葡8455最新网站发布于澳门新葡8455最新网站,转载请注明出处:使用TensorRT集成加速TensorFlow推理,Core全面解析

关键词:

你在哪里,苹果通过定制模型识别地名

在我们的实验中,我们使用了两类测试数据: 在测试中,苹果公司发现,这些定制的语言模型可以将Siri的错误率降低...

详细>>

最高和最低的地方居然是,每周福利

原标题:视角 |全球AI顶会研究人员的男女比例是7:1,最高和最低的地方居然是… 原标题:【每周福利!】盛·定投...

详细>>

苹果若听特朗普的还会再涨20,能否拯救苹果概念股

原标题:国金证券:苹果公司供应商选择仍侧重中国厂商 并无转移的动作 苹果新品发布 产业链公司们准备好了吗?...

详细>>

对话系统综述,让AI学会刨根问底和放飞自我

原标题:资源 | 让AI学会刨根问底和放飞自我,斯坦福最新问答数据集CoQA Recent Trends in Deep Learning Based Natural Language ...

详细>>