GPU的竞争壁垒体现在哪?

GPU的竞争壁垒体现在哪?

最佳答案 匿名用户编辑于2024/03/12 11:10

微架构和平台生态共筑竞争壁垒。

1. 微架构:统一计算单元解锁通用计算时代

GPU 的微架构是用以实现指令执行的硬件电路结构设计。以 Nvidia 第一个实现 统一着色器模型的 Tesla 微架构为例,从顶层 Host Interface 接受来自 CPU 的数 据,藉由 Vertex(顶点)、Pixel(片元)、Compute(计算着色器)分发给各 TPC (Texture Processing Clusters 纹理处理集群)进行处理。

流处理器、特殊函数计算单元构成计算核心。在单个 TPC 中主要的运算结构为 SM(Streaming Multiprocessor 流式多处理器),其内在蕴含 I Cache(指令缓 存)、C Cache(常量缓存)以及核心的计算单元 SP(Streaming Processor 流处理 器)和 SFU(Special Function Unit 特殊函数计算单元),外加 Texture Unit(纹理 单元)。

解耦计算单元,拥抱通用计算。由于图形渲染流管线相对固定,Nvidia 在 Tesla 架构中将部分重要环节剥离并实现可编程,解耦出 SM 计算单元用于通用计算, 即可实现根据具体任务需要分配相应线程实现通用计算处理。

计算核心、纹理单元增加, GPC 功能更加完整,Nvidia Fermi 架构奠定完整 GPU 计算架构基础。在 Tesla 之后,Nvidia 第一个完整的 GPU 计算架构 Fermi 通过制程微缩增加更多计算核心、纹理单元,并且通过增加 PolyMorph Engine (多形体引擎)和 Raster Engine(光栅引擎)使得原来 TPC 升级成为拥有更加 完整功能的 GPC(Graphics Processing Clusters 图形处理器集群)。Fermi 架构共 包含 4 个 GPC,16 个 SM,512 个 CUDA Core。

2. 架构迭代与制程升级是 GPU 性能的生命线

不同的微架构设计会对 GPU 的性能产生决定性的影响,因此保持架构升级节奏 以及制程升级速率是保证产品竞争力的关键。 英伟达 GPU 架构演进从最初 Fermi 架构到最新的 Ampere 架构和 Hopper 架 构。每一阶段都在性能和能效比方面得到提升,引入了新技术,如 CUDA、GPU Boost、RT 核心和 Tensor 核心等,在图形渲染、科学计算和深度学习等领域发挥 重要作用。最新一代 Hopper 架构在 2022 年 3 月推出,旨在加速 AI 模型训练, 使用 Hopper Tensor Core 进行 FP8 和 FP16 的混合精度计算,以大幅加速 Transformer 模型的 AI 计算。与上一代相比,Hopper 还将 TF32、FP64、FP16 和 INT8 精度的每秒浮点运算(FLOPS)提高了 3 倍。

AMD 作为全球第二大 GPU 厂商,亦通过持续的架构演进保持其市场领先地 位。从 2010 年以来,AMD 相继推出:GCN 架构、RDNA 架构、RDNA 2 架 构、RDNA 3 架构、CDNA 架构和 CDNA 2 架构。最新一代面向高性能计算和人 工智能 CDNA 2 架构于架构采用增强型 Matrix Core 技术,支持更广泛的数据类 型和应用,针对高性能计算工作负载带来全速率双精度和全新 FP64 矩阵运 算。基于 CDNA2 架构的 AMD Instinct MI250X GPU FP64 双精度运算算力最高 可达 95.7 TFLOPs。

3.成熟的平台生态是 GPU 厂商的护城河

成熟且完善的平台生态是 GPU 厂商的护城河。相较于持续迭代的微架构带来的 技术壁垒硬实力,成熟的软件生态形成的强大用户粘性将在长时间内塑造 GPU 厂商的软实力。以英伟达 CUDA 为例的软硬件设计架构提供了硬件的直接访问 接口,不必依赖图形 API 映射,降低 GPGPU 开发者编译难度,以此实现高粘性 的开发者生态。目前主流的开发平台还包括 AMD ROCm 以及 OpenCL。 CUDA(Compute Unified Device Architectecture),是 NVIDIA 于 2006 年推出 的通用并行计算架构,包含 CUDA 指令集架构(ISA)和 GPU 内部的并行计算 引擎。该架构允许开发者使用高级编程语言(例如 C 语言)利用 GPU 硬件的并 行计算能力并对计算任务进行分配和管理,CUDA 提供了一种比 CPU 更有效的 解决大规模数据计算问题的方案,在深度学习训练和推理领域被广泛使用。

CUDA 除了是并行计算架构外,还是 CPU 和 GPU 协调工作的通用语言。在 CUDA 编程模型中,主要有 Host(主机)和 Device(设备)两个概念,Host 包 含 CPU 和主机内存,Device 包含 GPU 和显存,两者之间通过 PCI Express 总线 进行数据传输。在具体的 CUDA 实现中,程序通常划分为两部分,在主机上运 行的 Host 代码和在设备上运行的 Device 代码。Host 代码负责程序整体的流程控 制和数据交换,而 Device 代码则负责执行具体的计算任务。一个完整的 CUDA 程序是由一系列的设备端函数并行部分和主机端的串行处理部分共同组成的,主 机和设备通过这种方式可以高效地协同工作,实现 GPU 的加速计算。

CUDA 在 Host 运行的函数库包括了开发库(Libraries)、运行时(Runtime)和 驱动(Driver)三大部分。其中,Libraries 提供了一些常见的数学和科学计算任 务运算库,Runtime API 提供了便捷的应用开发接口和运行期组件,开发者可以 通过调用 API 自动管理 GPU 资源,而 Driver API 提供了一系列 C 函数库,能更 底层、更高效地控制 GPU 资源,但相应的开发者需要手动管理模块编译等复杂 任务。

CUDA 在 Device 上执行的函数为内核函数(Kernel)通常用于并行计算和数据 处理。在 Kernel 中,并行部分由 K 个不同的 CUDA 线程并行执行 K 次,而有别 于普通的 C/C++函数只有 1 次。每一个 CUDA 内核都以一个声明指定器开始, 程序员通过使用内置变量__global__为每个线程提供一个唯一的全局 ID。一组线 程被称为 CUDA 块(block)。CUDA 块被分组为一个网格(grid),一个内核以 线程块的网格形式执行。每个 CUDA 块由一个流式多处理器(SM)执行,不能 迁移到 GPU 中的其他 SM,一个 SM 可以运行多个并发的 CUDA 块,取决于 CUDA 块所需的资源,每个内核在一个设备上执行,CUDA 支持在一个设备上 同时运行多个内核。

CUDA 的存储结构中,全局内存是所有线程都可以访问的存储区域,共享内存是 位于线程块内部,多个线程可以共同访问的存储空间,寄存器是每个线程都有一 组用于保存局部变量和中间值的寄存器,而局部内存则是当存储需求超过寄存器 和共享内存容量时,分配给当前线程的存储空间。这些存储层次结构的访问速度 和容量各不相同,需要在应用时进行合理使用和管理。GPU 的内存层次结构与 CUDA 的存储结构密切相关,比如,在一个 SM 上运行的多个线程块将共享该 SM 的寄存器和共享内存资源,同时也访问全局内存和局部内存资源。这些不同 层级的存储在 GPU 中形成了逐层递进的内存架构,使得数据在计算过程中能够 以最快的速度流动到被需要的位置,从而实现更高效、更快速的计算任务执行。

丰富而成熟的软件生态是 CUDA 被广泛使用的关键原因。(1)编程语言: CUDA 从最初的 1.0 版本仅支持 C 语言编程,到现在的 CUDA 12.0 支持 C、 C++、Fortran、Python 等多种编程语言。此外,NVIDIA 还支持了如 PyCUDA、 ltimesh Hybridizer、OpenACC 等众多第三方工具链,不断提升开发者的使用体 验。(2)库:NVIDIA 在 CUDA 平台上提供了名为 CUDA-X 的集合层,开发人 员可以通过 CUDA-X 快速部署如 cuBLA、NPP、NCCL、cuDNN、TensorRT、 OpenCV 等多领域常用库。(3)其他:NVIDIA 还为 CUDA 开发人员提供了容器 部署流程简化以及集群环境扩展应用程序的工具,让应用程序更易加速,使得 CUDA 技术能够适用于更广泛的领域。

ROCm (Radeon Open Compute Platform )是 AMD 基于开源项目的 GPU 计算生态系统,类似于 NVIDIA 的 CUDA。ROCm 支持多种编程语言、编译 器、库和工具,以加速科学计算、人工智能和机器学习等领域的应用。ROCm 还支持多种加速器厂商和架构,提供了开放的可移植性和互操作性。ROCm 支持 HIP(类 CUDA)和 OpenCL 两种 GPU 编程模型,可实现 CUDA 到 ROCm 的 迁移。最新的 ROCm 5.0 支持 AMD Infinity Hub 上的人工智能框架容器,包括 TensorFlow 1.x、PyTorch 1.8、MXNet 等,同时改进了 ROCm 库和工具的性能 和稳定性,包括 MIOpen、MIVisionX、rocBLAS、rocFFT、rocRAND 等。

OpenCL(Open Compute Language),是面向异构系统通用并行编程、可以在 多个平台和设备上运行的开放标准。OpenCL 支持多种编程语言和环境,并提供 了丰富的工具来帮助开发和调试,可以同时利用 CPU、GPU、DSP 等不同类型 的加速器来执行任务,并支持数据传输和同步。此外,OpenCL 支持细粒度和粗 粒度并行编程模型,可根据应用需求选择合适模型提高性能和效率。而 OpenCL 可移植性有限,不同平台和设备的功能支持和性能表现存在一定差异,与 CUDA 相比缺少广泛的社区支持和成熟的生态圈。

参考报告

AI算力行业深度报告:AI模型乘风起,GPU掌舵算力大时代.pdf

AI算力行业深度报告:AI模型乘风起,GPU掌舵算力大时代。GPU掌舵AI算力大时代,千亿级市场再迎增量:GPU因其强大的并行计算能力而广泛应用于人工智能、图像渲染、科学计算等领域。AI、自动驾驶与游戏市场是GPU需求增长的主要场景,据GlobalMarketInsights数据,全球GPU市场预计将以CAGR25.9%持续增长,至2030年达到4000亿美元规模。其中AI领域大语言模型的持续推出以及参数量的不断增长有望驱动模型训练端、推理端GPU需求快速增长。微架构和平台生态共筑竞争壁垒:GPU的微架构设计是决定硬件性能的关键,全球龙头厂商英伟达与AMD均以保持架构升级节奏以及制程升级速率来...

查看详情
相关报告
我来回答