GPU(一)GPU简介

本文详细介绍了GPU的发展历程,特别是NVIDIAGPU架构从Tesla到AdaLovelace的变迁,重点剖析了AdaLovelace架构的AD102,强调了GPU在深度学习和人工智能中的应用。同时,提到了GPU架构对CUDA编程的影响,预示了后续关于CUDA编程的相关内容。
摘要由CSDN通过智能技术生成

GPU全称Graphics Processing Unit,即图形处理单元。正如其名,早期主要把GPU应用在图形数据处理方面,但随着技术的发展以及GPU高度并行化特点,使得它越来越多的应用到了深度学习与人工智能等需要并行处理大量数学运算的场景。

1、CPU与GPU

CPU与GPU的关系如下图所示,它们一般通过 PCIe总线 通信。PCIe总线的传输速率较慢,在计算量不大的时候,有可能出现数据在PCIe总线传输的时间长于GPU计算时间,所以在一些小型任务上,使用GPU也未必能达到加速的效果。

请添加图片描述

虽然CPU和GPU都具有计算能力,但是还是存在一定差异:

  • CPU拥有少量(个位数)计算核心(上图的算术逻辑单元),GPU拥有大量(几千甚至更多)计算核心;
  • CPU单个核计算能力更强,GPU单个核计算能力更弱;
  • CPU擅长逻辑处理,GPU擅长高度并行的数据运算;
  • CPU线程重量,切换开销大。GPU线程轻量,切换开销小;
  • GPU不能单独计算,需要与CPU组成异构架构才能用于计算;
  • 在CPU+GPU组成的异构计算平台中,CPU起控制作用,一般称做主机(host),GPU可以看做CPU的协处理器,一般称做设备(device);
  • CPU有配套的内存,GPU也有配套的内存(通常叫显存),CPU无法直接使用GPU内存,GPU也无法直接使用CPU内存;
  • CPU要求的是实时响应,对单任务的速度要求很高,会采用多层缓存的办法来保证单任务的速度。GPU是把所有的任务都排好,然后再批处理,对缓存的要求相对很低;

2、GPU与显卡

在某些不严谨的场景下,口头上会把显卡和GPU等价,实际上它俩是一个包含关系:GPU是显卡的一个组成部分。如下图所示,显卡一般由GPU、DRAM内存(显存)、PCIe接口、电源接口、HDMI接口等部分组成。

请添加图片描述

3、GPU公司

从全球范围来看,排名靠前的GPU公司有NVIDIA、AMD、Intel、高通、苹果等,国内也有生产GPU的公司,例如景嘉微、摩尔线程等,但是目前国内GPU和头部公司GPU还存在不小的差距。从商用角度来看,NVIDIA的GPU应该是目前最常见的,本文和后续的文章都围绕NVIDIA GPU来表述。

4、NVIDIA GPU架构演进

不同公司设计生产的GPU会有不同的架构差异,同一个公司不同时间生产的GPU也可能存在架构上的差异。以NVIDIA GPU为例,1999年NVIDIA发布第一代GPU架构GeForce 256,标志着GPU时代的开始。随后推出Tesla、Fermi、Kepler、Maxwell、Pascal、Volta、Turing、Ampere等GPU架构,不断增强GPU的计算能力和程序性,推动GPU在图形渲染、人工智能和高性能计算等领域的应用。

从NVIDIA GPU架构的命名可以看出,起的名字都是用的一些伟大数学家、物理学家的名字,这也体现了这些伟人的成果对当代计算机领域的重要性。

4.1 Tesla(特斯拉)

2006年11月发布,是NVIDIA首个通用GPU计算架构,它统一了顶点和像素处理器并对其进行了扩展,支持使用计算统一设备架构(CUDA)并行编程模型以C语言编写的高性能并行计算应用程序和开发工具。Tesla架构具有128个流处理器,带宽高达86GB/s,标志着GPU开始从专用他图形处理器转变成通用数据并行处理器。使用该架构的GPU有GeForce 8800等。

4.2 Fermi(费米)

技术白皮书:https://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf

2010年7月发布,是第一款采用40nm制程的GPU。Fermi架构带来了重大改进,包括引入L1/L2快速缓存、错误修复功能和GPU Direct技术等。Fermi GTX 480拥有480个流处理器,带宽达到177.4GB/s,比Tesla架构提高了一倍以上,代表了GPU计算能力的提升。使用该架构的GPU有Geforce 400系列等。

4.3 Kepler(开普勒)

2012年3月发布,英伟达发布Kepler架构,采用28nm制程,是首个支持超级计算和双精度计算的GPU架构。Kepler GK110具有2880个流处理器和高达288GB/s的带宽,计算能力比Fermi架构提高3-4倍。Kepler架构的出现使GPU开始成为高性能计算的关注点。使用该架构的GPU有K80等。

4.4 Maxwell(麦克斯韦)

2014年2月发布,Maxwell针对流式多处理器(SM)采用一种全新设计,可大幅提高每瓦特性能和每单位面积的性能。虽然 Kepler SMX 设计在这一代产品中已经相当高效,但是随着它的发展,NVIDIA的GPU架构师看到了架构效率再一次重大飞跃的机遇,而Maxwell SM设计实现了这一愿景。使用该架构的GPU有M10、M40等。

4.5 Pascal(帕斯卡)

2016年5月发布,用于接替上一代的Maxwell架构。基于Pascal架构的GPU将会使用16nm FinFET工艺、HBM2、NVLink 2.0等新技术。使用该架构的GPU有GTX1050、1050Ti、1060、GP100、P6000、P5000、P100、P4、P40等。

4.6 Volta(伏特)

技术白皮书:https://images.nvidia.cn/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf

2017年5月发布,Volta架构增加了Tensor Core和相应的性能指标,芯片巨大的面积815mm和先进工艺12nm FFN。使用该架构的GPU有V100等。

4.7 Turing(图灵)

技术白皮书:https://images.nvidia.cn/aem-dam/en-zz/Solutions/design-visualization/technologies/turing-architecture/NVIDIA-Turing-Architecture-Whitepaper.pdf

2018年8月发布,在该月的SIGGRAPH大会上,NVIDIA创始人兼首席执行官黄仁勋上发布了Turing架构,Turing架构引入了实时光线追踪(RTX)和深度学习超采样(DLSS)等重要功能。使用该架构的GPU有RTX 2080 Ti、Quadro RTX 6000等。

4.8 Ampere(安培)

技术白皮书:https://images.nvidia.cn/aem-dam/en-zz/Solutions/data-center/nvidia-ampere-architecture-whitepaper.pdf

2020年5与发布,在该月的GTC大会上,NVIDIA Ampere架构横空出世,该架构作为一次设计突破,在8代GPU架构中提供了NVIDIA公司迄今为止最大的性能飞跃,统一了AI培训和推理,并将性能提高了20倍。使用该架构的GPU有面向专业图形视觉可视化领域的RTX A6000、RTX A5000、RTX A4000、RTX A2000,面向高性能计算、人工智能和深度学习领域的NVIDIA A100、NVIDIA A40、NVIDIA A30、NVIDIA A10,以及面向消费级娱乐领域的GeForce RTX GPU等。

4.9 Hopper(哈珀)

2022年3月发布,在该月的GTC大会上,NVIDIA宣布推出采用NVIDIA Hopper架构的新一代加速计算平台,这一全新架构以美国计算机领域的先驱科学家Grace Hopper的名字命名,将取代两年前推出的NVIDIA Ampere架构,使用该架构的GPU有H100等。

4.10 Ada Lovelace(阿达 洛芙莱斯)

技术白皮书:https://images.nvidia.cn/aem-dam/Solutions/geforce/ada/nvidia-ada-gpu-architecture.pdf

2022年9月发布,NVIDIA官网宣称Ada Lovelace GPU架构能够为光线追踪和基于AI的神经图形提供革命性的性能,该架构显著提高了GPU性能基准,更代表着光线追踪和神经图形的转折点,使用该架构的GPU有RTX6000、RTX4060Ti等。

5、深入GPU架构

我本地电脑显卡GPU是RTX4060Ti(后续文章也会基于该GPU来操作),而RTX4060Ti基于Ada Lovelace架构,因此本文结合Ada Lovelace技术白皮书中的 AD102 继续深入谈谈GPU架构。

5.1 AD102

如下图所示,一块AD102 GPU包含:

  • 1个PCIe 4.0 host接口,用于与CPU通信
  • 1个GigaThread Engine现成调度引擎,负责将线程块Block分配给SM
  • 1个Optical Flow Accelerator光流加速器,光流加速器在原本DLSS 2的基础上,还可以计算两个连续帧内的光流场,能够捕捉游戏画面从第1帧到第2帧的方向和速度,从中捕捉粒子、反射和光照等像素信息。并分别计算运动矢量和光流来获得精准的阴影重建效果。
  • 3个NVENC视频编码器和3个NVDEC视频解码器
  • 12个内存控制器,负责访问显存
  • 12个GPC
  • 1个共享L2 cache

请添加图片描述

5.2 GPC

图形处理集群(Graphics Processing Clusters)GPC属于GPU的次级单位,一个GPU包含多个GPC,GPU的架构和代号不同,GPC的数量也不同,如果把GPC展开,就会得到如下结构图,一个GPC包含:

  • 1个栅格引擎(Raster Engine),主要功能是边缘侦测、消隐与坐标压缩
  • 6个纹理处理集群(Texture Processing Clusters)TPC,其中每个TPC包含2个流式多处理器(Streaming Multiprocessors)SM

请添加图片描述

5.3 SM

流式多处理器(Streaming Multiprocessors)SM是英伟达GPU中的一种计算核心,用于执行图形和计算任务。一般一个GPC包含多个SM,每个SM氛围4个子块,每个子块包含:

  • L0 i-cache
  • warp scheduler,自动分配任务到可用资源,以确保系统负载均衡和资源利用率的最大化
  • dispatch用来分配核心
  • Register file寄存器组
  • 16个可以执行INT32或FP32的cuda core,16个只能执行FP32的cuda core
  • 1个tensor core
  • 1个SFu和4个LS/ST

SM除了子块资源,还有:

  • 1个128KB的L1 data chache/shared memory,由4个子块共享
  • 4个Tex
  • 一个RT core 3rd generation

请添加图片描述

5.4 GPU核心

请添加图片描述

GPU一般包含三种核心:cuda core、tensor core、RT core,这三种核心各自具有不同的特性和功能:

  • cuda core: cuda core是用于通用并行计算任务的计算核心,早期架构叫SP(Streaming Processor),fermi架构开始叫做cuda core。可以执行单精度和双精度浮点运算,以及整数运算,它在处理广泛的并行计算任务方面非常高效。
  • tensor core: tensor core张量核心是针对深度学习和AI工作负载而设计的专用核心,可以实现混合精度计算并加速矩阵运算,尤其擅长处理半精度(FP16)和全精度(FP32)的矩阵乘法和累加操作。tensor core在加速深度学习训练和推理中发挥着重要作用。
  • RT core::RT core是专门用于光线追踪处理的核心,能够高速进行光线和声音的渲染,对于图形渲染和光线追踪等任务具有重要意义。

6、总结

本文简单总结了NVIDIA GPU架构发展历史,并介绍了Ada Lovelace架构的AD102型号GPU的内部结构,通过这些内容,我们对GPU有了更多的了解。了解GPU结构也是很有必要的,因为与CPU编程不同,GPU的cuda编程与GPU结构息息相关,只有结合对应GPU的特性,才能写出更加高效的cuda程序。

接下来会写一批cuda编程相关的文章,敬请期待。

微信公众号卡巴斯同步发布,欢迎大家关注。

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值