【硬件知识】从零开始认识GPU

news2024/9/20 10:47:18

【硬件知识】从零开始认识GPU

  • 一、GPU的发展史简介
  • 二、GPU主要构成
  • 三、GPU与AI的关系

一、GPU的发展史简介

GPU(图形处理器)的发展史是一段充满创新与变革的历程,它不仅改变了计算机图形显示的方式,还推动了高性能计算、人工智能等多个领域的发展。以下是GPU发展史的概述及其中的一些趣闻。

GPU发展史

  1. 早期发展阶段
    起源:GPU的起源可以追溯到早期的图形显示控制器,如IBM在1981年发布的IBM 5150个人电脑中的黑白显示适配器和彩色图形适配器。这些设备虽然简单,但为后续的图形处理器发展奠定了基础。
    2D图形加速:1991年,S3 Graphics推出的“S3 86C911”标志着2D图形硬件加速时代的到来,它能够进行字符、基本2D图元和矩形的绘制。
    3D图形加速:1994年,3DLabs发布的Glint300SX是第一颗用于PC的3D图形加速芯片,它支持高氏着色、深度缓冲、抗锯齿等特性,开启了显卡的3D加速时代。然而,这个阶段的显卡大多没有执行统一的标准,加速功能也不尽相同。
  2. GPU概念的提出
    GeForce 256:1999年,NVIDIA公司在发布其标志性产品GeForce 256时,首次提出了GPU的**概念。**这款GPU整合了硬件变换和光照(T&L)、立方环境材质贴图和顶点混合等特性,极大减轻了CPU的负担,标志着GPU时代的正式到来。
  3. 统一渲染架构的兴起
    DirectX 8与Shader Model:2001年微软发布DirectX 8,提出了渲染单元模式(Shader Model)的概念,引入了顶点着色器(Vertex Shader)和像素着色器(Pixel Shader),标志着固定管线架构的终结和可编程渲染架构的开始。
  4. 统一渲染架构:随着DirectX 10的推出,shader不再扮演固定的角色,每一个shader都可以处理顶点和像素,这就是统一渲染着色器(Unified Shader)。第一款采用统一渲染架构的桌面GPU是NVIDIA在2006年发布的GeForce 8800 GTX(核心代号G80),它极大提高了GPU的利用率和性能。
  5. GPU的广泛应用与架构创新
    CUDA架构2006年NVIDIA发布了首个通用GPU计算架构Tesla,它采用全新的CUDA架构,支持使用C语言进行GPU编程,使GPU从专用图形处理器转变为通用数据并行处理器。
    架构演进:随后,NVIDIA推出了Fermi、Kepler、Maxwell、Pascal、Volta、Turing和Ampere等GPU架构,不断增强GPU的计算能力和程序性,推动GPU在图形渲染、人工智能和高性能计算等领域的应用。
  6. 趣闻
    像素窃取攻击:在GPU的发展过程中,也出现了一些有趣的安全挑战。例如,研究人员发现了一种称为“像素窃取”的攻击方法,通过在恶意网站嵌入iframe标签,利用GPU的数据压缩方法跨域获取敏感数据,如用户名和密码。这一发现揭示了GPU在安全领域的新挑战。
    GPU在抗疫中的应用:在2020年的新冠肺炎疫情中,GPU集群为超级计算机提供了强大的计算能力,加速了病毒研究和新药筛选的过程。例如,美国橡树岭国家实验室的研究人员利用IBM的Summit超级计算机(搭载了多个NVIDIA Volta V100 GPU)筛选出了77种可能与蛋白质结合并阻止病毒发挥作用的化合物。

GPU的发展史是一部充满创新与挑战的史诗,它不仅改变了我们的视觉体验,还推动了多个领域的技术进步。随着技术的不断发展,我们可以期待GPU在未来继续发挥更大的作用。

二、GPU主要构成

GPU(Graphics Processing Unit,图形处理单元)的内部结构相对复杂,但主要可以归纳为几个关键组成部分。以下是对GPU内部结构的一个详细概述:

  • 流式多处理器(Streaming Multiprocessors, SMs)
    核心组件GPU的核心计算单元是流式多处理器(SMs),它们负责执行并行计算任务每个SM包含多个CUDA核心(或称为流处理器,SPs),以及控制模块、寄存器、缓存和指令流水线等部件
    并行能力:每个SM都能支持数百个线程并发执行,这些线程被组织成线程束(Warp)线程块(Block),以实现高效的并行处理。
    计算能力:随着技术的发展,SM的计算能力不断提升,包括支持更复杂的指令集和更高的浮点运算性能。

  • 层级存储结构
    全局内存(Global Memory):类似于CPU的内存,容量大但访问速度相对较慢。GPU和CPU都可以访问全局内存,但GPU通常具有独立的显存来存储全局内存数据。
    L2缓存(L2 Cache):位于GPU芯片内部,用于缓存从全局内存读取的数据,以减少对全局内存的访问延迟。
    L1缓存/共享内存(L1 Cache/Shared Memory):通常位于SM内部,存取速度比全局内存快,用于存储线程间共享的数据或临时计算结果。
    寄存器(Registers):每个线程都有自己的寄存器组,用于存储操作数和中间结果,存取速度最快。

  • 其他关键组件
    特殊函数单元(Special Function Units, SFUs):执行特殊数学运算,如幂函数、对数函数、三角函数等。
    加载/存储单元(Load/Store Units, LD/ST Units):辅助线程从全局内存、共享内存或寄存器中加载或存储数据。
    纹理读取单元(Texture Units)和纹理缓存(Texture Cache):用于加速图形渲染中的纹理数据访问。

  • 内部连接网络(Interconnect Network)
    GPU内部各组件之间通过复杂的连接网络进行通信和数据传输,确保高效的并行计算和数据访问。

  • GPU RTX 4080结构图
    在这里插入图片描述

    • 供电模块:负责给GPU供电,保证有足够的电量驱动GPU正常工作
      在这里插入图片描述

    • 全局显存
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • GPU核心

      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 其他模块,如1v8控制器、ARGB神光同步模块、STRIX功能单片机等

    • PCIe4.0接口:负责数据快速传输
      在这里插入图片描述

三、GPU与AI的关系

AI与GPU之间存在密切的关系,这主要源于GPU在并行计算方面的卓越性能,这恰好满足了AI大模型在处理海量数据和进行复杂计算时的需求。以下详细解释为何AI与GPU有关系:

  1. GPU的并行计算能力
    核心数量:GPU拥有成百上千的处理核心,这使得它能够同时执行多重计算任务。相比之下,CPU的核心数量较少,通常不超过100个。
    计算效率:GPU的并行计算能力使得它在处理大规模数据和复杂计算任务时表现出色,尤其适合进行大量的矩阵运算和张量操作,这是AI模型训练和推理过程中的关键计算任务。
  2. GPU在AI中的应用
    深度学习模型训练:AI大模型,如深度学习神经网络,需要进行大量的矩阵运算和数据处理。GPU通过其强大的并行计算能力,能够显著加速这些计算过程,从而缩短模型训练时间,提高训练效率。
    推理加速:在模型推理阶段,GPU同样能够提供高效的计算能力,使得AI模型能够更快地处理输入数据并给出结果。
  3. GPU与AI的协同发展
    硬件升级:随着AI技术的不断发展,对计算能力的需求也在不断增加。为了满足这些需求,GPU的性能也在不断提升,新的GPU产品不断涌现,为AI大模型提供了更加强大的计算支持。
    软件优化:主流的深度学习框架,如TensorFlowPyTorch,都进行了针对GPU的优化,以确保深度学习模型能够在GPU上高效运行。这些优化包括针对GPU架构的特定指令集、内存管理和数据流优化等。
  4. GPU与CPU的区别
    任务类型:CPU更适合处理日常的单线程任务,如操作系统管理、文件处理等。而GPU则更适合处理并行计算任务,如图像处理、视频渲染和AI计算等。
    计算模式:CPU通常采用串行计算模式,即按照指令顺序逐一执行。而GPU则采用并行计算模式,能够同时处理多个计算任务。

GPU以其强大的并行计算能力成为AI大模型实现高效计算的重要工具之一。AI与GPU之间的紧密联系不仅推动了AI技术的快速发展,也促进了GPU技术的不断创新和升级。

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

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

相关文章

Oracle手动误删物理上的数据文件解决办法

背景: 手动删除了一个物理上的数据文件,dbf文件,数据库重启之后无法open 把oracle的一个数据文件删了,重启报错,怎样才能打开数据库?无备份 这个数据文件是无用的,因删除方式不对导致无法开机 …

Centos7通过reposync搭建本地Yum源

目录 1. 服务端搭建 1.1. 安装相关软件包 1.2. 加载几个常用的yum源 1.3. 创建文件保存目录 1.4. 把各仓库同步到本地 1.5. 生成仓库信息 1.6. 定时任务更新仓库 1.7. nginx配置下载服务 1.8. 内网测试nginx服务配置是否正确 2. 客户端配置 前言:之前使用…

C++STL之list容器:基本使用及模拟实现

目录 有了vector,为何还需list list的使用 1,push_back、push_front、pop_back、pop_front的使用 2,正向、反向、const正向、const反向迭代器的使用 正向、反向迭代器的使用 const正向、const反向迭代器的使用 3,operator …

Datawhale x李宏毅苹果书AI夏令营深度学习详解进阶Task03

在深度学习中,批量归一化(Batch Normalization,BN)技术是一种重要的优化方法,它可以有效地改善模型的训练效果。本文将详细讨论批量归一化的原理、实现方式、在神经网络中的应用,以及如何选择合适的损失函数…

淘宝商品评论API:获取商品使用场景与评价

淘宝的商品评论API(通常通过淘宝开放平台提供)允许开发者获取商品的评论信息,包括评价内容、评分、图片等。然而,直接获取特定商品的使用场景(即用户如何使用商品的具体描述)可能不是所有API都直接提供的&a…

【mysql】mysql目录结构和源码和mysql基础练习

mysql目录结构和源码的说明: 也就是之前说四个位置有提到的两个位置, 1软件安装位置bin 把bin目录加入环境变量就可以直接在命令行调用, "***\MySQL\MySQL Installer for Windows\bin" 2还有一个数据库文件的安装位置 &#…

华为云征文|基于华为云Flexus X实例部署Redis及案例实践详解

目录 前言 一、华为云Flexus X实例购买 1.1 Flexus X实例购买 1.2 登录Flexus X实例 二、Flexus X实例安装宝塔面板 2.1 安装宝塔面板 2.2 开放宝塔面板端口 2.3 登录宝塔面板 三、华为云Flexus X实例部署Redis 3.1 宝塔面板安装Redis 3.2 Redis密码设置及第三方登录 3.3 开放R…

【分立元件】电阻的基础知识

电阻与电容、电感一样都是最基本的元器件,大量使用于各种电气或电子设备中。对从事电气工作的人而言或许过于普通,平时忽视了它,但如果没有电阻,电气或电子电路就无法建立。电阻就是如此重要的元器件。 电阻的原理 电阻的数值取决于电阻材料的电阻率及其截面积和长度。 …

Java 自定义注解实现统一日志记录功能【Java核心技术_二十七】

一、什么是 Java 注解? 想象一下,你正在写一本日记,你可以在某些页面上贴上彩色的便签,上面写着一些关键词或者提醒。在 Java 中,注解就像是这些便签,它可以贴在类、方法、变量等程序元素上,为…

Vue 3 中如何对接高德地图

1. 准备工作 1.1. 获取高德地图 API Key 首先,你需要在高德开放平台注册并获取一个 API Key。访问 高德开放平台 注册并申请。 1.2. 安装依赖 在 Vue 3 项目中使用高德地图,可以通过以下步骤安装依赖: npm install types/amap-js-api --…

5.注册中心的其他实现-Nacos

文章目录 1.Nacos简介2.Nacos的安装2.1Nacos Windows本地启动不成功?2.2Linux环境下载并启动 3. Nacos的使用4.Nacos的负载均衡5.Nacos 健康检查6.Nacos 环境隔离7.Nacos 配置中心7.1为什么需要配置中心7.2 Nacos配置中心使用7.3 Data id7.4Nacos 上Linux部署服务7.…

鹰眼应急实时三维重建装备,高质量交付中!

在《2024年地方应急管理科技信息化任务书》的指导和应急管理万亿国债支撑下,全国各地正积极推进应急管理现代化建设,全力提升“数据汇聚服务能力、监测预警能力、指挥调度能力、支撑保障能力”四项应急管理能力。 制定标准化流程规范,保障交…

计算机毕业设计选题推荐-茶园茶农文化交流平台-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

分组密码的模式AES-CBC模式流程解析附:应用代码实现

CBC模式:Cipher Block Chaining mode(密码分组链接模式) CBC模式的加解密 CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。密文分组像链条一样相互连接在一起。 CBC模式的加密流程图 CBC模式的解密流程图 将一个分…

使用 `wget` 和 `curl` 命令行工具的全面指南

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

3.3 语法规则

🎓 微机原理考点专栏(通篇免费) 欢迎来到我的微机原理专栏!我将帮助你在最短时间内掌握微机原理的核心内容,为你的考研或期末考试保驾护航。 为什么选择我的视频? 全程考点讲解:每一节视频都…

Oracle RAC关于多节点访问同一个数据的过程

一、说明 Oracle RAC 存在多个计算节点,但是使用的共享存储。那么多个节点共同访问同一个资源,怎么保证一致性。 白文的逻辑理解简述: 用户1访问rac1 ,通过rac1获取AA数据块后,会加上latch锁。用户2通过rac2访问AA数据…

union不能被初始化由于有 non-trivial构造函数

背景 最近遇到一个问题&#xff0c;当定义一个union的时候&#xff0c;发现初始化失败&#xff0c;具体如下&#xff1a; class NonTrivial { public:NonTrivial(const std::string& s) : data(s) {std::cout << "NonTrivial constructed with " <<…

嵌入式OTG硬件电路分析

大家好,今天主要给大家分享一下,如何使用OTG硬件检测电路,和之前的接口有什么区别。 1. OTG接口与转换器 OTG是"On The Go"的英文缩写,字面上可以理解为“安上即可用”。USB传输是主从结构,一切USB传输都有Host发起。比如在开发板上可以插入U盘,这时开发板作为…

计算机毕业设计选题推荐-店铺租赁平台-商铺租赁系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…