NVIDIA全系列GPU技术路线演进分析

 

22fdd8fc3d0e93403191e783fa68a032.jpeg

NVIDIA GPU 架构梳理

 

近期深入研究并行计算,需探究底层硬件精髓。高性能计算界,英伟达显卡稳居霸主地位。本文旨在梳理NVIDIA GPU架构之演进历程,助您洞悉其技术脉络,把握未来计算趋势。


目录

NVIDIA GPU架构历经数次革新:从Tesla架构奠定基石,到Fermi架构提升性能,再到Kepler架构优化能效,Maxwell架构深化节能设计。Pascal架构强化深度学习,Volta架构推动高性能计算,Turing架构引领光线追踪,直至Ampere架构重塑游戏与创作体验。每一代都是技术革新的里程碑。

一、NVIDIA GPU的架构演变历史和基本概念[1]

截止2021年,发布时间离我们最近的8种NVIDIA GPU微架构是:

  • Tesla
  • Fermi
  • Kepler
  • Maxwell
  • Pascal
  • Volta
  • Turing
  • Ampere

NVIDIA以其独特的命名方式,将GPU微架构与历史上的杰出科学家相结合,其八大微架构分别致敬了特斯拉、费米、开普勒、麦克斯韦、帕斯卡、伏打、图灵和安培等科学巨匠。

其中最新的是2020年宣布的Ampere架构。

二、Tesla 架构

698ceb7773d9f1882f15445b08afe296.jpeg

经典型号是G80,在Fermi架构白皮书的开篇部分有对G80的简要介绍:

  • G80 GPU创新支持C语言,程序员无需另学新语言,即可畅享GPU强大性能。作为首款支持C语言的GPU,G80引领行业新潮流。
  • G80作为首款采用单一统一处理器的GPU,颠覆了传统独立的顶点和像素管道设计,强效执行顶点、几何、像素及计算程序,开创图形处理新纪元。
  • G80 是第一款使用标量线程处理器的 GPU,无需程序员手动管理向量寄存器
  • G80革命性引入单指令多线程(SIMT)执行模型,实现一条指令驱动多个独立线程并发执行,效能飞跃,引领计算新纪元。
  • G80革命性引入共享内存与屏障同步机制,为线程间通信开辟新天地。这一创新设计,不仅提升了通信效率,更确保了数据同步的精准性,为多线程应用带来了前所未有的性能提升。

9898d1de4b97480dcbbd5d868e86d8eb.jpeg

G80 显卡

三、Fermi架构[2]

Fermi 架构是NVIDIA GPU 架构自初代 G80 以来最重大的飞跃。

NVIDIA GPU研发团队汲取G80与GT200精华,创新设计,缔造全球首款计算GPU。研发过程聚焦关键领域:性能提升、能效优化与技术创新,为计算领域树立新标杆,引领行业未来。

  • GPU在单精度浮点性能上已超越桌面CPU十倍,但针对部分计算密集型应用,双精度性能的提升同样至关重要,我们致力于不断突破,满足您的更高需求。
  • ECC支持功能强大,助力GPU计算在数据中心安全部署。通过ECC,用户可以放心安装大量GPU,保障医疗成像、金融期权定价等敏感数据应用免受内存错误侵扰,确保数据完整性与系统稳定性。
  • True Cache Hierarchy——对于无法使用GPU共享内存的并行算法,用户渴望一个高效的缓存架构。True Cache Hierarchy应运而生,为您解决这一难题,实现更顺畅的运算体验。
  • CUDA程序员渴望更多共享内存,以加速应用。众多开发者需求超16KB的SM共享内存,助力程序飞速运行,满足高效计算新挑战!
  • 实现更迅捷的上下文切换,用户渴望在应用程序间流畅穿梭,享受极速的图形与计算互操作体验,让工作娱乐更加高效畅快。
  • 用户急需优化并行算法效率,期望实现更迅捷的读-修改-写原子操作,以满足高速处理数据的迫切需求,从而大幅提升算法执行效率。

基于以上出发点,Fermi架构有以下四大亮点:

第三代流式多处理器 (SM)

  • 每个 SM 有 32 个 CUDA 内核,是 GT200 的 4 倍
  • 8 倍于 GT200 的峰值双精度浮点性能
  • Dual Warp Scheduler,实现双warp指令的高效调度与分派,确保并行处理,提升整体运算效率,助力实现更快速、更稳定的数据处理。
  • 64 KB RAM,可配置共享内存和 L1 cache

第二代并行线程执行 ISA

  • 具有完整 C++ 支持的统一地址空间
  • 针对 OpenCL 和 DirectCompute 进行了优化
  • 完整的 IEEE 754-2008 32 位和 64 位精度
  • 带有 64 位扩展的完整 32 位整数路径
  • 支持过渡到 64 位寻址的内存访问指令
  • 通过预测提高性能

改进的内存子系统

  • NVIDIA Parallel DataCache TM 层次结构,拥有可配置的L1与Unified L2 Caches,以卓越性能提升数据处理效率,为您带来前所未有的计算体验,让每一份数据价值最大化。
  • 第一个支持 ECC 内存的 GPU
  • 大幅提升原子内存操作性能

NVIDIA GigaThread TM 引擎

  • 应用程序上下文切换速度提高 10 倍
  • 并发内核执行
  • 乱序线程块执行
  • 双重叠内存传输引擎

以上是Fermi 架构相较于初代架构提升的地方

下面具体看看Fermi 架构的配置

56f21e7de756d3a9640563efd7fa70f4.jpeg

Fermi 架构

首款基于Fermi架构的GPU震撼登场,采用30亿晶体管精心打造,拥有强大512个CUDA内核,性能卓越,引领行业新风尚!

这512个CUDA内核巧妙布局,形成16个SM模块,宛如垂直的矩形阵列,紧密环绕在共享的L2缓存周围。每个SM模块均内含32个CUDA内核,高效协作,共同构建出强大的计算力,助力各类复杂任务的快速处理。

一个CUDA 内核为一个线程在每个时钟周期里执行一条浮点或整数指令

6个64位显存分区,构建出强大的384位显存接口,赋予显卡强劲性能。总支持容量高达6GB的GDDR5 DRAM显存,确保流畅运行各类高负载任务。

GDDR5:第五版图形用双倍数据传输率存储器
DRAM:动态随机存取存储器

主机接口凭借PCI-Express技术,高效连接GPU与CPU。Giga Thread全局调度器精准分配线程块至SM线程调度器,确保处理任务迅速而有序。此系统结构专业,操作精准,助力计算性能大幅提升,为用户带来前所未有的高效体验。

a32bfa69feb641a64b179ee8a82a7584.jpeg

Fermi图形渲染架构

NVIDIA GPU自Fermi系列起,均内置GPC(图形处理集群),这一强大单元宛如独立GPU般的存在。每个GPC配备一光栅引擎与四个SM(流式多处理器),共同构筑起强大的图形处理体系。众多GPC协同工作,确保了GPU的高效运行与卓越性能,为用户带来无与伦比的图形处理体验。

e69ad78cdd79ce087a1ac57e4a0cf733.jpeg

Fermi Streaming Multiprocessor (SM)

上图是将16个SM中的 1 个拿出来放大后的详细结构图,其中包含:

  • 橙色部分:2 个 Warp Scheduler/Dispatch Unit
  • 绿色部分:32 个 CUDA 内核,分在两条 lane 上,每条分别是 16 个
  • 浅蓝色部分:register file-寄存器文件和 L1 cache
  • 16 个 Load/Store units (LD/ST Unit)
  • 4 个 Special Function Units (SFU)

每款SM均搭载32个CUDA内核,即图中绿色的Core小方块。每个内核均配备全流水线化的整数算术逻辑单元(ALU)和浮点单元(FPU),确保高性能计算。SM的卓越设计,让计算效能得到显著提升,为您带来前所未有的体验。

978619e6b46ee6420d7824a152830240.jpeg

CUDA 内核

SM,作为GPU架构的核心组件,是实现硬件并行性的关键所在。其重要性不言而喻,正是SM的卓越性能,赋予了GPU强大的并行处理能力。

四、Kepler架构

a4022fd185548ccab114f587ed0608ba.jpeg

Kepler架构以精简SM单元数(现称SMX单元)并大幅扩充每组SM单元中的CUDA内核数为核心理念。相较于Fermi架构,Kepler架构实现了跨越式提升,每个SM单元的CUDA内核数激增五倍,从32个跃升至192个,展现了其强大的计算能力。

81f2f5a92b1d5852bfedf23964982418.jpeg

在每个SMX中:

  • 4 个 Warp Scheduler,8 个 Dispatch Unit
  • 绿色:192个 CUDA 内核,分在12条 lane 上,每条分别是 16 个
  • 黄色:搭载64个DP双精度运算单元,高效分布于4条lane,每条lane精准配置16个单元,运算性能卓越。
  • 32 个 LD/ST Unit
  • 32 个 SFU

五、Maxwell架构

Maxwell架构的SM单元与Kepler架构相比,经历了显著变革。此代SM单元独特之处在于,它巧妙地模仿了4个Fermi架构SM单元的2x2排列方式,这一创新设计被称为SMM单元,展现了架构的先进性与高效性。

fe4c34cda4a493ff0671d16dca36ac15.jpeg4d3ab88d29122676f23dd5437b280325.jpeg

SMM采用创新的象限设计,拥有四个32核处理块,每块配备专用warp调度程序,实现高效并行处理。该设计能在每个时钟周期内迅速分派两条指令,大幅提升计算效率,满足高性能计算需求。

每个 SMM 单元提供

  • 八个纹理单元(texture units)
  • 一个多态引擎(polymorph engine-图形的几何处理)
  • 专用寄存器文件和共享内存。

每个处理块中:

  • 1个 Warp Scheduler,2 个 Dispatch Unit
  • 绿色:32个 CUDA 内核
  • 8个 LD/ST Unit
  • 8个 SFU

CUDA内核总数自Kpler时代起,每组SM单元由192个精简至128个,尽管数量减少,但每组SMM单元逻辑控制电路更为丰富,实现了更精细的控制,展现了技术的优化与进步。

Maxwell:NVIDIA开发者博客盛赞的顶级CUDA GPU!其卓越性能超越以往,堪称史上最强。引领技术革新,成就无限可能,让你轻松驾驭最复杂计算任务,尽显科技魅力!

六、Pascal架构

4958780f148db64039ad382b3d50769a.jpeg

pascal架构的GP100核心

这里有一个新概念:核心

NVIDIA架构各异,Pascal架构独领风骚,其核心阵容强大,包括GP100与GP102两大核心,展现卓越性能。

  • GP100:3840个CUDA核心,60组SM单元;
  • GP102:3584个CUDA核心,28组SM单元;

第2组数据存疑

核心为完整GPU模组,图示pascal架构GP100核心,内含60个SM单元,高效强大,尽显技术之精髓,为您带来卓越性能体验。

各类显卡产品灵活采用不同GP100配置,既可选择满配,亦可进行减配。例如,Tesla P100显卡便巧妙运用56个SM单元,实现高效能输出,展现卓越性能。

ee08accbc09cd8c5317d833887187d5c.jpeg

GP100核心的SM单元

每个SM单元精巧划分为两个Process Block,每个Block内藏高效处理机制,实现双重效能,助力计算速度飙升,性能卓越非凡。

  • 1个 Warp Scheduler,2 个 Dispatch Unit
  • 绿色:32个 CUDA 内核
  • 黄色:搭载16个DP双精度运算单元,均匀分布于2条lane中,每条lane均配备8个单元,高效能计算尽在掌控。
  • 8个 LD/ST Unit
  • 8个 SFU

CUDA内核总数自Maxwell时代起,每组SM单元从128个精简至64个,显著提升了效率。这一代最亮眼之处在于重新引入了DP双精度运算单元,实现了性能与精度的双重提升。

制程工艺升级到了16nm,性能大幅提升,功耗却不增加。

七、Volta架构

5a8471d95403f42e62f8cee6ce06680a.jpeg

Volta架构的GV100核心

82226037724c429ef7489302d2841c06.jpeg

GV100核心的SM单元

每个SM单元精细划分为四个Process Block,每个Block独立运作,高效协同,确保数据处理速度与精度的双重提升。

  • 1个 Warp Scheduler,1个 Dispatch Unit
  • 8 个 FP64 Core
  • 16 个 INT32 Core
  • 16 个 FP32 Core
  • 2 个 Tensor Core
  • 8个 LD/ST Unit
  • 4个 SFU

在前几代架构中:

一个CUDA 内核在每个时钟周期里只能为一个线程执行一条浮点或整数指令

自Volta架构起,CUDA内核巧妙地被拆分为FP32与INT32两部分,此举之妙在于每一时钟周期内,浮点与整数指令得以并行执行,从而显著提升计算效率,为高性能计算领域带来革命性的进步。

Volta架构不仅擅长传统的单双精度计算,更独特的是新增了专用的Tensor Core张量单元,专为深度学习、AI运算等高效能需求而设计,性能卓越。

八、Turing架构

2f20299cfebc8488595bcd1c90c3979d.jpeg

Turing架构的TU102核心

Turing架构目前一共有三种核心:

  • TU102核心
  • TU104核心
  • TU106核心

5b365b00bc1285f4c31b5094d170cd90.jpeg

TU102核心的SM单元

每个SM单元有4个处理块,每个处理块中:

  • 1 个 Warp Scheduler,1 个 Dispath Unit
  • 16 个 INT32 Core
  • 16 个 FP32 Core
  • 2 个 Tensor Core
  • 4 个 LD/ST Unit
  • 4 个 SFU

这一代架构去掉了对FP64的支持。

九、Ampere架构

6d0c748997d6fa886d59b1fab63cecdb.jpeg

Ampere架构的GA102核心

53c8ffae035e0eb2fbbf3d9bf05885c6.jpeg

GA102核心的SM单元

每个SM单元分成4个处理块,每个处理块中:

  • 1 个 Warp Scheduler,1 个 Dispatch Unit
  • 8 个 FP64 Core
  • 16 个 FP32 Core
  • 16 个 INT32 Core
  • 1 个 Tensor Core
  • 8 个 LD/ST Unit
  • 4 个 SFU

本代架构创新回归FP64 Core,更承袭Volta架构之精髓,推出NVIDIA第三代Tensor技术。我们秉持每代架构更新一次Tensor的承诺,不断推动技术革新,为您带来前所未有的计算体验。

ad9dbf6654a4c05fe5d0e592e0594618.jpeg

de34ee66af1c14c2146ef68abd859bd8.jpeg 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/310784.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录Day41:动态规划Part3

Leetcode 343. 整数拆分 讲解前: 毫无头绪 讲解后: 这道题的动态思路一开始很不容易想出来,虽然dp数组的定义如果知道是动态规划的话估摸着可以想出来那就是很straight forward dp定义:一维数组dp[i], i 代表整数的值&#xf…

WEB前端-笔记

目录 一、字体 二、背景图片 三、显示方式 四、类型转换 五、相对定位 六、绝对定位 七、固定定位 八、Index 九、粘性定位 十、内边距 十一、外边距 十二、边框 十三、盒子尺寸计算问题 十四、清楚默认样式 十五、内容溢出 十六、外边距的尺寸与坍塌 十七、行…

构建高效可靠的Zabbix监控系统

前言 监控系统对于确保系统稳定性、性能优化以及故障排除至关重要。zabbix 作为一款功能强大且灵活的监控解决方案,可以通过一个友好的界面进行浏览整个网站所有服务器状态、在 web 前端方便查看数据以及可以回溯事故时的问题和告警。 目录 一、zabbix 监控介绍 …

electron打包编译国产统信uos系统 arm架构 x86架构 linux mac等环境

electron v21版本以上统信UOS会提示gbm_bo_map错误,可使用v8~v21版本的electron 打包linux包需要再linux系统下运行编译,arch可以指定架构 如果要在统信uos上运行,需要打包成deb格式,在target中修改成deb 或者用第三方软件把app…

建立时间/保持时间为负是什么情况

目录 建立时间为负保持时间为负参考 在说明建立时间和保持时间为何为负的情况下,首先可以看看建立时间Tsu和保持时间Th的由来,可参考如下两篇文章: 建立时间和保持时间理解_为什么要满足建立时间和保持时间-CSDN博客 ic基础|时序篇&#xff…

基于Springboot的旅游管理系统

基于SpringbootVue的旅游管理系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页展示 旅游方案展示 旅游资讯 后台管理员登录 后台管理页面首页 用户管理 …

全流程HEC-RAS 1D/2D水动力与水环境模拟技术应用

水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而,一方面水动力和水环境模型的使用非常复杂,理论繁复;另一方面,免费的水动力和水环境软件往往缺少重要功能&a…

MyBatis 中的动态 SQL 的相关使用方法

为什么会有动态SQL,把SQL写死不是比较方便吗?其实有很多的举例,这里我那一个常见的来说,像我们用户注册,会有必填字段和非必填字段,有些传来的参数不一样,那对应的SQL也不一样,因此&…

c++ 多文件编程

1.结构目录 声明类:用于声明方法,方便方法管理和调用; 实现类:用于实现声明的方法; 应用层:调用方法使用 写过java代码的兄弟们可以这么理解: 声明类 为service层 实现类 为serviceimpl层 应用层 为conlloter层 2.Dome 把函数声明放在头文件xxx.h中&…

前端三剑客 —— JavaScript (第七节)

目录 内容回顾 DOM编程 事件对象* 事件驱动机制 标签绑定 DOM0事件模型 DOM2事件 捕获/冒泡 事件解除 窗口事件属性(Window Event Attributes) 表单事件(Form Events) 键盘事件(Keyboard Events&#xff09…

springboot整合vosk实现简单的语音识别功能

vosk开源语音识别 Vosk是开源的语音识别工具包。Vosk支持的事情包括: 支持十九种语言 - 中文,英语,印度英语,德语,法语,西班牙语,葡萄牙语,俄语,土耳其语,越…

TCP/IP协议—TCP

TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手(建立连接)四次挥手(释放连接)连接状态 TCP协议 传输控制协议(TCP,Transmission Control Protocol)是一种…

ubuntu16.04安装Eclipse C/C++

1.安装 JDK 官网源码安装 首先打开JDK官网,JDK1.8的下载网址为:https://www.oracle.com/cn/java/technologies/downloads/#java8-windows,进入到网址如下图所示: 向下滑动到 JDK1.8的下载界面,如下图所示&#xff1a…

(十)C++自制植物大战僵尸游戏设置功能实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/m0EtD 游戏设置 游戏设置功能是一个允许玩家根据个人喜好和设备性能来调整游戏各项参数的重要工具。游戏设置功能是为了让玩家能够根据自己的需求和设备性能来调整游戏,以获得最佳的游戏体验。不同的游戏和平…

前端框架模板

前端框架模板 1、vue-element-admin vue-element-admin是基于element-ui 的一套后台管理系统集成方案。 **功能:**https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能 **GitHub地址:**GitHub - PanJiaChen/vue-element-admin: :t…

Linux学习之路 -- 进程篇 -- PCB介绍 -- 进程的孤儿和僵尸状态

前面介绍了进程的各种状态,下面介绍比较特殊的两种状态 -- 孤儿和僵尸(僵死)。 一、僵尸状态 我们创建进程的目的其实就是想要进程帮我们执行一些任务,当任务被执行完后,进程的使命其实就已经完成了。此时我们就需要…

【机器学习300问】69、为什么深层神经网络比浅层要好用?

要回答这个问题,首先得知道神经网络都在计算些什么东西?之前我在迁移学习的文章中稍有提到,跳转链接在下面: 为什么其他任务预训练的模型参数,可以在我这个任务上起作用?http://t.csdnimg.cn/FVAV8 …

MySQL8.0.20 下载与安装

一、下载 MySQL服务器下载安装: 官网社区版地址: https://downloads.mysql.com/archives/installer/ 二、安装 安装注意事项---成功秘诀 安装密码不要设置复杂了,千万要记住密码,比如root和mysql就很好;不要随意卸…

科技云报道:AI大模型疯长,存储扛住了吗?

科技云报道原创。 AI大模型正在倒逼数字基础设施产业加速升级。 过去一年半,AI大模型标志性的应用相继出现,从ChatGPT到Sora一次次刷新人们的认知。震撼的背后,是大模型参数指数级的增长。 这种数据暴涨的压力,快速传导到了大模…

node.js服务器静态资源处理

前言:node.js服务器动态资源处理见 http://t.csdnimg.cn/9D8WN 一、什么是node.js服务器静态资源? 静态资源服务器指的是不会被服务器的动态运行所改变或者生成的文件. 它最初在服务器运行之前是什么样子, 到服务器结束运行时, 它还是那个样子. 比如平…