专栏名称: 机器之心
专业的人工智能媒体和产业服务平台
目录
相关文章推荐
51好读  ›  专栏  ›  机器之心

英伟达Volta架构深度解读:专为深度学习而生的Tensor Core到底是什么?

机器之心  · 公众号  · AI  · 2017-05-11 14:20

正文

机器之心报道

编辑:CZ、Jenny Huang、 李泽南、吴攀、蒋思源


当地时间 5 月 8-11 日,英伟达在加州圣何塞举行了 2017 年的 GPU 技术大会(GTC 2017)。机器之心作为本次大会的特邀媒体,也来到了现场,参阅《 现场报道 | 英伟达 GTC 大会开幕,盘点首日三大亮点 》。昨天,英伟达 CEO 黄仁勋在大会上正式发布了目前最先进的加速器 NVIDIA Tesla V100。之后,英伟达开发博客又更新了一篇深度解读文章,剖析了 Tesla V100 背后的新一代架构 Volta,其在提供了更好的高性能计算支持之外,还增加了专门为深度学习所设计的 Tensor Core。机器之心在本文中对这篇博客文章进行了编译介绍,同时还在文中加入了一些机器之心对英伟达应用深度学习研究副总裁 Bryan Catanzaro 的采访内容。


在 2017 GPU 技术大会(GTC 2017)上,英伟达 CEO 黄仁勋正式发布了新一代处理器架构 Volta,以及使用新架构的第一款设备——适用于深度学习任务的加速卡 Tesla V100,英伟达将这块显卡称为全球最先进的数据中心 GPU。


从语音识别到训练虚拟助理进行自然交流,从探测车道线到让汽车完全自动驾驶,数据科学家们在技术的发展过程中正一步步攀登人工智能的新高度。而解决这些日益复杂的问题则需要日益复杂的深度学习模型,为深度学习提供强大的计算硬件是英伟达努力的目标。


图 1. Tesla V100 加速卡内含 Volta GV100 GPU,以及 SXM2 Form Factor。


高性能计算设备(HPC)是现代科学的基础,从预测天气、发明新药到寻找新能源,大型计算系统能为我们模拟和预测世界的变化。这也是英伟达在新一代 GPU 架构推出时选择优先发布企业级计算卡的原因。黄仁勋在发布会上表示,全新的 Tesla V100 专为 HPC 和 AI 的融合而设计,同时采用了具有突破性的新技术。英伟达的新架构能否让 GPU 再上一个台阶?让我们随着 Tesla V100 一探究竟。


揭秘新架构与 GPU 特性


Volta 并不是 Pascal 的升级,而是一个全新的架构!——NVIDIA 应用深度学习研究副总裁 Bryan Catanzaro。


在 Nvdia GTC 2017 第三天下午,Nvidia CUDA 软件首席工程师 Luke Durant 与 Nvidia 首席构架师 Oliver Giroux 进行了一个名为 Inside Volta 的技术讲座,解读了 Volta 构架的设计。此后机器之心作为不到五家受邀参与 Volta 深度采访的亚洲媒体之一,成为了第一批深入了解 Volta 与 Tesla V100 的机构。



英伟达认为,硬件的可编程性正在驱动深度学习的发展。谈到 Volta 对人工智能带来的影响时,英伟达副总裁 Bryan Catanzaro 表示,「Volta 提供大量的 FLOP,基于 Volta,人们就可以使用需要更多 FLOP 的模型。如今很多流行的模型都需要很大的计算资源,例如卷积,我个人认为架构上将会有一定的转向,既更多地来利用更多地利用我们已有的大量的 FLOP。当然,构架的进化也会经过一个『达尔文』过程,最终最适应的会成为终极形态」


在本次 GTC 中,我们没有看到联网移动端芯片的身影或为移动端人工智能计算性能提升进行的构架设计,关于这个问题,Volta 设计团队表示,对于可以联网的设备,通过 CPU 结合 GPU 的混合云进行大量计算是必然趋势;而对于无法联网的应用场景,SOC 是更好的选择。


Tesla V100:人工智能计算和 HPC 的助推器


毫无疑问,全新的英伟达 Tesla V100 加速器是世界上性能最高的并行处理器,旨在为计算量最大的 HPC 设备、人工智能和图形工作任务提供支持。它的核心 GV100 GPU 包含 211 亿个晶体管,而芯片面积为前所未有的 815 平方毫米(Tesla GP100 为 610 平方毫米)。它采用了台积电(TSMC)的 12nm FFN 专属工艺打造。与其前身 GP100 GPU 及其他 Pascal 架构的显卡相比,GV100 提供了更强的计算性能,并增加了许多新功能。它进一步减小了 GPU 编程和应用程序移植难度,也通过制程的升级提高了 GPU 资源利用率。另外,GV 100 也是一款能效极高的处理器,其在单位功耗的性能上表现卓越。图 2 给出了 ResNet-50 深度神经网络在 Tesla V100 上进行训练的性能表现。


对于 12nm 制程的选择(AMD 准备在 2018 年推出使用 7nm 制程的显卡),英伟达的首席工程师表示他们已在功耗和性能之间做出了最佳选择。


图 2. Tesla V100 在 ResNet-50 深度神经网络训练任务中的速度比 Tesla P100 快 2.4 倍。如果每张图像的目标延迟是 7ms,那么 Tesla V100 使用 ResNet-50 深度神经网络进行推理的速度比 P100 快 3.7 倍(参与测试的 V100 为原型卡)。


Tesla V100 的主要计算特征包括:


  • 为深度学习优化过的新型流式多处理器(SM)架构。Volta 对 GPU 核心的 SM 处理器架构进行了重要的重新设计。新的 Volta SM 架构比前代 Pascal 设计能效高 50%,在同样的功率范围下 FP32 和 FP64 性能有重大提升。新的 Tensor Core 是专门为深度学习设计的,为浮点运算速度带来了 12 倍的提升。有了独立的、并行的整型和浮点型数据通路,Volta SM 在负载上也更高效,混合了计算与地址运算。Volta 新的独立线程调度能力使得并行线程之间的细粒度同步协同(finer-grain synchronization and cooperation)成为可能。最终,新型的 L1 Data Cache 与 Shared Memory 子系统的结合也能极大地提升性能,同时还简化了编程。

  • 第二代 NVLink。第二代英伟达 NVLink 高速互连技术能提供更高的带宽、更多连接,同时还改进了多 GPU 和多 GPU/CPU 系统配置的延展性。

  • HBM2 显存:更快、更高效。Volta 高度调整的 16GB HBM2 显存子系统提供了 900 GB/s 的峰值显存带宽。来自三星的新一代 HBM2 显存和 Volta 中的新一代显存控制器的组合实现的显存带宽是 Pascal GP100 的 1.5 倍,而且在许多负载上的显存带宽效率更高。

  • Volta 多处理服务。Volta 多服务处理(MPS:Multi-Process Service)是 Volta GV100 的一项新特性,能够为 CUDA MPS 服务器的关键组件提供硬件加速,从而能为共享该 GPU 的多个计算应用提供更高的性能、隔离和更好的服务质量(QoS)。Volta MPS 还将 MPS 客户端的最大数量从 Pascal 的 16 提升到了 Volta 的 48。

  • 增强统一存储和地址转换服务。Volta GV100 中的 GV100 统一存储(GV100 Unified Memory)技术包括新型访问计数器,让访问网页最频繁的处理器能更准确的迁移存储页。

  • 协作组(Cooperative Groups)和新的 Cooperative Launch API。协作组是 CUDA 9 中新的编程模型,用来组织通信线程组。Volta 增加了对新型同步模式的支持。

  • 最大性能和最大效率模式。在最大性能模式下,Tesla V100 加速器将不受限制的把 TDP(热设计功耗)水平提高到 300W,从而加速需要最快计算速度和最高数据吞吐的应用。最大效率模式下,数据中心管理员可以调整 Tesla V100 加速器的功率使用,从而用单位功耗下最优的性能进行运算。

  • 为 Volta 优化过的软件。Caffe2、MXNet、CNTK、TensorFlow 等这样的深度学习框架的新版本,能够利用 Volta 的性能来获得更快的训练速度、更高的多节点训练性能。GPU 加速库(比如 cuDNN、cuBLAS 等)的 Volta 优化版本利用 Volta GV100 架构的新特性能为深度学习和高性能计算应用提供更高的性能。


GV100 GPU 硬件架构


装备有 Volta GV100 GPU 的英伟达 Tesla V100 加速器是目前世界上速度最快的并行计算处理器。GV100 的硬件创新十分显著,除了为 HPC 系统和应用提供远比现在更强的计算能力(如图 3 所示)之外,它还可以大大加快深度学习算法和框架的运行速度。


图 3:在各种 HPC 任务中,Tesla V100 平均比 Tesla P100 快 1.5 倍。(该性能基于 Tesla V100 原型卡)


Tesla V100 可以提供业界领先的浮点和整型计算性能。峰值计算速度(基于 GPU Boost 时钟频率):


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

  • 单精度(FP32)运算性能:15 TFLOP/s;

  • 混合精度矩阵乘法和累加:120 Tensor TFLOP/s。


与前一代 Pascal GP100 GPU 类似,GV100 GPU 由多个图形处理集群(Graphics Processing Cluster,GPC)、纹理处理集群(Texture Processing Cluster,TPC)、流式多处理器(Streaming Multiprocessor,SM)以及内存控制器组成。一个完整的 GV100 GPU 由 6 个 GPC、84 个 Volta SM、42 个 TPC(每个 TPC 包含了 2 个 SM)和 8 个 512 位的内存控制器(共 4096 位)。每个 SM 有 64 个 FP32 核、64 个 INT32 核、32 个 FP64 核与 8 个全新的 Tensor Core。同时,每个 SM 也包含了 4 个纹理处理单元。


图 4:带有 84 个 SM 单元的完整 Volta GV100


加上 84 个 SM,一个完整的 GV100 GPU 总共有 5376 个 FP32 核、5376 个 INT32 核、2688 个 FP64 核、672 个 Tensor Core 与 336 个纹理单元。每块内存控制器都连接了一个 768 KB 的 2 级缓存,每个 HBM2 DRAM 堆栈都由一对内存控制器控制。一个完整的 GV100 GPU 包括了总共 6144 KB 的二级缓存。图 4 展示了一个带有 84 个 SM 单元的完整 GV100 GPU(不同产品可以使用不同的 GV100 配置)。Tesla V100 加速器使用了 80 个 SM 单元。







请到「今天看啥」查看全文