Nvidia Ampere 架构深度解析
导读
2020 年 5 月 14日,NVIDIA 创始人兼首席执行官黄仁勋在 NVIDIA GTC 2020 主题演讲中介绍了基于最新 Ampere 架构的 NVIDIA A100 GPU。这篇文章将会带你深入了解这颗 GPU 并介绍 Ampere 结构的一些关键特性。
本文翻译自
https://devblogs.nvidia.com/nvidia-ampere-architecture-in-depth/
Part1.
NVIDIA A100 Tensor Core GPU介绍
NVIDIA A100 Tensor Core GPU 基于最新的 Ampere 架构,相比上一代 NVIDIA Tesla V100 GPU 增加了了许多新特性,在 HPC,AI 和数据分析领域都有更好的表现。
A100 为 GPU 计算和深度学习应用提供了超强扩展性,可以运行在单卡或多卡 GPU 工作站、服务器、集群、云数据中心、 边缘计算系统以及超算中心。A100 GPU 可以构建灵活,弹性且高性能的数据中心。
A100 搭载了革命性的多实例 GPU(Multi-instance GPU 或 MIG)虚拟化与 GPU 切割能力,对云服务供应商(CSPs)更加友好。当配置为 MIG 运行状态时,A100 可以通过分出最多 7 个核心来帮助供应商提高 GPU 服务器的利用率,无需额外投入。A100 稳定的故障分离也能够让供应商安全的分割GPU。
A100 带有性能强劲的第三代 Tensor Core,支持更为丰富的 DL 和 HPC 数据类型,同时具有比 V100 更高的计算吞吐。A100 新的稀疏(Sparsity)特性能够进一步让计算吞吐翻倍。
新的 TensorFloat-32 (TF32) 核心运算单元让 A100 在 DL 框架和 HPC 中轻松加速以 FP32 作为输入/输出数据的运算,比 V100 FP32 FMA 操作快10倍,稀疏优化(sparse)下可以达到20倍。在 FP16/FP32 的混合精度下也能达到 V100 的 2.5 倍,稀疏优化后达 5 倍。
新的 Bfloat16(BF16)/FP32 混合精度 Tensor Core 运算单元和 FP16/FP32 混合精度以相同的频率运行。Tensor Core 对 INT8,INT4 和 INT1 的加速为 DL 推理提供了全面支持,A100 sparse INT8 比 V100 INT8 快 20 倍。在 HPC 中,A100 Tensor 核心的 IEEE 兼容 FP64 处理让它的表现是 V100的 2.5 倍。
A100 不仅仅可以胜任复杂的大型工作,它同样可以有效率的加速许多小型工作。A100 能够让搭建的数据中心根据不同的工作需求做调整,提供更细致的工作配置,更高的 GPU 利用率以及更好的 TCO。
如图 2 所示,相对于 V100,A100 在训练和推理工作上提供了额外的加速。图 3 同样显示了 A100 在不同 HPC 应用上的表现有了显著的提升。
图 2 . A100 GPU 在 BERT 深度学习训练和推理场景中的性能与 NVIDIA Tesla V100 和 NVIDIA Tesla T4 的对比
图 3. NVIDIA Tesla V100 A100 GPU HPC 应用速度提升与 NVIDIA Tesla V100 的对比
Part2.
核心特性
台积电 7nm 制程的 Ampere 架构 GA100 GPU 让 A100 在 826mm 的大小上拥有了 542 亿个晶体管
▍A100 GPU 流式多处理器
新的流式多处理器(SM)让 Ampere 架构的 A100 Tensor Core GPU 得到了显著的性能提升,在 Volta 和 Turning SM 架构上有了许多新特性,同时增加了许多新功能。
A100 的第三代 Tensor Core 增强了操作数共享并提高了效率,同时添加了功能强大的新数据类型,其中包括:
能够加速 FP32 数据处理的 TF32 Tensor Core 指令
适用于 HPC 的 IEEE 兼容的 FP64 Tensor Core 指令
和 FP16 达到同样吞吐的 BF16 Tensor Core 指令
表1. A100 Tensor Core GPU 性能详单
A100 Tenso Core 的稀疏性(Sparsity)支持可以利用 DL 网络中细粒度的结构稀疏性来达到两倍的吞吐量。稀疏特性会在后文中讲解。
A100 更大更快的 L1 缓存和 shared memory 能够让它在每个流处理器上提供相当于 V100 1.5 倍的总容量(192 KB vs. 128 KB),为 HPC 和 AI 任务提供进一步加速。
一些新的流处理器特性可以提高效率及可编程性,同时降低软件复杂度。
▍40 GB HBM2 和 40 MB L2 缓存
为了满足其巨大的计算吞吐量,NVIDIA A100 GPU 拥有 40 GB 的高速 HBM2 显存以及顶尖 1555GB/s 的显存带宽,与 Tesla V100 相比提升了 73%。
此外,A100 GPU 拥有更多的片上存储,其中包括 40 MB 的 L2 缓存(比V100大近7倍)以最大化计算性能。借助新的分区交叉开关结构,A100 L2 缓存读取带宽是 V100 的 2.3 倍。
为了利用大容量片上存储进行性能优化,NVIDIA Ampere 架构提供了 L2 缓存驻留控制,让开发者自行决定保留或舍弃缓存数据。
A100 还增加了计算数据压缩功能,以使 DRAM 带宽和 L2 带宽最多增加 4 倍,L2 容量最多增加 2 倍。
▍多实例GPU
新的多实例GPU(MIG)特性能让 A100 被安全的分割成最多 7 个 GPU 实例,能够为多用户提供隔离的 GPU 资源,以加速他们的应用。
在 MIG 中每个 GPU 实例都有独立且隔离的显存通道、片上 crossbar 端口、SM、L2 缓存、显存控制器和 DRAM 地址总线。这样即使在个别实例负载耗尽了缓存或或占满了 DRAM 带宽也能保证其他实例中运行的任务具备可预测的吞吐与延迟。
MIG 提高了 GPU 的硬件利用率,为每个客户端(可能是虚拟机,容器或进程)提供确定的 QoS 和相应隔离措施。
MIG 特别适合那些有多租户需求的供应商,它能保证各个客户端不会对其他客户端造成影响,同时提供更强的安全性和更高的 GPU 利用率。
▍第三代 NVLink
A100 配置的第三代高速 NVLink 和新的 NVSwitch 显著提升了多 GPU 的拓展性, 性能和可靠性。每个 GPU 和交换机都有了更多的互联,新一代 NVLink 大大增加了 GPU 之间的通信带宽并改进了故障检测和恢复特性。
第三代 NVLink 每对信号线(称为 lane)带宽提升至 50 Gbit/s,几乎是 V100(25.78 Gbit/s)的两倍;
单向 4 对信号线带宽为 25 GB/s,双向 50 GB/s 构成一个 link。与 V100 相比,每个 link 保持同样带宽前提下,所需信号线数量仅为 V100 一半;
A100 总共 12 个 link,总带宽 600 GB/s,是 V100 的两倍;
第三代 NVSwitch 有 36 个 port,每个 port 单向带宽为 25 GB/s。
▍NVIDIA Magnum IO 和 Mellanox 互连解决方案的支持
A100 完全兼容 NVIDIA Magnum IO 和 Mellanox 的 InfiniBand 以及以太网互连解决方案,加速多节点互联。
Magnum IO API 整合了计算,网络,文件系统以及存储,最大化多 GPU,多节点的 I/O 性能。
通过 CUDA-X 库接口,可提升 AI 数据分析,可视化等多方面的 I/O 表现。
▍PCIe Gen 4 和 SR-IOV
A100 支持第四代 PCIe 接口,在 x16 连接下提供了接近第三代两倍的带宽(31.5 GB/s vs. 15.75 GB/s)。这种速度在搭配支持 PCIe 4.0 的 CPU 时将更加有利,同时支持更快的网络连接,比如 200G/s 的 InfiniBand。
A100 同时还支持 SR-IOV,能够让多个进程或者虚拟机共享一个 PCIe 接口。
▍改进的故障检测,分离和控制
最大化保证 GPU 可用时间至关重要,尤其在大规模多 GPU 集群和单 GPU 多租户环境(如 MIG)下尤其明显。为此需要及时进行故障检测、故障遏制、自动纠错而不是强制重启 GPU。
A100 包含了这些新功能,在文章的后面会提到。
▍异步拷贝
A100 包含了一种新的异步拷贝指令,能够从 global memory 将数据直接加载到 SM shared memory,减轻了中间寄存器堆(RF)的需求。异步技术减少了 RF 的带宽,能够更加有利的利用显存并降低功耗。如名所示,异步拷贝在 SM 做其他运算的时候也可以进行。
▍异步 barrier
A100 GPU 在 shared memory 中提供了硬件加速的 barrier,可以通过 CUDA 11 符合 ISO C++ 的 barrier 对象的形式使用它们。
异步 barrier 将 arrive 和 wait 操作分开,可将从 global memory 到 shared memory 的异步拷贝与 SM 中的计算穿插起来。它们可以用来实现使用 CUDA 线程的生产者-消费者模型。
异步 barrier 还提供了在不同粒度上同步 CUDA 线程的机制,而不仅仅是在 warp 或 block 级别同步。
▍任务图加速
CUDA 任务图为向 GPU 提交任务提供了更高效的模型。
一个任务图由一系列操作组成,比如显存复制和启动 kernel,它们由依赖联系在一起。任务图保证了一种“定义一次,执行多次”的执行流程。一个事先定义好的任务图可以让多个 kernel 在一次操作中启动,大大提升了应用的效率和性能。
A100 加入了一些硬件特性,使任务图网格中的路径速度变得更快。
Part3.
A100 GPU 硬件结构
NVIDIA GA100 GPU 由多个 GPU 处理群集(GPC),纹理处理群集(TPC),流式多处理器 (SM) 和 HBM2 显存控制器组成。
GA100 GPU 的完整实现包括以下单元:
每个完整 GPU 有 8 个 GPC,每个 GPC 有 8 个 TPC,每个 TPC 有 2 个SM,每个 GPC 有 16 个SM,总共 128 个 SM;
每个 SM 有 64 个 FP32 CUDA 核,总共 8192 个 FP32 CUDA 核;
每个 SM 有 4 第三代 Tensor Core,总共 512 个第三代 Tensor Core;
总共 6 个 HBM2 堆栈,12 个 512 位显存控制器;
基于 GA100 GPU 实现的 A100 Tensor Core GPU 包括以下单元:
每个 GPU 有 7 个 GPC,每个 GPC 有 7 个或 8 个 TPC ,每个 TPC 有 2 个 SM,每个 GPC 最多 16 个 SM,总共 108个SM;
每个 SM 有 64 个 FP32 CUDA 核,总共 6912 个 FP32 CUDA 核;
每个 SM 有 4 个第三代 Tensor Core,总共 432个第三代 Tensor Core;
总共 5个HBM2 堆栈,10 个 512 位显存控制器;
图 4 展示了一颗带有 128 个 SM 的完整 GA100 GPU。基于 GA100 的 A100 只有 108 个 SM。
图 4. 带有 128 个 SM 的完整GA100 GPU。基于 GA100 的 A100 只有 108 个 SM。
▍A100流处理器(SM)结构
新的 A100 SM 显著提升了性能,在 Volta 和 Turing SM 架构的特性基础上新增了许多功能。
A100 SM 示意图如图 5 所示。
图5. GA100流处理器(SM)
Volta 和 Turing 每个 SM 有 8 个 Tensor Core,每个 Tensor Core 在每个时钟周期内可执行 64 个 FP16/FP32 混合精度融合乘法(FMA)计算。
A100 SM 引入新的第三代 Tensor Core,每个 Tensor Core 在每个时钟周期内可执行 256 个 FP16/FP32 FMA 计算。
A100 每个 SM 有 4 个 Tensor Core,每个 SM 提供 1024 个密集的 FP16/FP32 FMA 操作,与 Volta 和 Turing 相比,每个 SM 的算力翻倍。
以下是 SM 的核心特性,详细信息会在后文介绍:
第三代Tensor Core 特性:
支持的数据类型有 FP16、BF16、TF32、FP64、INT8、INT4 和 INT1;
利用深度学习网络的细粒度结构化稀疏性,其性能相比标准 Tensor Core 计算翻倍;
A100 中的 TF32 Tensor Core 计算可在 DL和 HPC 中容易地加速 FP32 输入/输出数据,比 V100 FP32 FMA 快 10 倍,稀疏优化的情况下达到 20 倍;
FP16/FP32 Tensor Core 混合精度计算为 DL 提供了更强的性能,是 V100 的 2.5 倍,稀疏优化下达到 5 倍;
BF16/FP32 混合精度和 FP16/FP32 在同一速率下运行;
FP64 Tensor Core 为 HPC 提供前所未有的双精度处理性能,速度是 V100 FP64 DFMA 的 2.5 倍;
带稀疏优化的 INT8 Tensor Core DL 推理速度是 V100 INT8 的 20 倍;
每个 SM shared memory / L1缓存 共有 192 KB,是V100 SM的1.5倍;
新的异步拷贝指令能够从 global memory 中将数据直接加载到 SM shared memory,可选地绕过 L1 缓存,降低中间寄存器堆(RF)的需求;
与异步拷贝指令搭配的异步 barrier;
新的 L2 缓存管理和驻留控制指令;
新的 warp 级别规约指令(由 CUDA 协作组提供支持);
许多可以减少软件复杂度的编程性改进;
图 6 为 V100 和 A100 FP16/FP32/FP64/INT8 Tensor Core 计算对比示意图。
图 6. 不同数据类型情况下 A100 Tensor Core 计算与 V100 Tensor Core 计算以及标准计算单元的比较
注 1:每个 GPU 吞吐做了聚合;
注 2:A100 在 FP16/TF32/INT8 情况下使用了稀疏 Tensor Core 计算;
注 3:左上角图中显示有 2 个 V100 FP16 Tensor Core,这是因为每个 V100 SM 分区有 2 个 Tensor Core,比 A100 多一倍;
图 7. TensorFloat-32(TF32) 具有与 FP32 相同的动态范围,与 FP16 相同的精度(左);A100 用 TF32 加速张量计算,支持 FP32 输入和输出数据(右),可以轻松集成到 DL 和 HPC 程序中,并自动加速 DL 框架
当前,AI 训练过程中如果未使用 Tensor Core 加速,默认会使用 FP32。NVIDIA Ampere 架构带来 TF32 的新数据类型,让用户无感知地使用 Tensor Core 加速。非 Tensor 的计算仍然会使用 FP32 数据通道,而 TF32 Tensor Core 会读取 FP32 数据,使用与 FP32 范围相同但有效位宽更短的内部精度 TF32 进行计算,最后输出标准 IEEE FP32 结果。TF32 包括 8-bit 指数(和FP32相同),10-bit 尾数和 1 符号位。
和 Volta 类似,AI 训练时利用自动混合精度(AMP)只需改几行代码就能利用 FP16 和 Tensor Core 加速。如果 A100 上开启 AMP,可以相比 TF32 进一步获得 2 倍性能提升。
总结一下,用户在做 DL 训练时可以通过如下步骤:
默认情况下使用 TF32 Tensor Core,用户无需改任何代码,与 V100 FP32 性能相比有 10 倍提升;
为了达到最高训练速度,可以稍微改几行代码使用基于 FP16 或 BF16 的混合精度训练,相比 A100 TF32 有 2 倍性能提升,相比 V100 FP32 有 20 倍提升;
▍A100 Tensor Core 加速 HPC 应用
HPC 应用对性能的追求永无止境,大量科研领域依赖双精度 FP64 计算。为了满足 HPC 应用对性能越来越高的需求,A100 提供了 IEEE 兼容的 FP64 Tensor Core 计算,相比 V100 FP64 有 2.5 倍性能提升。A100 上新的双精度矩阵乘法指令取代了 V100 上的 8 条 DFMA 指令,减少了取指令、调度开销、寄存器读取、数据传输和 shared memory 读取带宽。
A100 每个 SM 的计算次数为 64 FP64 FMA/clock(或128 FP64 FMA/clock), 是 V100 的 2 倍。拥有 108 个 SM 的 A100 可以最多再 FP64 下达到 19.5 TFLOPS,是 V100 的 2.5 倍。
有了这些新格式的支持,A100 可以被用于 HPC 任务,迭代求解器以及其他的 AI 算法。
表 2. A100 比 V100 的速度提升(TC=Tensor Core,GPU在各自的时钟速度下)。1) 使用新的Sparsity特性的有效TOPS/TFLOPS。
▍A100 引入的细粒度结构化稀疏
NVIDIA 在 A100 中引入了细粒度结构化稀疏,一种能在深度神经网络中使计算吞吐翻倍的方法。
在深度学习中,是可能有稀疏性的,因为在学习过程中,单个权重的重要性不断演化,到了网络训练结束时,只有一部分权重对学习输出有决定性,其余的权重就不再需要了。
细粒度结构化稀疏在稀疏模式中引入了一些约束,能让硬件更有效率的对操作数做对齐。因为深度学习网络可以根据训练的反馈更新权重,NVIDIA 工程师发现结构性约束并不会影响推理训练网络的准确性。这使得在稀疏优化可以用在加速推理上。
对于训练加速,稀疏性必须在这个过程的早期就加入,以得到性能的提升。而对于能够在不丢失精准度下加速训练的方法目前还在研究中。
▍稀疏矩阵定义
该结构被强制性定义为一个 2:4 的稀疏矩阵,每一个 4 元组都有且只有 2 个非 0 值。
如图 9 所示,A100 支持按行 2:4 结构性稀疏:
图 9. A100 细粒度结构化稀疏流程,采用 4 选 2 剪枝对训练过的权重进行置零,之后经过简单而通用的微调非零权重的步骤,这些权重被压缩后,数据占用和带宽减少了 2 倍,A100 稀疏张量核心通过跳零,使数学吞吐量增加了一倍
NVIDIA 为上述 2:4 结构化稀疏模式开发了简单通用的代码段用于深度神经网络稀疏化。
首先使用稠密权重进行训练,然后进行细粒度结构化剪枝,最后通过额外的训练步骤对剩余的非零权重进行微调。这种方法基于对视觉、物体检测、分割、自然语言建模和翻译等数十种网络的评估,推理精度几乎没有损失。
A100 Tensor Core GPU 包含新的 Sparse Tensor Core 指令,该指令可以跳过对带零值的输入进行计算,从而使 Tensor Core 的计算吞吐量翻了一番。图 9 显示了 Tensor Core 如何使用压缩元数据(非零指数)将压缩后的权重与适当选择的激活值匹配,以输入到 Tensor Core 点积计算中。
▍L1 数据缓存和 shared memory 的结合
NVIDIA 最早在 V100 中将 L1 数据缓存和 shared memory 子系统架构结合在一起,显著提高了性能,同时也简化了编程,减少了达到或接近峰值应用性能所需的调优。将数据缓存和共享显存功能结合到单个显存块中,可以为两种类型的显存访问提供最佳的整体性能。
L1 数据缓存和 shared memory 加起来是 A100 192 KB/SM vs V100 128 KB/SM
▍同时执行FP32 和 INT32 指令
与 V100 和 Turing GPU 类似,A100 SM 还包括独立的 FP32 和 INT32 内核,可以在全吞吐量下同时执行 FP32 和 INT32 指令,同时还能提高指令发出量。
许多应用程序的内循环都有执行指针算术(整数存储器地址计算)与浮点计算相结合的内循环,这些内循环受益于 FP32 和 INT32 指令的同时执行。流水线循环的每一次迭代都可以更新地址(INT32 指针算术),并为下一次迭代加载数据,同时在 FP32 中处理当前的迭代。
▍A100 HBM2 DRAM 子系统
随着 HPC、AI 和分析数据集的持续增长,以及寻找解决方案的问题越来越复杂,对 GPU 显存容量和带宽的要求越来越高。
Tesla P100 是世界上第一个支持高带宽 HBM2 显存技术的 GPU 架构,而 Tesla V100 提供了更快、更高效、更大容量的 HBM2 实现。A100 再次提高了 HBM2 性能和容量的指标。
HBM2 显存是由位于与 GPU 相同的物理封装上的显存堆栈组成,与传统的 GDDR 5/6 显存设计相比,大大节省了功耗和面积,允许更多的 GPU 安装在系统中。更多关于 HBM2 技术的基本信息,请参阅 NVIDIA Tesla P100: The Most Advanced Datacenter Accelerator Ever Built 白皮书。
A100 GPU 在其 SXM4 风格的电路板上包含 40 GB 高速 HBM2 DRAM 显存。该显存被组织成 5 个 HBM2 活动堆栈,每个堆栈有 8 个显存颗粒。A100 HBM2 的时钟频率为 1215 MHz (DDR),可提供 1555 GB/秒的显存带宽,比 V100 显存带宽高出 1.7 倍以上。
▍ECC显存恢复能力
A100 HBM2 存储子系统支持单 bit 纠错和双 bit 错误检测(SECDED)错误纠正代码(ECC)以保护数据。
ECC 为对数据损坏敏感的计算应用程序提供了更高的可靠性。在 GPU 处理大型数据集或长时间运行应用程序的大规模集群计算环境中,这一点尤其重要。
A100 中的其他关键存储器结构也受到 SECDED ECC 的保护,包括 L2 缓存和 L1 缓存以及所有 SM 内的寄存器文件。
▍A100 L2 缓存
A100 GPU 包含 40 MB L2 缓存,比 V100 L2 缓存大 6.7倍。
L2 缓存分为两个分区,以实现更高的带宽和更低的延迟内存访问。
每个 L2 分区都会本地化和缓存数据,以供直接连接到该分区的 GPC 中的 SM 进行显存访问。这种结构使 A100的带宽相比 V100 提升了 2.3 倍。
硬件高速缓存一致性在整个 GPU 中保持了 CUDA 编程模型,应用程序可以自动利用新的二级缓存的带宽和延迟优势。
L2缓存是GPC和SM的共享资源,位于GPC之外。A100 L2 缓存大小的大幅增加显著提高了许多 HPC 和 AI 工作负载的性能,因为更大的数据集和模型部分现在可以以比从 HBM2 内存读取和写入更高的速度进行缓存和重复访问。一些受DRAM带宽限制的工作负载将从更大的L2缓存中受益,例如使用小批量的深度神经网络。
为了优化容量利用率,NVIDIA Ampere架构提供了L2缓存驻留控制,让你可以管理保留或驱逐缓存中的数据。你可以将L2缓存中的一部分留出用于持久性数据访问。
例如,对于DL推理工作负载,可以在L2中持久性地缓存乒乓缓冲区,以加快数据访问速度,同时也避免了对DRAM的回写。对于生产者-消费者链,如DL训练中发现的那些,L2缓存控制可以优化跨写-读数据依赖关系的缓存。在LSTM网络中,递归权重可以在L2中优先缓存和重用。
NVIDIA Ampere架构增加了计算数据压缩功能,可加速非结构化稀疏度和其他可压缩的数据模式。L2压缩可使DRAM读/写带宽提高4倍,L2读取带宽提高4倍,L2容量提高2倍。
表3. NVIDIA数据中心GPU的比较。
1)峰值速率基于GPU升压时钟。
2)A100 SM中的4个张量核心的原始FMA计算能力是GV100 SM中8个张量核心的2倍。
3) 使用新的Sparsity特性的有效TOPS/TFLOPS。
注:由于A100 Tensor Core GPU是专为安装在高性能服务器和数据中心机架上,以支持AI和HPC计算工作负载而设计的,因此它不包括显示连接器、用于光线追踪加速的NVIDIA RT Core或NVENC编码器。
Part4.
计算能力
A100 GPU支持新的计算能力8.0。表4比较了NVIDIA GPU架构的不同计算能力的参数。
表4. 计算能力:计算能力。GP100 vs. GV100 vs. GA100。
Part5.
MIG结构
虽然许多数据中心的工作负载在规模和复杂度上都在不断扩大,但有些加速任务的要求并不高,例如早期阶段的开发或简单模型上的低批处理量的推理。数据中心管理者的目标是保持较高的资源利用率,因此理想的数据中心加速器不只是变大,它还能有效地加速许多较小的工作负载。
新的MIG可以将GPU划分为最多7个实例,以达到最大利用率,有效的提高了每个用户和应用的访问量。
图10显示了Volta MPS如何允许多个应用程序在不同的GPU执行资源(SM)上同时执行。然而,由于内存系统资源在所有的应用程序之间共享,如果一个应用程序对DRAM带宽的要求很高,或者它的请求超额占用了L2缓存,就会干扰其他应用程序。
图11所示的A100 GPU新MIG能力可以将单个GPU分成多个GPU分区,称为GPU实例。每个实例的SM在整个内存系统中都有独立的、隔离的路径--片上的横线端口、L2缓存库、内存控制器和DRAM地址总线都被唯一地分配给单个实例。这确保了单个用户的工作负载能够以可预测的吞吐量和延迟运行,即使其他任务正在破坏自己的缓存或使其DRAM接口饱和,也能以相同的L2缓存分配和DRAM带宽运行。
利用这一功能,MIG可以对可用的GPU计算资源进行分区,为不同的客户端(如虚拟机、容器、进程等)提供定义的服务质量(QoS),并进行故障隔离。它可以让多个GPU实例在单个物理A100 GPU上并行运行。MIG还保持了CUDA编程模型不变,以减少编程工作量。
CSP可以使用MIG提高其GPU服务器的利用率,在不增加成本的情况下,提供多达7倍的GPU实例。MIG支持CSP所需的必要的QoS和隔离保证,以确保一个客户端(VM、容器、进程)不能影响另一个客户端的工作或调度。
通过基于NVIDIA Ampere架构的GPU,您可以在其新的虚拟GPU实例上看到并安排作业,就像物理GPU一样。MIG可与Linux操作系统及其管理程序器配合使用。用户可以使用Docker Engine等运行时程来运行MIG的容器,不久也会推出使用Kubernetes进行容器协调。
图10.CSP多用户节点 今天的CSP多用户节点(A100前)。加速的GPU实例只能在全物理GPU颗粒度下供不同组织的用户使用,即使用户应用不需要全物理GPU,也可以使用。
图11.CSP多用户与MIG图 CSP多用户与MIG图。来自相同或不同组织的多个独立用户可以在一个物理GPU内分配自己的专用的、受保护的、隔离的GPU实例。
Part6.
错误和故障的检测、隔离和控制
通过检测、控制并经常纠正错误和故障,而不是强迫GPU重置,来提高GPU的正常运行时间和可用性至关重要。这在大型、多GPU集群和单GPU、多租户环境(如MIG配置)中尤为重要。
NVIDIA Ampere架构的A100 GPU包含了新的技术,以改善错误/故障归属(对导致错误的应用程序进行归属)、隔离(隔离有故障的应用程序,使其不会影响到在同一GPU上或GPU集群中运行的其他应用程序)和遏制(确保一个应用程序中的错误不会泄露并影响到其他应用程序)。这些故障处理技术对于MIG环境来说特别重要,可以确保共享单个GPU的客户端之间的适当隔离和安全。
与NVLink连接的GPU现在具有更强大的错误检测和恢复功能。远程GPU的页面故障会通过NVLink传回源GPU。远程访问故障通信是大型GPU计算集群的关键弹性功能,有助于确保一个进程或虚拟机的故障不会导致其他进程或虚拟机的故障。
A100 GPU包含了其他一些新的和改进的硬件功能,可提升应用性能。更多信息,请参阅即将发布的NVIDIA A100 Tensor Core GPU架构白皮书。
Part7.
针对NVIDIA Ampere架构GPU的CUDA 11改进
数以千计的GPU加速应用都是在NVIDIA CUDA并行计算平台上构建的。CUDA的灵活性和可编程性使其成为研究和部署新的DL和并行计算算法的首选平台。
NVIDIA Ampere架构GPU旨在提高GPU的可编程性和性能,同时降低软件复杂度。NVIDIA Ampere架构GPU和CUDA编程模型的进步,可加速程序执行速度,降低许多操作的延迟和开销。
新的CUDA 11功能为第三代Tensor Cores、Sparsity、CUDA图形、多实例GPU、L2缓存驻留控制以及NVIDIA Ampere架构的其他一些新功能提供了编程和API支持。
有关新的CUDA功能的更多信息,请参阅即将发布的NVIDIA A100 Tensor Core GPU架构白皮书。有关新的DGX A100系统的更多信息,请参阅《用NVIDIA DGX A100定义AI创新》。有关开发者专区的更多信息,请参阅NVIDIA Developer,有关CUDA的更多信息,请参阅新的CUDA编程指南。
Part8.
结语
NVIDIA的使命是加速我们这个时代的达芬奇和爱因斯坦的工作。科学家、研究人员和工程师们正专注于利用高性能计算(HPC)和人工智能解决世界上最重要的科学、工业和大数据挑战。
NVIDIA A100 Tensor Core GPU为我们的加速数据中心平台带来了下一个巨大的飞跃,在各个规模上提供了无与伦比的加速,让这些创新者能够在有生之年完成他们的终身工作。A100可为众多应用领域提供动力,包括HPC、基因组学、5G、渲染、深度学习、数据分析、数据科学和机器人等。
推进当今最重要的HPC和AI应用--个性化医疗、对话式AI和深度推荐系统--都需要研究人员去做大做强。A100为NVIDIA数据中心平台提供动力,该平台包括Mellanox HDR InfiniBand、NVSwitch、NVIDIA HGX A100以及用于扩展的Magnum IO SDK。这个集成的技术团队能有效地扩展到数万个GPU,以前所未有的速度训练最复杂的AI网络。
A100 GPU的全新MIG功能可以将每个A100划分为多达7个GPU加速器,以实现最佳的利用率,有效提高GPU资源利用率,让更多的用户和GPU加速的应用能够获得更多的GPU访问量。通过A100的多功能性,基础架构经理可以最大限度地发挥数据中心中每一个GPU的效用,以满足不同规模的性能需求,从最小的工作到最大的多节点工作负载。
推荐阅读
(点击标题可跳转阅读)
AI教程|用滴滴云Notebook笔记本服务实现Yolo3口罩检测