3 分钟看完 NVIDIA GPU 架构及演进

news2024/11/23 19:59:28

近期随着 AI 市场的爆发式增长,作为 AI 背后技术的核心之一 GPU(图形处理器)的价格也水涨船高。GPU 在人工智能中发挥着巨大的重要,特别是在计算和数据处理方面。目前生产 GPU 主流厂商其实并不多,主要就是 NVIDIA、AMD、Intel、高通等厂家。本文将主要聊聊 NVIDIA GPU 的核心架构及架构演进。

深入了解GPU架构

在探讨 NVIDIA GPU 架构之前,我们先来了解一些相关的基本知识。GPU 的概念,是由 NVIDIA 公司在 1999 年发布 Geforce256 图形处理芯片时首先提出,从此 NVIDIA 显卡的芯就用 GPU 来称呼,是专门设计用于处理图形渲染的处理器,主要负责将图像数据转换为可以在屏幕上显示的图像。

与 CPU 不同,GPU 具有数千个较小的内核(内核数量取决于型号和应用),因此 GPU 架构针对并行处理进行了优化。GPU 可以同时处理多个任务,并且在处理图形和数学工作负载时速度更快。GPU 架构是赋予 GPU 功能和独特能力的一切,主要组成包括:

  • CUDA 核心:GPU 架构中的主要计算单元,能够处理各种数学和逻辑运算。
  • 内存系统:包括 L1、L2 高速缓存和共享内存等,用于存储数据和指令,以减少 GPU 访问主存的延迟。
  • 高速缓存和缓存行:用于提高 GPU 的内存访问效率。
  • TPC/SM:CUDA 核心的分组结构,一个 TPC 包含两个 SM,每个 SM 都有自己的 CUDA 核心和内存。
  • Tensor Core( 2017 年 Volta 架构引入):Tensor张量核心,用于执行张量计算,支持并行执行FP32与INT32运算。
  • RT Core(2018 年 Turing 架构引入 ):光线追踪核心,负责处理光线追踪加速。

此外,NVIDIA GPU 架构还包括内存控制器、高速缓存控制器、CUDA 编译器和驱动程序等其他组件,这些组件与SM 和其他核心组件协同工作,可以实现高效的并行计算和内存访问,提高 GPU 的性能和能效。下面我们来详细了解一下这些 GPU 架构每一部分的作用及功能。

Streaming Multiprocessor(SM)

从上图中可以看出 GPU 主要有许许多多的 SM 组成,SM 全称为 Streaming Multiprocessor 流式多处理器,是 NVIDIA GPU 架构中的重要组成部分,也是 GPU 的基本计算单元。每个 SM 由多个 CUDA 核心、纹理单元、Tensor Core、流控制器和存储器等辅助单元组成,可以同时执行多个计算任务,并具有高度的灵活性和性能。

最先支持 CUDA 的 GPU —— G80 或 GeForce 8800 GTX,包含 8 个 TPC,每一个 TPC 中有两个 SM,一共有 16 个 SM。接下来支持 CUDA 的 GPU 是 GT200 或 GeForceGTX 280,它增加了 TPC 中的 SM 数量,包含 10 个 TPC 并且每个 TPC 含有 3 个 SM,总共是 30 个 SM。每一代 GPU 架构所支持的 SM 核心数量都不相同,如在 2020 年 Ampere 架构的完整 GA102 核心中,总共有 92 个 SM,每个 SM 包含 128 个 CUDA 核心、4 个 Tensor 核心和 1 个RT 核心。

CUDA Core

看完 SM 的介绍,接下来我们看看构成 SM 最重要的组成部分 CUDA Core。

CUDA 全称为统一计算设备架构 (Compute Unified Device Architecture) ,是一个并行计算平台,同时也是一个应用程序编程接口 (API)。它是由 NVIDIA 专门设计,目的在于让软件开发人员能够更好地控制他们可以使用的物理资源。使用 C 或 C++ 编码的计算机程序员对资源分配有很大的控制权。CUDA 系统极大地促进了 OpenACC 和 OpenCL 等框架的普及和使用。CUDA 核心也是并行处理器,允许不同处理器同时处理数据。这与双核或四核 CPU 类似,只不过 GPU 有数千个 CUDA 核心。区别在于 CPU 更像是一个管理员,负责控制整个计算机,而 GPU 适合做具体的工作。

并行计算

CUDA 的巨大优势是任务并行化,允许通过扩展在 C 和 C++ 中并行工作,处理不同重要性级别的任务和数据。这些并行化任务可以使用各种高级语言来执行,例如 C 语言、C++以及 Python,或者简单地使用包含 OpenACC 指令的开放标准。

CUDA 是目前最常用的任务加速平台,并且技术的发展已经取得了巨大的进步。CUDA 技术是使用最广泛、最重要的技术之一。

应用范围

CUDA 应用范围包括加密哈希、物理引擎、游戏开发等相关项目,在科学行业,在测量、测绘、天气预报和其他等相关项目得到了很大改善和简化。目前,数以千计的研究人员可以在学术和制药领域从事分子动力学研究,这简化了药理学的开发和研究,从而在治疗癌症、阿尔茨海默病和其他当今无法治愈的疾病等复杂疾病方面在更短的时间内取得进展。

CUDA 还可以对有风险的金融操作进行预测,将效率加快至少十八倍或更多。其他例子包括 Tesla GPU 在云计算和其他需要强大工作能力的计算系统中广受好评。CUDA 还允许自动驾驶车辆简单高效地运行,能够进行其他系统无法完成的实时计算。这种计算敏捷性使车辆能够在很短的时间内做出重要决策,避开障碍物,顺利行驶或避免事故。

Tensor Core

随着 GPU 开始用于人工智能和机器学习工作,NVIDIA 从 2017 年开始在其数据中心 GPU 的 Volta 架构中引入了 Tensor Core。但是直到NVIDIATuring 架构的推出(RTX 20 系列 GPU)这些核心才出现在消费类 GPU 中。

CUDA 核心足以满足计算工作负载,但 Tensor Core 的速度明显更快。CUDA 核心每个时间周期只能执行一项操作,但 Tensor 核心可以处理多项操作,从而带来令人难以置信的性能提升。从根本意义上来说,Tensor Core 所做的就是提高矩阵乘法的速度。

计算速度的提升确实是以准确性为代价的,从这点上来说 CUDA 核心的准确度要高得多。但是在训练机器学习模型时,Tensor Core 在计算速度和总体成本方面要有效得多,此时准确性的损失常常被忽略。

较之 CUDA Core 专门处理图形工作负载,Tensor Core 更擅长处理数字工作负载。在它们同时工作的过程中,在某些场景下可以互换。

RT Core

2018 年 NVIDIA 发布了新一代的旗舰显卡 RTX 2080,搭载了全新的 Turing(图灵)架构。全新的架构也同时添加了名为 RT Core 的计算单元,相当于在 Volta 上增加的 Tensor Core,都是为了特殊应用架构而设计的计算单元。该计算单元的目的是为了让 GPU 拥有实时光线追踪的能力,一种可以让画面更换新的渲染演算法。

光线追踪(Ray Tracing)的原理是从用户端为起点,寻找光线反射和折射的路径并算出用户会看到的物体颜色及亮度。然而,由于使大量光线在空间中反射决策,且空间中实际的状况未知,每一张图所需的计算量极其巨大,无法即时计算出结果,因此游戏产业尚未大量采用该技术。在发布的 RTX 2080 显卡中,NVIDIA 正式将 RT Core 加入绘图卡,让实时光学渲染法(Rendering)不再是说说而已。

GPU架构演进

在了解完 GPU 架构组成部分后,我们来看看 NVIDIA GPU 架构的演进。自 NVIDIA 成立之初,其 GPU 架构历经多次变革。从 G80、GT200 系列,到 Fermi、Kepler、Pascal 和 Volta 架构等,以及近期的 Ampere 和 Hopper 架构。值得一提的是架构命名方式从 Tesla 架构开始每一代以科学家命名,每一代都有其独特的设计和特点,简单介绍下其中几个架构。

  1. G80 架构:英伟达第一个 GPU 架构,采用了 MIMD(多指令流多数据流)标量架构,拥有 128 个 SP(流处理器),核心频率范围从 250MHz 到 600MHz,搭配 DDR3 显存。该架构是当时最强大的 GPU 之一,但是功耗较高。
  2. Fermi 架构:英伟达第一个采用 GPU-Direct 技术的 GPU 架构,它拥有 32 个 SM(流多处理器)和 16 个 PolyMorph Engine 阵列,每个 SM 都拥有 1 个 PolyMorph Engine 和 64 个 CUDA 核心。该架构采用了 4 颗芯片的模块化设计,拥有 32 个光栅化处理单元和 16 个纹理单元,搭配 GDDR5 显存。
  3. Volta 架构:采用了全新的设计理念和技术,拥有 256 个 SM 和 32 个 PolyMorph Engine 阵列,每个 SM 都拥有 64 个 CUDA 核心。该架构采用了全新的 Tensor 张量核心、ResNet 和 InceptionV3 加速模块等技术,搭配 GDDR6X 显存。
  4. Turing 架构:代表产品为 GeForce RTX 20 系列。该架构首次引入了光线追踪(Ray Tracing)和深度学习超级采样(DLSS),为游戏和设计领域带来了革命性的视觉效果和性能提升。此外,图灵架构还优化了着色器性能,以提高渲染效率和能效比。Turing SM 设计采用全新架构,每个 TPC(Texture and Compute Cluster,纹理和计算集群)均包含两个 SM,每个 SM 共有 64 个 FP 32 核心和 64 个 INT32 核心。也就是说,每个 SM 都包含 128 个核心。这些核心可以并行执行 FP32 与 INT32 运算。每个 Turing SM 还拥有 8 个混合精度 Turing Tensor 核心和 1 个 RT(Ray Tracing,光线追踪)核心。
  5. Ampere 架构:代表产品为 GeForce RTX 30 系列。该架构继续优化并行计算能力,并引入了更先进的 GDDR6X 内存技术,大幅提高了内存带宽和性能。相比 Turing 架构,Ampere 架构中的 SM 在 Turing 基础上增加了一倍的 FP32 运算单元,这使得每个 SM 的 FP32 运算单元数量提高了一倍,同时吞吐量也就变为了一倍。此外,安培架构还改进了着色器性能和张量核(Tensor Cores),进一步加速深度学习和人工智能任务的处理速度。

经过几十年的探索和发展,NVIDIA 的 GPU 架构以其层次化的内存设计、多线程技术、优化内存层次结构、混合精度计算技术和自动功耗优化技术,实现了高效、可扩展、灵活和能效比这几个关键目标。从最初的 GeForce 系列到最新的 Hopper 架构,NVIDIA 不断引领着 GPU 架构的发展,提供了强大的性能和创新的技术,从而在图形处理和人工智能等领域取得了显著的成功。

又拍云近期联合厚德云推出 GPU 产品,现活动期间新用户注册即可免费体验 RTX4090 GPU,暂不限体验时长哦! 有兴趣的同学点击下方链接即可免费体验~

传送门:RTX4090 0元体验入口

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用IP风险画像强化金融行业网络安全防御

在数字化时代,金融行业日益依赖互联网和技术创新,但这也使得金融机构成为网络攻击的主要目标。为了应对日益复杂的网络威胁,金融机构迫切需要采用先进的安全技术和工具。其中,IP风险画像技术成为提升网络安全的一项重要策略。 1.…

深度学习检测小目标常用方法

前言 在深度学习目标检测中,特别是人脸检测中,小目标、小人脸的检测由于分辨率低,图片模糊,信息少,噪音多,所以一直是一个实际且常见的困难问题。不过在这几年的发展中,也涌现了一些提高小目标…

国家数据局正式揭牌,2030年数据要素市场规模或破万亿

10月25日,国家数据局正式挂牌! 自今年3月国务院通过《党和国家机构改革方案》提出组建国家数据局以来,国家数据局的组建工作一直在紧锣密鼓地进行中。经过7个月的筹备工作,国家数据局于2023年10月25日挂牌成立。 根据《党和国家机…

使用Dockerfile依赖maven基础镜像部署springboot的程序案例

1、准备springboot Demo代码 就一个controller层代码,返回当前时间及hello world 2、项目根目录下,新建DockerFile文件 注意,等本地配置完毕后,Dockerfile文件需要与项目helloworld同级,这里先放项目里面 3、docker …

从零开始搭建React+TypeScript+webpack开发环境-基于lerna的webpack项目工程化改造

项目背景 在实际项目中,我们的前端项目往往是一个大型的Webpack项目,结构较为复杂。项目根目录下包含了各种配置文件、源代码、以及静态资源,整体布局相对扁平。Webpack的配置文件分散在不同的部分,包括入口文件、输出目录、加载…

【JMeter】组件之 Listener监听器选择

JMeter中监听器的作用就是收集、显示JMeter取样器的结果,并以树形、图表、表格的形式显示出来。还可以将监听结果保存成文件。 View Results Tree-->察看结果树 Summary Report-->汇总报告 为测试中的每个不同命名的请求创建一行。这与聚合报告类似&#xff…

【扩散模型】实战:创建一个类别条件扩散模型

创建一个类别条件扩散模型 1. 配置和数据准备2. 创建一个以类别为条件的UNet模型3. 训练和采样 本文介绍一种给扩散模型添加额外条件信息的方法。具体地,将在MNIST数据集上训练一个以类别为条件的扩散模型。并且可以在推理阶段指定想要生成的是哪个数字。 1. 配置和…

Conda executable is not found 三种问题解决

如果在PyCharm中配置Python解释器时显示“conda executable is not found”错误消息,这意味着PyCharm无法找到您的Conda可执行文件。您可以按照以下步骤解决此问题: 1.方法一 确认Conda已正确安装。请确保您已经正确安装了Anaconda或Miniconda&#xff…

数字化工厂管理系统的三个关键技术是什么

随着科技的飞速发展,数字化工厂管理系统已经成为了现代制造业的重要发展方向。数字化工厂管理系统通过充分运用建模技术、仿真技术和单一数据源技术,实现了产品设计和生产的虚拟化,为制造业带来了前所未有的效率和创新能力。本文将深入探讨这…

Matlab的多项式留数与极点的计算

Matlab的多项式留数与极点的计算 以下面的多项式为例: 运算代码: clc clear closesyms p % 定义多项式 Zp(5*p^571*p^370*p)/(2*p^635*p^4117*p^236); % 提取分子与分母 [I,D]numden(Zp); Idouble(coeffs(I,p,"All"));%分子 Ddouble(coeffs…

轻量日志管理方案-[EFK]

使用FileBeat进行日志文件的数据收集,并发送到ES进行存储,最后Kibana进行查看展示; 这个应该是最简单,轻量的日志收集方案了。 最总方案为:FileBeatESKibana ; 【Kibana过于强大,感觉可以无限扩展】 文章目…

css:文本对齐属性vertical-align实现化学元素上标下标的显示

文档 https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align 语法 vertical-align: <value>;可选值&#xff1a; sub&#xff1a;使元素的基线与父元素的下标基线对齐。 super&#xff1a;使元素的基线与父元素的上标基线对齐。 text-top&#xff1a;使…

24张宇八套卷数一复盘(六)

张八&#xff08;六&#xff09;11/10107选择45填空20高数大题22线代大题12概率大题8 前言 临近考试冲刺阶段&#xff0c;感觉做过的卷子很难再提起精神去复盘&#xff0c;于是在这里进行一下复盘。 主要是对于整体试卷结构的把握&#xff0c;以及考试状态的复盘。 简单的卷子把…

说说React render方法的原理?在什么时候会被触发?

一、原理 首先&#xff0c;render函数在react中有两种形式&#xff1a; 在类组件中&#xff0c;指的是render方法&#xff1a; class Foo extends React.Component { render() { return <h1> Foo </h1>; } } 在函数组件中&#xff0c;指的是函…

虹科分享 | 2023温控生物技术和医药物流前景展望专题报告

2023温控生物技术和医药物流前景展望专题报告 全球供应链正在发生根本性的变化&#xff0c;而制药业对供应链的使用也在不断发展。突破性疗法和个性化药品有望带来崭新的未来&#xff0c;这也改变了我们如今的行医方式。然而&#xff0c;在监管和基础设施方面还面临着许多挑战…

常见排序算法之插入排序类

插入排序&#xff0c;是一种简单直观的排序算法&#xff0c;工作原理是将一个记录插入到已经排好序的有序表中&#xff0c;从而形成一个新的、记录数增1的有序表。在实现过程中&#xff0c;它使用双层循环&#xff0c;外层循环对除了第一个元素之外的所有元素&#xff0c;内层循…

【canvas】在Vue3+ts中实现 canva内的矩形拖动操作。

前言 canvas内的显示内容如何拖动&#xff1f; 这里提供一个 canvas内矩形移动的解决思路。 描述 如何选中canvas里的某部分矩形内容&#xff0c;然后进行拖动&#xff1f; 我的解决思路&#xff1a; **画布搭建。**用一个div将canvas元素包裹&#xff0c;设置宽高&#xf…

漏洞扫描-nuclei-poc编写

0x00 nuclei Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发&#xff0c;具有很强的可配置性、可扩展性和易用性。 提供TCP、DNS、HTTP、FILE 等各类协议的扫描&#xff0c;通过强大且灵活的模板&#xff0c;可以使用Nuclei模拟各种安全检查。 …

vue+iView实现下载zip文件导出多个excel表格

1&#xff0c;需求&#xff1a;在vue项目中&#xff0c;实现分月份导出多个Excel表格。 点击导出&#xff0c;下载zip文件&#xff0c;解压出多张表数据。 2&#xff0c;关键代码&#xff1a; <Button class"export button-style button-space" click"ex…

MPC-模型预测控制笔记

线性mpc 凸优化 二次优化问题 1&#xff1a;建立预测模型 2&#xff1a;问题模型 3&#xff1a;求解优化问题 4&#xff1a;得到的优化控制驱动系统 上述方法与qp解一样 硬约束 硬约束 四组约束条件 二次规划求解 matlab代码&#xff1a; 软约束 可以用指数函数 加入…