本篇文章8169字,读完约20分钟

编者按:5月11日,在加州圣何塞举行的2017年图形处理器技术会议上,英伟达发布了特斯拉v100,宣称它是历史上最强的图形处理器加速器。发布后,Nvidia首次在官方开发者博客上发布了一篇博文,详细分析了各种新特性/产品的技术内涵,包括特斯拉v100、gv100 gpu、张量核心和volta架构等。雷锋。com编译如下。

众所周知,无论是语音识别还是虚拟个人助理培训;路线检测或自动驾驶系统的研发,数据科学家在这些人工智能领域正面临越来越复杂的人工智能挑战。为了更好地实现这些具有未来感的强大功能,有必要在实践中引入一些指数型和更复杂的深度学习模型。

另一方面,高性能计算在现代科学研究中发挥着重要作用。无论是预测天气、研究新药还是探索未来能源,研究人员每天都需要使用大规模计算系统对现实世界进行各种模拟和预测。通过引入人工智能技术,hpc可以显著提高研究者对大数据分析的效率,并得到一些传统模拟和预测方法无法得到的新结论。

为了进一步推动高性能计算和人工智能的发展,NVIDIA最近发布了新一代特斯拉v100图形处理器加速器。基于最新的nvidia volta gv100 gpu平台和各种突破性的技术创新,它可以为各种超级计算系统提供一个强大的计算平台。无论是在以科学模拟为主要手段的计算科学领域,还是以理解数据奥秘为目标的数据科学领域,tesla v100都能为相关应用提供强大的计算能力支持。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

接下来,我们将通过这个博客对特斯拉v100: volta架构的核心进行深入分析,并帮助开发者理解它在实际开发中带来的优势。

Tesla v 100:ai计算和hpc的源动力nvidia tesla v100是世界上性能最高的并行处理器,专门用于处理需要强大计算能力的密集型hpc、AI和图形处理任务。

Gv100 gpu处理器是特斯拉v100加速器的核心。基于TSMC专为英伟达设计的最新12纳米ffn高精度工艺封装技术,gv100集成了多达211亿个晶体管结构,芯片尺寸为815平方毫米。与上一代产品,即pascal系列gpu相比,gv100不仅在计算性能上有了很大的进步,而且还增加了许多让人眼前一亮的新特性。包括进一步简化gpu编程和应用部署流程,以及对gpu资源利用的深入优化。因此,gv100不仅能提供强大的计算性能,还能省电。下图显示了tesla v100加速器和tesla p100加速器在resnet-50模型训练和推理中的性能比较。可以看出,最新的v100远远优于先前的p100。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

特斯拉v100的主要特点总结如下:

●针对深度学习优化的流式多处理器(sm)架构。作为gpu处理器的核心组件,nvidia在volta架构中重新设计了sm。与以前的pascal架构相比,这一代sm的能效提高了约50%,并且在相同的功耗范围内,可以大大提高fp32(单精度浮点)和fp64(双精度浮点)的计算性能。新的张量核心是为深度学习设计的,可以在模型训练场上以12倍的最大速度完成万亿次浮点运算。此外,由于新的sm架构对整数和浮点数据采用独立和并行的数据路径,因此它还可以在混合场景中输出良好的效率,例如通用计算和寻址计算。volta架构新的独立线程调度功能也可以实现并行线程之间的细粒度同步和协作。最后,新组合的l1缓存和共享内存子系统也显著提高了性能,并大大简化了开发人员的编程步骤。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

●第二代nvlink。第二代nvidia nvlink高速互连技术为多gpu和多gpu/cpu系统配置提供了更高的带宽、更多的连接和更强的可扩展性。Gv100 gpu最多支持6个nvlink链路,每个链路的速率为25 gb/s,总速率为300 gb/s..Nvlink还支持基于ibm power 9 cpu服务器的cpu控制和缓存一致性功能。此外,新发布的nvidia dgx-1v super ai计算机还采用了nvlink技术,为超快速深度学习模型培训提供了更强的可扩展性。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

●hbm2内存:速度更快、效率更高。Volta高度优化的16gb hbm2内存子系统可提供高达900 GB/s的峰值内存带宽。与上一代pascal gp100相比,三星的新一代hbm2内存与volta的新一代内存控制器相结合,带宽提高了1.5倍,性能超过了95%的工作负载。

●沃尔特多流程服务(mps)。Voltamops是volta gv100架构的一个新特性,它可以为cuda mps服务器的关键组件提供硬件加速功能,从而在共享gpu的多任务场景中显著提高计算性能、隔离和服务质量(qos)。Volta mps还将mps支持的最大客户数量从帕斯卡时代的16个增加到48个。

●增强的统一内存和地址翻译服务。volta gv100中的Gv100统一内存技术实现了一种新的访问计数器,可以根据每个处理器的访问频率准确调整内存页面的寻址,从而大大提高了处理器间共享内存的使用效率。此外,在ibm power平台上,新的地址转换服务(ats)还允许gpu直接访问cpu的内存页表。

●合作团体和新的合作发射api。协作组是cuda 9中引入的一种新的编程模型,用于组织通信线程组。协作组允许开发人员表达线程间通信的粒度,并帮助他们更丰富有效地进行并行分解。自开普勒系列以来,所有英伟达图形处理器都支持基本的合作小组功能。Pascal和volta系列也支持新的协作启动api,通过它可以实现cuda线程块之间的同步。此外,volta还增加了对新同步模式的支持。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

●最高性能和最高效率。顾名思义,在最高性能模式下,特斯拉v100 speeder将无限期运行,达到300瓦的tdp(热设计功率)水平,以满足需要最快计算速度和最高数据吞吐量的应用需求。而最高效率模式允许数据中心管理员调整特斯拉v100的功耗水平,从而以最佳的每瓦能耗来表示输出计算能力。此外,tesla v100还支持在所有图形处理器中设置功率上限,这大大降低了功耗,最大限度地满足了机架的性能要求。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

●针对volta优化的软件。深度学习框架的各种新版本(包括caffe2、mxnet、cntk、tensorflow等。)可以使用volta大大缩短模型训练时间,提高多节点训练的性能。各种volta优化版本的Gpu加速库(包括cudnn、cublas和tensorrt等。)还可以通过支持volta gv100的各种新功能,为深度学习和hpc应用提供更好的性能支持。此外,NVIDIA cuda toolkit版还增加了新的api和对volta新功能的支持,以帮助开发人员更方便地为这些新功能编程。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

配备volta gv100 gpu的Gv100 gpu硬件架构nvidia tesla v100加速器是当今世界上最强大的并行计算处理器。其中,gv100 gpu拥有一系列硬件创新,为深度学习算法和框架、hpc系统和应用提供强大的计算支持。其中,高性能计算领域的性能如下图所示。在各种高性能计算任务中,特斯拉v100平均比特斯拉p100快1.5倍(基于特斯拉v100原型机卡)。

Tesla v100具有业界领先的浮点和整数计算性能,其峰值计算性能如下(基于gpu提升时钟频率):

●双精度浮点(fp64)运算性能:7.5 TFLOP/s;

●单精度(fp32)操作性能:15 tflop/s;

●混合精度矩阵的乘法和累加:120张张量/秒

像pascal gp100一样,gv100也由许多图形处理集群(gpc)、纹理处理集群(tpc)、流式多处理器(sm)和内存控制器组成。一个完整的gv100 gpu由6个gpu、84个电压、42个tpc(每个TPC包含2个sms)和8个512位内存控制器(总共4096位)组成。其中,每个sm有64个fp32核、64个int32核、32个fp64核和8个全新的张量核。同时,每个sm还包含四个纹理单元。

更具体地说,完整的volta gv100包含总共5376个fp32内核、5376个int32内核、2688个fp64内核、672个张量内核和336个纹理单元。每个存储控制器与一个768 kb的L2高速缓存相连,每个hbm2 dram堆栈由一对存储控制器控制。总体而言,gv100总共包含6144kb的L2缓存。下图显示了带有84个sm单元的volta gv100的完整版本。应当注意,不同的产品可能具有不同的配置。例如,特斯拉v100只有80 sm。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

下表显示了过去五年特斯拉v100和特斯拉系列加速器之间的参数比较。

为了提供更高的性能,Volta sm比旧的sm具有更低的指令和缓存延迟,并且特别针对深度学习应用进行了优化。其主要特点如下:

●用于深度学习矩阵计算的新型混合精度FP16/FP32张量核心;

●增强的一级缓存,实现更高的性能和更低的延迟;

●改进指令集,简化解码并缩短指令延迟;

●更高的时钟频率和能效。

下图显示了volta gv100 sm装置的基本结构。

张量核心:它不仅是一个运算指令,也是一种数据格式。全新的张量核心是volta gv100架构中最重要的新特性。在训练超大型神经网络模型时,可以为系统提供很强的运行性能。tesla v100的张量核心可以为与深度学习相关的模型训练和推理应用提供高达120 tflops的浮点张量计算。具体来说,在深度学习的模型训练方面,与p100上的fp32运算相比,全新的tensor core在tesla v100上可以达到12倍的最高速度。在深度学习推理中,与p100上的fp16运算相比,它能以最高6倍的速度达到峰值。Tesla v100 gpu包含总共640个张量内核,每个流多处理器(sm)包含8个。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

众所周知,矩阵乘法是神经网络训练的核心。在深层神经网络的每个连接层中,输入矩阵必须乘以权值才能得到下一层的输入。如下图所示,与上一代pascal架构的gp100相比,tesla v100中的张量内核将矩阵乘法的性能提高了至少9倍。

正如本节的副标题所描述的,张量核心不仅是一个新的、高效的指令集,而且是一种数据操作格式。

在新发布的volta架构中,每个张量核包含一个4x4矩阵处理队列,以完成神经网络结构中最常见的d=axb+c运算。其中a、b、c和d是四个4x4矩阵,所以它们被称为4x4。如下图所示,输入a和b指的是fp16的矩阵,而矩阵c和d可以是fp16或fp32。

根据设计,张量内核可以在每个时钟频率下执行高达64 fma的混合精度浮点运算,即两个fp16输入加上一个fp32的乘积。因为每个sm单元包含8个张量核心,所以每个时钟可以执行1024次浮点运算。因此,在volta架构中,每个sm单元的深度学习应用的吞吐量比标准fp32操作的pascal gp100大幅度提高了8倍,volta v100 gpu的吞吐量比pascal p100 gpu提高了12倍。下图显示了标准volta gv100张量核心过程。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

在程序执行期间,几个张量核心通过扭曲单元一起工作。经线也提供了更大的16x16x16矩阵运算,可以由张量核心处理。Cuda在cuda c++ api中将这些操作公开为扭曲级矩阵操作。通过cuda c++编程,开发人员可以灵活地使用这些开放的API来实现基于张量核的矩阵运算,如乘法、加法和存储。

增强型l1缓存和共享内存volta sm的l1缓存和共享内存子系统相互结合,显著提高了性能,同时大大简化了开发人员的编程步骤和系统调试成本,达到或接近最佳系统性能。

值得强调的是,volta架构将数据缓存和共享内存功能结合到一个内存块中,为两种类型的内存访问提供了最佳性能。总内存容量达到128 kb/sm,比旧版本的gp100缓存大7倍以上,所有这些都可以配置为非共享专用缓存块。另外,纹理处理单元也可以使用这些缓存。例如,如果共享内存设置为64 kb,l1中剩余的64kb容量可用于纹理和加载/存储操作。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

一般来说,volta gv100 l1缓存比过去nvidia gpu的l1缓存具有更低的延迟和更高的带宽。一方面,它充当流数据的高吞吐量流水线,另一方面,它可以为高度复用的数据提供高带宽和低延迟的精确访问。

下图显示了volta和pascal的l1缓存性能比较。

Gv100 gpu支持NVIDIA的新计算能力7.0。下表显示了nvidia gpu不同架构之间的计算能力比较。

与以前的nvidia gpu相比,独立线程调度volta架构大大降低了编程难度,用户可以更专注于生产各种应用。Volta gv100是第一个支持独立线程调度的gpu,也就是说,程序中的不同线程可以更好地同步和协作。volta的主要设计目标之一是降低在gpu上运行的程序的开发成本和线程间的灵活共享机制,这最终使并行计算更加高效。

以前的simt车型(SIMT车型)

在pascal和以前的GPUs中,一个由32个线程组成的组可以被执行,这在simt术语中也被称为扭曲。在帕斯卡的扭曲中,这32个线程使用相同的程序计数器,然后一个活动的掩码指示扭曲中的哪些线程是有效的。这意味着不同执行路径中的一些线程是“非活动的”。下图显示了扭曲中不同分支的顺序执行过程。在程序中,原始遮罩将被保存,直到扭曲的执行结束,线程再次收敛,遮罩将被恢复,程序将被再次执行。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

本质上,pascal的simt模式通过减少跟踪线程状态和主动恢复线程所需的资源,最大限度地提高了并行效率。这种跟踪整个扭曲的线程状态的模式实际上意味着,当程序有并行分支时,扭曲的内部执行实际上是连续的,并行的含义在这里已经丢失,直到并行分支结束。也就是说,不同经线中的线程确实并行执行,但是相同经线中的分支线程在恢复之前按顺序执行,并且它们不能交换信息和共享数据。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

例如,当不同的线程访问由锁和互斥机制保护的数据块时,那些需要精确数据共享的算法不确定所遇到的线程来自哪个扭曲,因此很容易导致死锁。因此,在pascal和以前的GPUs中,开发人员必须避免细粒度的同步,或者使用不依赖锁或明确区分扭曲的算法。

volta架构的单指令多线程模式

Volta通过在所有线程中实现相同级别的并发性(无论哪种扭曲)来解决这个问题。volta为每个线程维护相同的执行状态,包括程序计数器和调用堆栈,如下图所示。

Volta的独立线程分配机制允许gpu向任何线程授予执行权限,这使得线程执行更加高效,线程间的数据共享更加合理。为了最大限度地提高并行效率,volta有一个调度优化器,它可以决定如何将有效线程分组到同一个扭曲中,并将它们一起发送到simt单元。这不仅保持了nvidia之前gpu中较高的simt吞吐量,而且具有更高的灵活性:现在,线程可以在亚扭曲级别进行分支和恢复,volta仍然将执行相同代码的线程分组在一起,使它们并行运行。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

下图显示了volta多线程模式的一个示例。这个程序中的If/else分支现在可以按时间顺序分开,如图12所示。可以看出,执行过程仍然是模拟的。在任何时钟周期中,如前所述,同一经线中的所有有效线程都执行相同的指令,这仍然可以保持先前架构中的执行效率。关键在于,volta的独立调度能力可以让程序员有机会以更自然的方式开发复杂而精细的算法和数据结构。尽管调度器支持线程执行的独立性,但它仍然优化了那些不同步的代码段,确保了线程的收敛性,并最大限度地提高了simt的效率。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

此外,上图中还有一个有趣的现象:在所有线程中,Z不是同时执行的。这是因为Z可能输出其他分支进程所需的数据,在这种情况下,强制收敛是不安全的。然而,在以前的体系结构中,通常认为A、B、X和Y不包含同步操作,因此调度器将认为在z上收敛是安全的

在这种情况下,程序可以在新的cuda 9中调用扭曲同步函数__syncwarp()来强制线程收敛,如下图所示。此时,分支线程可能不会同步执行Z语句,但是通过调用__syncwarp()函数,这些线程在同一warp中的所有执行路径将在执行Z语句之前完成。同样,如果在执行Z之前调用__syncwarp()函数一次,程序将在执行Z之前强制收敛,如果开发人员能够提前保证该操作的安全性,无疑会在一定程度上提高simt的执行效率。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

无饥饿算法

无饥饿算法是独立线程调度机制的一种重要模式,具体来说,在并发计算中,只要系统保证所有线程对竞争资源有适当的访问权限,就可以保证它们的正确执行。例如,如果一个试图获取互斥锁的线程最终成功获取了锁,它可以在无饥饿算法中使用互斥锁(或普通锁)。在不支持无饥饿算法的系统中,可能会发生一个或多个线程重复获取和释放互斥锁的情况,这可能会导致其他线程始终无法获取互斥锁。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

让我们来看看volta独立线程调度的一个例子:在多线程应用程序中将节点插入双链表。

__device__ void insert_after(节点*a,节点*b)

{

节点* c;

锁(a);锁定(a->下一个);

c = a->下一个;

a->下一个= b;

b-> prev = a;

b-> next = c;

c-> prev = b;

解锁(c);解锁(a);

{}

在本例中,双链表的每个元素至少包含三个部分:一个后向指针、一个前向指针和一个锁(只有所有者有权更新节点)。下图显示了在a和C之间插入节点b的过程..

Volta是一种独立的线程调度机制,它可以确保即使线程t0当前锁定了节点a,同一经线中的另一个线程t1仍然可以成功地等待它解锁,而不会影响t0的执行。然而,值得注意的是,由于同一经线下的有效线程是一起执行的,等待解锁的线程可能会降低锁定线程的性能。

同样重要的是要注意,在这个例子中对每个节点使用锁定对于gpu的性能非常重要。传统上,双向链接表的创建可能使用粗粒度锁(对应于前面提到的细粒度锁),而粗粒度锁将独占整个结构(全部锁定),而不是分别保护每个节点。由于线程之间争夺锁,这种方法可能会导致多线程代码的性能下降(volta架构最多允许163,840个并发线程)。此时,我们可以尝试在每个节点上采用细粒度的锁,这样,除了在某些特定节点上的插入操作之外,大型列表中每个节点的锁竞争效应将大大降低。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

上面带有细粒度锁的双向链接表只是一个非常简单的例子。我们想通过这个例子传达的信息是,通过独立的线程调度机制,开发人员可以以最自然的方式在nvidia gpu上实现熟悉的算法和数据结构。

综上所述,nvidia tesla v100无疑是目前世界上最先进的数据中心图形处理器,专门用于处理需要强大计算能力的高性能计算、人工智能和图形处理任务。凭借最先进的nvidia volta架构支持,tesla v100可以在单个gpu中提供100 cpu的计算性能,这使得数据科学家、研究人员和工程师能够应对一度被认为不可能的挑战。

配备了640个张量核心,特斯拉v100已经成为世界上第一个深度学习gpu产品,突破了100 tflops的计算能力。此外,新nvidia nvlink技术的连接能力高达300 gb/s,用户可以完全结合多个v100 gpu在真实场景中构建一个强大的深度学习计算中心。通过这种方式,曾经需要几周时间的人工智能模型现在可以在几天内得到训练。随着训练时间的迅速缩短,将来所有的实际问题都有可能由人工智能来解决。

一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

来源:英伟达开发者博客

雷锋。(公开号码:雷锋。相关阅读:

2小时内,5款新的人工智能产品和英伟达的股价飙升了17%。黄仁勋在全球技术合作会议上说了什么?(PPT包括ppt) | gtc 2017

gtc会议第二天的亮点:nvidia将推出一个多用户虚拟现实系统,并计划培训100,000名开发人员| gtc 2017

开发者特别会议|英伟达深度学习学院现场授课

英伟达dli高级工程师现场指导,理论联系实际,深入学习!

课程链接:mooc.ai/course/90

雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。

来源:搜狐微门户

标题:一文详解英伟达刚发布的 Tesla V100 究竟牛在哪?

地址:http://www.shwmhw.com/shxw/61122.html