找回密码
 立即注册
查看: 350|回复: 0

显卡的完整剖析:NVIDIA A100 案例研究

[复制链接]
发表于 2022-7-22 10:25 | 显示全部楼层 |阅读模式
在我们最新的博文中,我们将焦点放在 NVIDIA A100 上,以对其背后的技术、组件、架构以及内部创新如何使它们成为深度学习的最佳工具进行技术检查。
在本文中,我们将对显卡背后的技术、它们的组件、架构以及它们与机器学习的关系进行技术检查。
显卡的任务非常复杂,但它的概念和组件却很容易理解。我们将了解视频卡的基本组件以及它们的作用。在每个阶段,我们将使用 NVIDIA A100 - 40 GB 作为当前最先进的显卡的示例。A100 可以说是市场上可用于深度学习的最佳单 GPU。
显卡故障

图形卡,通常称为视频卡、图形适配器、显示卡或显示适配器,是一种处理数据并产生图形输出的扩展卡。因此,它通常用于视频编辑、游戏和 3D 渲染。然而,近年来,它已成为机器学习应用程序和加密货币挖掘的首选动力源。显卡在以下组件的帮助下完成了这些高要求的任务:

  • 图形处理单元 (GPU)
  • 数据处理单元 (DPU)
  • 显存 (VRAM)
  • 视频 BIOS (VBIOS)
  • 稳压器模块 (VRM)
  • 主板接口
  • 互连接口
  • 网络接口和控制器
  • 输出接口
  • 冷却系统



NVidia A100 硬件故障(来源)

图形处理单元 (GPU)

经常被误认为是显卡本身。与计算机的 CPU 不同,GPU 旨在处理图形渲染所需的更复杂的数学和几何计算。与普通 CPU 相比,GPU 平均具有更多的晶体管和更高密度的计算核心以及更多的算术逻辑单元 (ALU)。
这些单位有四种分类:

  • 流式多处理器 (SM)
  • 加载/存储 (LD/ST) 单元
  • 特殊功能单元 (SFU)
  • 纹理映射单元 (TMU)
1)流式多处理器(SM) 是一种 执行实体,由共享寄存器空间的内核集合、共享内存和 L1 缓存组成。一个 SM 中的一个核心可以同时执行多个线程。说到SM的核心,主要有两大对手:

  • NVIDIA计算统一设备架构 (CUDA) 或 Tensor 内核
  • AMD流处理器
一般来说,NVIDIA 的 CUDA 核心和张量核心被认为更加稳定和优化,特别是对于机器学习应用程序。过去十年发布的每款 Nvidia GPU 上都配备了 CUDA 内核,但 Tensor Core 是一个较新的补充。在计算方面,张量核心比 CUDA 核心快得多。实际上,CUDA 核心每个时钟周期只能执行一次操作,但张量核心每个时钟周期可以执行多个操作。在准确度和处理速度方面,CUDA 核心不如机器学习模型的 Tensor 核心强大,但对于某些应用程序来说已经绰绰有余。因此,这些是训练机器学习模型的最佳选择。



NVIDIA A100 Streaming Multiprocessor 的核心架构(来源)

这些内核的性能以 FLOPS 为单位(每秒浮点运算)来衡量。对于这些测量,NVIDIA A100 达到了破纪录的数值:
规格
FP649.7 TFLOPS
FP64 张量核心19.5 TFLOPS
FP3219.5 TFLOPS
FP32 张量核心156 TFLOPS
BFLOAT16 张量核心312 TFLOPS
FP16 张量核心312 TFLOPS
INT8 张量核心624 TFLOPS
根据NVIDIA 文档,使用稀疏格式进行数据表示甚至可以帮助将其中一些值加倍。
在 A100 内部,缓存管理以特定方式完成,以使内核和 VRAM 之间的数据传输尽可能快速和顺畅。为此,A100 GPU 具有 3 级缓存 L0、L1 和 L2:
L0 指令缓存是单个流式多处理器子处理块私有的,L1 指令缓存是 SM 私有的,L2 缓存是统一的,在所有 SM 之间共享,并为指令和数据保留。A100 中的 L2 缓存比之前所有 GPU 的缓存都大,大小为 40MB,它充当 L1 私有缓存和 40GB HBM2 VRAM 之间的桥梁,我们将在本文后面详细介绍。



NVIDIA A100(40GB VRAM 版本)内部的缓存层次结构(来源)

2)加载/存储 (LD/ST)单元允许线程在每个时钟周期执行多个数据加载和存储到内存操作。在 A100 中,这些单元引入了一种异步复制数据的新方法,它可以加载可以在线程之间全局共享的数据,而不会消耗额外的线程资源。这种新引入的方法使共享内存和本地缓存之间的数据加载时间增加了大约 20%。
3)特殊功能单元(SFU) 有效地对矢量数据执行结构化算术或数学函数,例如正弦、余弦、倒数和平方根。
4)纹理映射单元(TMU) 处理特定于应用程序的任务,例如图像旋转、调整大小、添加失真和噪声以及移动 3D 平面对象。
数据处理单元 (DPU)

DPU 是显卡的非标准组件。数据处理单元是新推出的一类可编程处理器,它加入了 CPU 和 GPU 作为计算的三个主要组件。因此,DPU 是一个独立的处理器,通常在 ML 和数据中心中实现。它提供了一组加速的软件管理能力:网络、存储、安全。A100 显卡搭载最新的 BlueField-2 DPU,在处理具有大规模多输入多输出 (MIMO) 的工作负载、AI-on-5G 部署以及更专业的工作负载(如作为信号处理或多节点训练。



NVIDIA A100 BlueField-2 数据处理单元架构(来源)

显存 (VRAM)

在最广泛的定义中,视频随机存取存储器 (VRAM) 类似于系统 RAM。VRAM 是 GPU 使用的一种缓存,用于保存图形或其他应用程序所需的大量数据。保存在 VRAM 中的所有数据都是暂时的。传统的 VRAM 通常比系统 RAM 快得多。而且,更重要的是,它在物理上接近 GPU。它直接焊接到显卡的PCB上。这可以以最小的延迟实现非常快速的数据传输,从而实现高分辨率图形渲染或深度学习模型训练。



NVIDIA GeForce RTX 3050 VRAM 定位(来源)

在当前的显卡上,VRAM 有多种尺寸、速度和总线宽度。目前,实施了多种技术;GDDR 和 HMB 有各自的变体。十多年来,GDDR(SGRAM 双倍数据速率)一直是行业标准。它实现了高时钟速度,但代价是物理空间和高于平均功耗。另一方面,HBM(高带宽内存)是 VRAM 技术的最新技术。它消耗更少的电力,并且能够堆叠以增加内存大小,同时占用更少的显卡空间。它还允许更高的带宽和更低的时钟速度。NVIDIA A100 支持最新一代 HBM 内存,HBM2e 大小为 80GB,带宽高达 1935 GB/s。

稳压器模块 (VRM)
它确保 GPU 在恒定电压下接收必要的功率。低质量的 VRM 会产生一系列问题,包括 GPU 在压力下关机、超频性能受限,甚至缩短 GPU 寿命。显卡从现代电源单元 (PSU) 接收 12 伏的电力。另一方面,GPU 对电压敏感,无法维持该值。这就是 VRM 发挥作用的地方。它将 12 伏电源降低到 1.1 伏,然后将其发送到 GPU 内核和内存。A100 的功率级及其所有 VRM 可维持高达 300 瓦的功率输出。
A100 使用 8 针电源连接器从电源单元接收电源,然后将电流转发到 VRM,VRM 以 1.1 VDC 电流为 GPU 和 DPU 供电,额定最大强制限制为 300 W和 400 W 的理论极限。
主板接口

这是插入系统主板的显卡的子组件。正是通过这个接口或“插槽”,显卡和计算机可以交换数据和控制命令。在 2000 年代初期,不同制造商实现了多种类型的接口:PCI、PCIe、PCI-X 或 AGP。但是,现在 PCIe 已成为主要所有显卡制造商的首选接口。
PCIe 或 PCI Express 是 Peripheral Component Interconnect Express 的缩写,是最常见的标准化主板接口,用于连接显卡、硬盘驱动器、主机适配器、SSD、Wi-Fi 和其他以太网硬件连接。



主板上的PCI Express插槽(从上到下:x4、x16、x1和x16),底部PCI 32bit(来源)

PCIe 标准有不同的世代,每一代都有速度和带宽的重大提升:
带宽千兆传输频率
PCIe 1.08 GB/秒2.5GT/s2.5GHz
PCIe 2.016 GB/秒5GT/s5GHz
PCIe 3.032 GB/秒8GT/s8GHz
PCIe 4.064 GB/秒16GT/s16GHz
PCIe 插槽可以在不同的物理配置中实现:x1、x4、x8、x16、x32。该数字表示在插槽中实现了多少通道。我们拥有的通道越多,我们可以在显卡和主板之间传输的带宽就越高。NVidia A100 配备了 PCIe 4.0 x16 接口,这是该接口的市售性能最高的一代。
互连接口

互连接口是一种总线,它使系统构建者能够连接安装在单个主板上的多个显卡,从而允许通过多个显卡扩展处理能力。这种多卡扩展可以通过主板上的 PCIe 总线或通过充当数据桥的专用互连接口来完成。AMD 和 NVIDIA 都以专有的缩放方法展示他们的显卡,AMD 的 CrossFireX 技术和 NVIDIA 的 SLI 技术。随着 NVLink 的引入,SLI 在图灵时代被弃用,NVLink 被认为是多卡扩展技术的顶级产品。



NVLink 数据流表示(来源)

NVIDIA A100 使用第三代 NVLink,可在两个 GPU 之间提供高达 600 GB/s 的速度。此外,它代表了一种比 PCI Express 更节能的方式来在 GPU 之间传递数据。
网络接口

网络接口不是显卡的标准组件。它仅适用于需要直接将数据隧道传输到其 DPU 和 GPU 的高性能卡。对于 A100,网络接口由 2 个 100Gbps 以太网端口组成,可以加快处理速度,尤其适用于涉及基于 AI 的网络的应用程序。
输出接口

输出接口是建立在显卡上的端口,使其能够连接到显示器。可以实现多种连接类型。



一个母 HDMI 连接器(来源)

对于较旧的系统,使用的是 VGA 和 DVI,而最近制造商倾向于使用 HDMI 和 Display-Port,而一些便携式系统将 USB Type-C 作为主要端口。
HDMI显示端口DVIVGA
数字或模拟数字的数字的数字的数字的
速度340兆赫165兆赫165兆赫28兆赫
音频支持是的是的是的
最大分辨率7680 x 4320 像素 (8K)7680 x 4320 像素 (8K)3840 x 2400 像素1920 x 1080 像素
至于本文显微镜下的卡,A100没有输出接口。由于它从一开始就被设计为 ML/DL 的专业卡并用于数据中心,因此它没有理由具有显示连接性。
视频 BIOS (VBIOS)

视频 BIOS,通常称为 VBIOS,是显卡的基本输入输出系统 (BIOS)。视频 BIOS 与系统 BIOS 一样,提供一组与视频相关的信息,程序可以使用这些信息来访问显卡,并维护特定于供应商的设置,例如卡名称、时钟频率、VRAM 类型、电压和风扇转速控制参数。
冷却系统

冷却通常不被视为显卡组件列表的一部分。但是,由于它的重要性,在本次技术深入研究中不能忽视它。
由于显卡消耗大量能量,因此会产生大量热能。而且,为了在卡的活动期间保持性能并保持长期可用性,核心温度值应限制为卵形热节流,这是由于 GPU 和 VRAM 级别的高温导致的性能下降。
为此,主要使用两种技术:空气冷却和液体冷却。我们来看看A100使用的液体冷却方式。



带液体冷却的 NVIDIA A100(来源)

冷却液通过导热管进入显卡,并在通过系统时吸收热量。然后,使用液体泵送将冷却剂拉向散热器,散热器充当管道中的液体与散热器周围的空气之间的热交换器。云 GPU 服务通常内置有监控此温度的工具,例如 Paperspace Gradient Notebook 的监控工具。如果您正在运行特别昂贵的程序,这有助于通过作为警告系统来防止过热。
如何衡量显卡的性能?

现在我们知道了显卡的主要组件和部件,我们将了解如何测量给定显卡的性能,以便将其与其他显卡进行比较。
要评估显卡,可以遵循两种方案:评估子组件的技术规格并将其与其他显卡的结果进行比较,或者对显卡进行测试(也称为基准测试)并比较分数。
基于规格的评估

显卡有数十种技术规格,可以帮助确定其性能。我们将列出基于此评估方法做出选择时要寻找的最重要的因素:
核心数量:在查看显卡的潜在性能时,GPU 上的核心数量可能是一个很好的衡量标准。但是,在比较具有不同核心类型和架构的 GPU 时,这可能会产生偏差。
核心速度:它表示核心每秒执行的单个基本计算的数量,以 MHz 或 GHz 为单位。构建个人系统时要寻找的另一个衡量标准是超频最大核心速度,它通常远高于非超频速度。
内存大小:卡的 RAM 越多,它在给定时间内可以处理的数据就越多。但是,这并不意味着通过增加 VRAM 会提高性能,因为这还取决于可能成为瓶颈的其他组件。
内存类型:相同大小的内存芯片根据所采用的技术可以呈现不同的性能。HBM、HBM2 和 HBM2e 内存芯片的性能通常优于 GDDR5 和 GDDR6。
内存带宽:内存带宽可以被视为评估显卡显存性能的更广泛的方法。内存带宽基本上是在任何时候访问和使用卡的 VRAM 的速度。
热设计功率 (TDP):它显示需要多少电力来产生冷却系统能够处理的最多热量。在构建系统时,TDP 是评估卡的电源需求的重要因素。
基于基准的评估

虽然技术规格可以提供关于显卡与其他显卡相比所处位置的广泛概念,但它并没有给出明确的可量化比较平均值。
输入基准,这是一个测试,它给出了一个可以在卡之间清楚地比较的可量化结果。对于面向机器学习的显卡,逻辑基准将是一个 ML 模型,该模型在要比较的卡上进行训练和评估。在 Paperspace 上,在 Core 或 Gradient 上的所有可用卡上执行了多个 DL 模型基准测试(YOLOR、StyleGAN_XL 和 EfficientNet)。而且,对于每一项,基准测试的完成时间都是使用的可量化变量。
剧透警告!A100 在所有三个基准测试场景中都取得了最好的结果。
基于基准的评估的优点是它产生了一个可简单地用于比较的可测量元素。与基于规范的评估不同,这种方法可以将显卡作为一个统一的系统进行更完整的评估。
为什么显卡适合机器学习?

与 CPU 相比,GPU 是从头开始构建的,用于处理大量数据并执行复杂的任务。并行计算是 GPU 的另一个好处。虽然 CPU 制造商努力提高性能,但最近开始趋于平稳,而 GPU 通过根据特定需求定制硬件和计算安排来解决这个问题。这种并行计算中使用的单指令多数据 (SIMD) 架构可以有效地在 GPU 内核之间分散工作负载。
因此,由于机器学习的目标是增强和提高算法的能力,因此需要输入更大的连续数据集。更多数据意味着这些算法可以更有效地从中学习并创建更可靠的模型。显卡提供的并行计算能力可以促进复杂的多步骤过程,尤其是深度学习算法和神经网络。
机器学习最好的显卡是什么?

简短回答:NVIDIA A100 - 80GB 是目前最好的单 GPU。
长答案:机器学习应用程序非常适合 NVIDIA A100 的架构,尤其是 Ampere 系列的架构。进出 DPU 的流量将由 A100 GPU 核心直接处理。这开辟了一类全新的使用 AI 的网络和安全应用程序,例如数据泄漏检测、网络性能优化和预测。
虽然A100是机器学习应用的核心选择,但更多的功率并不总是意味着更好。根据 ML 模型、数据集的大小、训练和评估时间限制,有时较低层的显卡在保持成本尽可能低的同时可能绰绰有余。这就是为什么拥有一个提供各种显卡的云平台对于 ML 专家来说很重要的原因。对于每个任务,都有完美的武器。
资源

https://images.nvidia.com/aem-dam/en-zz/Solutions/data-center/nvidia-ampere-architecture-whitepaper.pdf
https://www.nvidia.com/en-us/data-center/a100/
https://developer.nvidia.com/blog/nvidia-ampere-architecture-in-depth/
https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/a100/pdf/nvidia-a100-datasheet-nvidia-us-2188504-web.pdf
https://www.nvidia.com/en-in/networking/products/data-processing-unit/
https://images.nvidia.com/aem-dam/en-zz/Solutions/data-center/dgx-a100/dgxa100-system-architecture-white-paper.pdf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 14:52 , Processed in 0.124687 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表