赞
踩
GPU全称Graphics Processing Unit,即图形处理单元。正如其名,早期主要把GPU应用在图形数据处理方面,但随着技术的发展以及GPU高度并行化特点,使得它越来越多的应用到了深度学习与人工智能等需要并行处理大量数学运算的场景。
CPU与GPU的关系如下图所示,它们一般通过 PCIe总线 通信。PCIe总线的传输速率较慢,在计算量不大的时候,有可能出现数据在PCIe总线传输的时间长于GPU计算时间,所以在一些小型任务上,使用GPU也未必能达到加速的效果。
虽然CPU和GPU都具有计算能力,但是还是存在一定差异:
在某些不严谨的场景下,口头上会把显卡和GPU等价,实际上它俩是一个包含关系:GPU是显卡的一个组成部分。如下图所示,显卡一般由GPU、DRAM内存(显存)、PCIe接口、电源接口、HDMI接口等部分组成。
从全球范围来看,排名靠前的GPU公司有NVIDIA、AMD、Intel、高通、苹果等,国内也有生产GPU的公司,例如景嘉微、摩尔线程等,但是目前国内GPU和头部公司GPU还存在不小的差距。从商用角度来看,NVIDIA的GPU应该是目前最常见的,本文和后续的文章都围绕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架构的命名可以看出,起的名字都是用的一些伟大数学家、物理学家的名字,这也体现了这些伟人的成果对当代计算机领域的重要性。
2006年11月发布,是NVIDIA首个通用GPU计算架构,它统一了顶点和像素处理器并对其进行了扩展,支持使用计算统一设备架构(CUDA)并行编程模型以C语言编写的高性能并行计算应用程序和开发工具。Tesla架构具有128个流处理器,带宽高达86GB/s,标志着GPU开始从专用他图形处理器转变成通用数据并行处理器。使用该架构的GPU有GeForce 8800等。
2010年7月发布,是第一款采用40nm制程的GPU。Fermi架构带来了重大改进,包括引入L1/L2快速缓存、错误修复功能和GPU Direct技术等。Fermi GTX 480拥有480个流处理器,带宽达到177.4GB/s,比Tesla架构提高了一倍以上,代表了GPU计算能力的提升。使用该架构的GPU有Geforce 400系列等。
2012年3月发布,英伟达发布Kepler架构,采用28nm制程,是首个支持超级计算和双精度计算的GPU架构。Kepler GK110具有2880个流处理器和高达288GB/s的带宽,计算能力比Fermi架构提高3-4倍。Kepler架构的出现使GPU开始成为高性能计算的关注点。使用该架构的GPU有K80等。
2014年2月发布,Maxwell针对流式多处理器(SM)采用一种全新设计,可大幅提高每瓦特性能和每单位面积的性能。虽然 Kepler SMX 设计在这一代产品中已经相当高效,但是随着它的发展,NVIDIA的GPU架构师看到了架构效率再一次重大飞跃的机遇,而Maxwell SM设计实现了这一愿景。使用该架构的GPU有M10、M40等。
2016年5月发布,用于接替上一代的Maxwell架构。基于Pascal架构的GPU将会使用16nm FinFET工艺、HBM2、NVLink 2.0等新技术。使用该架构的GPU有GTX1050、1050Ti、1060、GP100、P6000、P5000、P100、P4、P40等。
技术白皮书:https://images.nvidia.cn/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf
2017年5月发布,Volta架构增加了Tensor Core和相应的性能指标,芯片巨大的面积815mm和先进工艺12nm FFN。使用该架构的GPU有V100等。
2018年8月发布,在该月的SIGGRAPH大会上,NVIDIA创始人兼首席执行官黄仁勋上发布了Turing架构,Turing架构引入了实时光线追踪(RTX)和深度学习超采样(DLSS)等重要功能。使用该架构的GPU有RTX 2080 Ti、Quadro RTX 6000等。
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等。
2022年3月发布,在该月的GTC大会上,NVIDIA宣布推出采用NVIDIA Hopper架构的新一代加速计算平台,这一全新架构以美国计算机领域的先驱科学家Grace Hopper的名字命名,将取代两年前推出的NVIDIA Ampere架构,使用该架构的GPU有H100等。
技术白皮书: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等。
我本地电脑显卡GPU是RTX4060Ti(后续文章也会基于该GPU来操作),而RTX4060Ti基于Ada Lovelace架构,因此本文结合Ada Lovelace技术白皮书中的 AD102 继续深入谈谈GPU架构。
如下图所示,一块AD102 GPU包含:
图形处理集群(Graphics Processing Clusters)GPC属于GPU的次级单位,一个GPU包含多个GPC,GPU的架构和代号不同,GPC的数量也不同,如果把GPC展开,就会得到如下结构图,一个GPC包含:
流式多处理器(Streaming Multiprocessors)SM是英伟达GPU中的一种计算核心,用于执行图形和计算任务。一般一个GPC包含多个SM,每个SM氛围4个子块,每个子块包含:
SM除了子块资源,还有:
GPU一般包含三种核心:cuda core、tensor core、RT core,这三种核心各自具有不同的特性和功能:
本文简单总结了NVIDIA GPU架构发展历史,并介绍了Ada Lovelace架构的AD102型号GPU的内部结构,通过这些内容,我们对GPU有了更多的了解。了解GPU结构也是很有必要的,因为与CPU编程不同,GPU的cuda编程与GPU结构息息相关,只有结合对应GPU的特性,才能写出更加高效的cuda程序。
接下来会写一批cuda编程相关的文章,敬请期待。
微信公众号卡巴斯同步发布,欢迎大家关注。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。