Post

【AI Supporting】01 GPUs

【AI Supporting】01 GPUs

1 params for GPUs

English terminolgyChinese description
GPU Chip(GPU芯片)- GPU芯片是图形处理器(GPU)的核心部件,负责图形渲染和计算。
- GPU芯片由多个处理器单元(处理器单元)组成,每个处理器单元负责处理特定类型的计算任务,如顶点着色、像素着色、几何着色等。
Memory(显存)- 视频存储器(Video memory,),也称为视频随机存取存储器(VRAM),是计算机显卡或图形处理单元 (GPU) 上的专用内存,用于存储和管理与图形和视频处理相关的数据。
- GPU 内存的作用是临时存储图形、图像、视频、缓冲区加载和纹理。在进行游戏、编辑和设计等图形处理时,它会根据需要将视频数据临时保存在 GPU 内存中,以便不时执行所需的处理。
Memory Bandwidth- 显存带宽(Video memory bandwidth),是指显卡的GPU与显存之间的数据传输速率。
- 显存带宽越高,表示显卡处理图形和视频数据的效率越高。
GPU Clock(GPU时钟)- GPU时钟是指显卡中图形处理器(GPU)的工作时钟频率。
- 它决定了GPU在单位时间内执行图形计算和渲染任务的速度。较高的GPU时钟频率通常表示更快的图形处理性能。
Memory Clock(内存时钟)- 内存时钟是指显卡上的显存(VRAM)的工作时钟频率。
- 它决定了显存读取和写入数据的速度。较高的内存时钟频率可以提供更快的数据传输速度,对于高分辨率的游戏和图形应用程序尤其重要。
Shader Clock(着色器时钟)- 着色器时钟是指显卡上的着色器单元(负责图形效果和计算任务)的工作频率。
- 它决定了着色器单元在单位时间内执行着色器代码的速度。较高的着色器时钟频率可以提供更快的图形效果和计算性能。
Base Clock(基础时钟)基础时钟是显卡的默认工作频率,类似于显卡的“基础速度”。它决定了显卡整体的基本性能水平。
Boost Clock(增强时钟)- 增强时钟是显卡在负载较重时能够自动提升的最高频率。
- 它允许显卡在需要更高性能时临时提升工作频率,以应对更复杂的计算和渲染任务。Boost Clock通常在短时间内提供更高的性能。
GPU Tweak(显卡超频)- 在显卡超频中,你可以增加显卡的GPU时钟频率和内存时钟频率,以提高显卡的性能。
- 增加GPU时钟频率可以加快图形处理器的计算速度,从而提高图形渲染和游戏性能。
- 增加内存时钟频率可以提升显存读写速度,从而加快数据传输和加载速度。
Shaders(着色器)- Shaders是GPU中负责执行图形渲染中各种程序的处理器单元。它们处理顶点着色、像素着色、几何着色等任务,负责计算3D场景中物体的光照、颜色、纹理和阴影等视觉效果。
- Shaders的数量直接影响到GPU处理复杂图形和特效的能力。例如,如果一款GPU的Shaders数量为1280,意味着它拥有1280个并行处理单元来执行着色计算
TMUs- (Texture Mapping Units,纹理映射单元)
- TMUs负责处理纹理贴图,即将2D纹理图像映射到3D模型表面的过程。它们从内存中读取纹理数据,并将其应用到场景中的几何体上,增加场景的真实感和细节。
- TMUs的数量决定了GPU同时处理纹理的能力。例如,如果一个GPU配置为56个TMUs,这表示它可以并行处理56个纹理采样操作。
ROPs- (Raster Operations Pipelines,光栅化操作管道)
- ROPs负责最后阶段的像素处理,包括像素的混合、抗锯齿、透明度处理以及输出到帧缓冲区等。
- ROPs数量决定了GPU每时钟周期可以完成的像素处理数量,影响着输出图像的质量和最终渲染的速度。例如,如果GPU具有32个ROPs,说明它能并行处理32个像素的光栅化操作。
Product NameTheoretical Performance
/ FP32 (float)
Memory Size / Type / Bus / BandwidthShaders / TMUs / ROPs
A100 PCIe 40 GB19.49 TFLOPS40 GB, HBM2e, 5120 bit, 1.56 TB/s6912 / 432 / 160
A100 PCIe 80 GB 80 GB, HBM2e, 5120 bit6912 / 432 / 160
A100 SXM4 40 GB 40 GB, HBM2e, 5120 bit6912 / 432 / 160
A100 SXM4 80 GB 80 GB, HBM2e, 5120 bit6912 / 432 / 160
A100X 80 GB, HBM2e, 5120 bit6912 / 432 / 160
A800 PCIe 40 GB19.49 TFLOPS40 GB, HBM2e, 5120 bit, 1.56 TB/s6912 / 432 / 160
A800 PCIe 80 GB 80 GB, HBM2e, 5120 bit6912 / 432 / 160
A800 SXM4 80 GB 80 GB, HBM2e, 5120 bit6912 / 432 / 160
GeForce RTX 2080 Ti13.45 TFLOPS11 GB, GDDR6, 352 bit, 616.0 GB/s4352 / 272 / 88
GeForce RTX 2080 Ti 12 GB 12 GB, GDDR6, 384 bit4608 / 288 / 96
GeForce RTX 309035.58 TFLOPS24 GB, GDDR6X, 384 bit, 936.2 GB/s10496 / 328 / 112
GeForce RTX 3090 Ti 24 GB, GDDR6X, 384 bit10752 / 336 / 112
GeForce RTX 409082.58 TFLOPS24 GB, GDDR6X, 384 bit, 1.01 TB/s16384 / 512 / 176
GeForce RTX 4090 D 24 GB, GDDR6X, 384 bit14592 / 456 / 176
GeForce RTX 4090 Max-Q 16 GB, GDDR6, 256 bit9728 / 304 / 112
GeForce RTX 4090 Mobile 16 GB, GDDR6, 256 bit9728 / 304 / 112
GeForce RTX 4090 Ti 24 GB, GDDR6X, 384 bit18176 / 568 / 192
TITAN RTX11.76 TFLOPS24 GB, GDDR6, 384 bit, 672.0 GB/s4608 / 288 / 96
Tesla P4011.76 TFLOPS24 GB, GDDR5, 384 bit, 347.1 GB/s3840 / 240 / 96
Tesla T48.141 TFLOPS16 GB, GDDR6, 256 bit, 320.0 GB/s2560 / 160 / 64
Tesla T4G 16 GB, GDDR6, 256 bit2560 / 160 / 64
Tesla V100 DGXS 16 GB16.20 TFLOPS16 GB, HBM2, 4096 bit, 897.0 GB/s5120 / 320 / 128
Tesla V100 DGXS 32 GB 32 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 FHHL 16 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 PCIe 16 GB 16 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 PCIe 32 GB 32 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 SXM2 16 GB 16 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 SXM2 16 GB 16 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 SXM2 32 GB 32 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100 SXM3 32 GB 32 GB, HBM2, 4096 bit5120 / 320 / 128
Tesla V100S PCIe 32 GB 32 GB, HBM2, 4096 bit5120 / 320 / 128

doc:

2 difference between training card and inference card

首先要了解神经网络训练和推理时的差别,然后自然就知道对GPU的需求的差别。

先看一下训练时的需求。神经网络训练通常使用随机梯度下降算法,显存中除了加载模型参数,还需要保存中间状态,主要是梯度信息,相比推理,显存需求要增加几倍,显存要够大才能跑起来;要训练好的模型,需要使用大量数据,大量数据要读入显存,显存带宽要够大;另外对于当前的大数据量,单卡已经无法满足要求,要用多卡集群训练,集群训练要在多机间通信,要交换大量数据,要支持更高的通信带宽,接口一般用NVLINK,通常还要GPU支持RDMA特性,能够直接在显存和通信卡内存间搬数据。

总结起来就是:

  • 训练卡要求显存大,显存带宽大,和外部通信接口带宽大,算力就不说了,都不是主要考虑问题了,训练卡目前主要是NVIDIA的A100 V100。
  • 推理时的需求就简单了,算力和显存平衡就可了,模型能装的进去,把算力跑慢就可以了,显存和算力越大,推理的并发数越多,T4跑推理挺好,便宜,算力也够强。

算力:

  • 算力最基本的计量单位是 FLOPS,英文 Floating-point Operations Per Second,即每秒执行的浮点运算次数。浮点运算其实就是带小数的加减乘除运算。

doc:

  • 训练卡vs推理卡: https://developer.aliyun.com/article/1259910
  • 算力: https://www.cnblogs.com/upyun/p/17969963
  • cpu理论浮点运算值: https://blog.csdn.net/qq_42309265/article/details/123098538

3 显卡分类

3.1 集成显卡, 核心显卡, 独立显卡

集成显卡:

  • 将显示芯片、显存及其相关电路都集成在主板上,与其融为一体的元件。
  • 集成显卡的显示效果与处理性能相对较弱,不能对显卡进行硬件升级,但可以通过CMOS调节频率或刷入新BIOS文件实现软件升级来挖掘显示芯片的潜能。
  • 优缺点:
    • 优点: 功耗低、发热量小,部分集成显卡的性能已经可以媲美入门级的独立显卡,所以很多喜欢自己动手组装计算机的人不用花费额外的资金来购买独立显卡,便能得到自己满意的性能。
    • 缺点: 性能相对略低,且固化在主板或CPU上,本身无法更换,如果必须换,就只能换主板,现已退出历史舞台。

核心显卡:

  • Intel 凭借其在处理器制程上的先进工艺以及新的架构设计,将图形核心与处理核心整合在同一块基板上,构成一个完整的处理器。
  • 核芯显卡和传统意义上的集成显卡并不相同。
    • 集成显卡则将图形核心以单独芯片的方式集成在主板上,并且动态共享部分系统内存作为显存使用,因此能够提供简单的图形处理能力,以及较为流畅的编码应用。
    • 核芯显卡则将图形核心整合在处理器当中,进一步加强了图形处理的效率,并把集成显卡中的“处理器+南桥+北桥(图形核心+内存控制+显示输出)”三芯片解决方案精简为: “处理器(处理核心+图形核心十内存控制)十主板芯片(显示输出)”的双芯片模式,有效降低了核心组件的整体功耗,更利于延长笔记本的续航时间。

独立显卡:

  • 独立显卡是指将显示芯片、显存及其相关电路单独做在一块电路板上,自成一体而作为一块独立的板卡存在,它需占用主板的扩展插槽(ISA、 PCI、AGP或PCI-E)。
  • 优缺点:
    • 优点是: 单独安装有显存,一般不占用系统内存,在技术上也较集成显卡先进得多,但性能肯定不差于集成显卡,容易进行显卡的硬件升级。
    • 缺点是: 系统功耗有所加大,发热量也较大,需额外花费购买显卡的资金,同时(特别是对笔记本电脑)占用更多空间。
  • 由于显卡性能的不同对于显卡要求也不一样,独立显卡实际分为两类,一类专门为游戏设计的娱乐显卡,一类则是用于绘图和3D渲染的专业显卡。

doc:

3.2 Nvidia 显卡分类

3.2.1 产品线

系列主要应用领域更多说明
GeForce系列(G系列)游戏玩家和普通用户- GeForce系列是英伟达主打的消费级GPU产品线,注重提供高性能的图形处理能力游戏特性
Quadro系列(P系列)需要高精度计算和可靠稳定性的专业领域
如:动画制作、计算机辅助设计(CAD)、科学计算、虚拟现实等
- Quadro系列是英伟达专业级GPU产品线,针对商业和专业应用领域进行了优化。
- Quadro GPU具备强大的计算能力、大容量显存和专业特性
- 如双精度浮点运算和驱动程序的优化。
Tesla系列(T系列)高性能计算和机器学习任务
如:科学计算、数据分析、深度学习等
- 在计算能力和深度学习加速方面有突出表现。
- Tesla GPU集成了深度学习加速器(如NVIDIA Tensor Cores),提供快速的矩阵运算和神经网络推理。
Tegra系列移动处理系统
如:嵌入式系统、智能手机、
平板电脑、汽车电子等领域
- Tegra系列是英伟达的移动处理器产品线,用于嵌入式系统、智能手机、平板电脑、汽车电子等领域。
- Tegra芯片提供高性能的图形和计算能力,同时具备低功耗和高度集成的特点。
Jetson系列边缘计算、人工智能、机器人等领域- Jetson系列是面向边缘计算和人工智能应用的嵌入式开发平台,具备强大的计算和推理能力。
- 它们适用于构建智能摄像头、机器人、自动驾驶系统等。
DGX系列企业级AI解决方案,
一体化高性能计算和深度学习系统

深度学习、人工智能研究和开发等领域
- DGX系列是面向深度学习和人工智能研究的高性能计算服务器,是集成多个GPU和专用硬件。
- DGX服务器提供强大的计算和训练能力,支持大规模深度学习模型的训练和推理。
- 如:DGX A100:包含8个A100 GPU,每个GPU具有640个Tensor核心,提供高达5 PetaFLOPS的AI性能。

3.2.2 架构

架构芯片代号推出年份主要用途说明代表产品
Tesla 架构GT2006科学计算和高性能计算第一个通用并行计算(GPGPU)架构Tesla C870/GeForce 8800 GTX
Fermi 架构GF2010科学计算、图形处理和高性能计算引入了CUDA架构、ECC内存、NVIDIA Parallel DataCache、和GPU直接支持C++等新技术。Tesla C2050/GeForce GTX 480
Kepler 架构GK2012科学计算、深度学习和游戏引入了GPU Boost技术,增加了对动态并行计算的支持。Tesla K40/GeForce GTX 680
Maxwell 架构GM2014游戏、深度学习和移动设备引入了一些新的技术,例如多层次的内存系统、动态超分辨率技术和VR Direct技术。Tesla M40/GeForce GTX 980
Pascal 架构GP2016深度学习、高性能计算引入了NVIDIA 的Tensor CoresTesla P100/GeForce GTX 1080
Volta 架构GV2017深度学习、科学计算和高性能计算引入了更多的深度学习优化特性,如Tensor Cores和专为深度学习工作负载而设计的TensorRT。Tesla V100
Tensor 架构TU2018游戏、深度学习和专业可视化引入了实时光线追踪技术、深度学习技术(如RT Cores和Tensor Cores)以及新的流程图渲染技术Tesla T4/GeForce RTX 2080 Ti
Ampere 架构GA2020深度学习、科学计算和高性能计算引入了更多的Tensor Cores、第三代NVLink以及改进的Ray Tracing技术。Tesla A100/GeForce RTX 3080
Ada Lovelace 架构AD2022游戏、专业图形、AI 和计算性能- 专为光线追踪和基于 AI 的神经图形设计的 GPU。
- 该架构显著提高了 GPU 性能基准,更代表着光线追踪和神经图形的转折点。
- 引入了第四代 Tensor Core,可加速 AI 计算,以及第三代 RT Core,可加速光线追踪。
GeForce RTX 4080/GeForce RTX 4090
Hopper 架构GH2022深度学习、科学计算和高性能计算- 支持PCIe 5.0标准,具有40Tb/s的IO带宽,可承载全球互联网的流量。
- 包括一个专用的Transformer引擎,可解决万亿参数语言模型。
- 将大型语言模型(LLMs)的速度提高30倍,是业界领先的对话AI。
- 在功耗受限的数据中心环境中将GPT-175B模型性能提高12倍,同时保持低延迟。
Telsa H100/Telsa H800

doc:

3.2.3 游戏卡、专业卡、计算卡

游戏卡:面向普通消费者和游戏玩家,优化游戏性能。 专业卡:面向专业图形工作者和内容创作者,优化图形精度和稳定性。 计算卡:面向高性能计算和深度学习研究,优化计算性能和数据处理能力。

一张晶圆中心部分质量最好,因为中心部分蚀刻出的坏晶体管数量最少,而这些部分便用于制造专业卡芯片; 离中心越远蚀刻出的坏晶体管越多,而这些部分便用来制造各级别游戏卡,GPU制造商会将这部分中的坏晶体管屏蔽起来,来制造不同级别的游戏卡。

doc:

3.2.4 N卡 和 A卡

维度区别
GPU流处理器A卡:amd显卡的GPU中每个流处理器的5个流处理单元都是固定的,不能拆开重组,每个流处理器只能处理一条4D指令,有一个流处理器单元闲置,但却无法加入其他组合来共同工作。
 N卡:英伟达显卡的GPU中每个流处理器都具有完整的ALU功能,在发出一条操作指令时每个流处理器都能充分工作。
架构执行A卡:amd显卡的架构优势在于理论运算能力,但执行效率不高,对于复杂多变的任务种类适应性不强,需要软件上的支持才能发挥应有性能。
 N卡:英伟达显卡架构执行效率极高,灵活性强,在实际应用中容易发挥应有性能,但功耗较难控制,较少的处理单元也限制了其理论运算能力。
多屏输出A卡:amd显卡的强项,A卡可以做到单卡六屏输出,加上架构和显存的特性,即使在多屏高分辨率下,性能衰减也比对手要小。
 N卡:英伟达显卡在3D视觉技术方面,前期是N卡占优势,后是A卡占优,由于A卡3D视觉技术是免费开放的,选择性也更高。
架构对比A卡:a卡的执行单元是1d流处理器,架构上会稍有不同,但也无法说谁优谁劣。
 N卡:主要架构是控制单元,
功耗对比N卡的功耗通常要比A卡高一些,因为它的功耗控制比A卡差,但功耗高低通常会决定性能的强弱。
性能对比A卡在2d平面画质、渲染的效果上要更强一点。
 N卡在3d性能、游戏处理速度上更强一些
侧重点N卡:注重3D性能和速度,画面特效帧数更好,游戏驱动更好,散热效果更好。
 A卡:注重2D平面画质、渲染的效果。

简单总结

  • 选择中端和入门机型的时候,A卡N卡都可以用,A卡优先;
  • 高端的选N卡,性能好稳定有光追;
  • 另外如果搞AI的,建议N卡;
  • 或者追求性价比,建议A卡。

more doc:

This post is licensed under CC BY 4.0 by the author.