gpu服务器架构图(GPU和显卡里面的计算核心有什么区别)

本文目录
GPU和显卡里面的计算核心有什么区别
首先请理清几个概念,不要搞错了。
GPU,通俗来讲就是显卡身上的“CPU”,负责图形计算的芯片,每块显卡身上必定有一颗GPU芯片才能称之为显卡,无论集成显卡、核心显卡、独立显卡,其主体都是一颗GPU芯片(顶级双芯显卡有两颗,但并没有你误会的那样有11颗GPU芯片的显卡,那是名称上搞错了,我们下面再谈)。GPU决定着显卡的性能、功能、档次、价格、以及功耗发热。
GPU既然是类似CPU那样的计算芯片,那么其架构设计就影响着性能、效率、功耗等指标,并且和CPU一样其芯片架构主要由计算单元、控制单元、储存单元组成,以北极星架构的RX480为例,GPU芯片架构图如下:
(上图大体划出了三类单元的集中地,以便理解,但实际上光是计算单元里的每个小单元也都独立包含着控制单元和储存单元)
RX480的GPU芯片内部设计如上图,计算单元划分为36个CU计算核心,每个CU核心又包含了64个流处理器计算核心,所以总共就是36X64=2304个流处理器计算核心。人们通常把流处理器的数量做为计算核心计数,很少以CU来算。
很多初学者只看到计算核心几个字,并不了解实际指的是哪类“核心”,就很容易搞错了。
比如R5 2400G里的集成显卡GPU部分,包含了11个CU核心,每个CU又包含了64个流处理器,所以总共就是11X64=704个计算核心,并不是你误认为的11个GPU核心。
GPU硬件基础知识
GPU channel 是GPU与CPU之间的桥接接口,通过CPU向GPU发送GPU指令的唯一通道,GPU channel包含了两类用于存储GPU指令的buffer:
当GPU指令被写入到GPU command buffer时,系统还会向Ring buffer中写入与此指令所对应的packet,packet包含了此指令在GPU command buffer中的偏移位置与长度数据。
在执行指令的时候,GPU不是直接从GPU command buffer中读取数据,而是先经过Ring buffer读取出当前待处理指令的相关信息,再据此读取GPU command(这也是为什么Ring buffer被称之为indirect buffer的原因)。
现代GPU为了加强数据的并行化处理的强度,使用的是SIMT(Single Instruction Multi Thread,SIMD的更高级版本)体系结构,shader program运行的最小单位是thread,多个运行相同shader的threads会被打包到一个组(thread group),这个thread group,在NVIDIA被称之为warp,在AMD中被称之为wavefront。
上面这张图是从标题链接给出的Turing白皮书中截取的GPU架构图,其中包含如下几个关键缩写:
GPU中用于存储数据的结构有多种,分别是:
每种存储结构都有着各自的优缺点,因此适用于不同的应用场景,从访问速度来看,这些存储结构按照从高到低排序依次是:
RMEM 》 SMEM 》 CMEM 》 TMEM 》 LMEM 》 GMEM
RMEM与SMEM是直接集成在GPU芯片上的,而剩下的几种存储结构则是在GPU之外的芯片上的,此外,LMEM/CMEM/TMEM都有着各自的缓存机制,即在访问数据的时候都会首先从缓存中进行查找判断,再决定是否需要从更低一级速度的存储结构中进行读取。
存储在LMEM中的数据可见性与RMEM一样,都是只对负责对其进行读写的线程可见。LMEM实际上并不是一块物理存储空间,而是对GMEM的一个抽象,因此其访问速度与对GMEM的访问速度是相同的。LMEM中的数据对于一个线程而言是Local的(即只从属于当前thread的空间,对其他线程不可见),通常用于存储一些automatic变量(automatic变量指的是一些大尺寸的数据结构或者数组,因为寄存器不够,因此会塞入LMEM中),编译器在寄存器不足的时候,就会从GMEM中开辟一块空间用作LMEM。
虽然LMEM是从GMEM中分割出来的,但是其使用方式与GMEM还是有着一些区别:
如上图所示(从图中可以看出,L1是位于GPU芯片上的,其中SMEM就存储在其中,RMEM也是在芯片上,而L2及以后的存储空间则都是芯片之外的存储空间了),在对LMEM进行数据读写的时候,会经历这样一个缓存层级流动:L1-》L2-》LMEM。因为LMEM实际上是临时开辟的一块空间,因此里面的数据实际上是GPU先写入的,在此之前发生的读取就相当于读到了一堆乱码。
那么什么情况下会使用到LMEM呢?一般来说有如下两种情形:
因为LMEM相对于寄存器访问速度的低效性,因此其对性能的影响主要有如下两个方面:
但是因为以下的两点原因,LMEM也不一定会造成性能下降:
对于一些LMEM可能会存在瓶颈的情况,参考文献中给出了一些分析的方法可供排查,同时还给出了对应的优化策略以及实战案例,有兴趣的同学可以前往参考。
存储在RMEM中的数据只对负责对此寄存器进行读写的线程可见,且其生命周期与此线程的生命周期一致。
通常情况下,对寄存器的访问不需要消耗时钟周期,但是在一些特殊情况(比如先进行了一个写操作,之后再进行读取,或者在bank访问冲突的情况下),会有例外。先写后读的延迟大概是24个时钟周期,对于更新的GPU(每个SM包含32个cores的情况),可能需要花费768个线程来隐藏这个延迟。
当需求的寄存器数目超出硬件所能支持的限额时,就会导致寄存器压力,在这种情况下,数据就会使用LMEM来进行存储(所谓的spilled over,即溢出),如下图所示:
存储在SMEM中的数据对处于同一个block所有的线程都是可见的(不负shared之名),因此通常用于多个线程之间的数据互换,为了避免多个线程同时访问相同的数据导致的阻塞,NVIDIA将SMEM划分成32个逻辑单元,每个单元叫做一个bank,在内存中连续的数据,在banks的分布也是连续的:
SMEM是位于L1 Cache中的,其尺寸通常为16/32/48KB,剩余部分用作L1 Cache,对于开普勒架构而言,每个bank每个时钟的带宽是64bits/clock,较早的Fermi架构时钟不太一样,但是带宽差不多是这个数值的一半。
由于一个warp中有32个线程,因此总共需要32个SMEM banks。由于每个bank在每个时钟周期中只支持一次访问请求,因此多个同时访问的请求就会导致bank conflict,这个的处理过程后面会讲。
默认每个bank占用32bits(4bytes),开普勒架构之后,可以通过指令(cudaDeviceSetSharedMemConfig(cudaSharedMemBankSizeEightByte))将每个bank扩充到64bits,以应对双精度数据的访问冲突。
存储在Global Memory中的数据对于当前进程中的所有线程都是可见的,其生命周期与进程一致。
CMEM通常用于存储一些常量数据,当同一个warp中的所有线程都需要使用同一个参数时,可以将数据放在CMEM中,这种做法比将数据放在GMEM中更节省带宽。
TMEM也是一种常量存储结构,当一个warp中的线程所需要读取的数据都是存储位置上相邻的时候,使用这种结构比GMEM具有更优的性能表现(也是出于带宽的原因)
. A HISTORY OF NVIDIA STREAM MULTIPROCESSOR
. Life of a triangle - NVIDIA’s logical pipeline
. Local Memory and Register Spilling
. GPU Memory Types – Performance Comparison
gpu由什么组成
gpu由什么组成?一起来看看吧!
gpu是graphicsprocessingunit的缩写,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
gpu由以下器件组成:
1、显示主芯片显卡的核心,俗称GPU,它的主要任务是对系统输入的视频信息进行构建和渲染。
2、显示缓冲存储器用来存储将要显示的图形信息以及保存图形运算的中间数据,显示缓存的大小和速度直接影响着主芯片性能的发挥。
3、RAMD/A转换器把二进制的数字转换成为和显示器相适应的模拟信号。
知识拓展
计算能力和计算模式方面的问题
当前GPU的基础———传统Z-buffer算法不能满足新的应用需求。在实时图形和视频应用中,需要更强大的通用计算能力,比如支持碰撞检测、近似物理模拟;在游戏中需要图形处理算法与人工智能和场景管理等非图形算法相结合。当前的GPU的体系结构不能很好地解决电影级图像质量需要解决的透明性、高质量反走样、运动模糊、景深和微多边形染色等问题,不能很好的支持实时光线跟踪、Reyes(Renderseverythingyoueversaw)等更加复杂的图形算法,也难以应对高质量的实时3D图形需要的全局光照、动态和实时显示以及阴影和反射等问题。需要研究新一代的GPU体系结构突破这些限制。随着VLSI技术的飞速发展,新一代GPU芯片应当具有更强大的计算能力,可以大幅度提高图形分辨率、场景细节(更多的三角形和纹理细节)和全局近似度。图形处理系统发展的趋势是图形和非图形算法的融合以及现有的不同染色算法的融合。新一代的图形系统芯片需要统一灵活的数据结构、新的程序设计模型、多种并行计算模式。我们认为发展的趋势是在统一的、规则并行处理元阵列结构上,用数据级并行、操作级并行和任务级并行的统一计算模式来解决当前图形处理系统芯片面临的问题。
gpu负载99%正常吗
gpu使显卡减少了对cpu的依赖,并进行部分原本cpu的工作,尤其是在3D图形处理时gpu所采用的核心技术有硬件TL(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件技术可以说是gpu的标志。
1、gpu使用率99%,显卡正处在一个接近满负荷的状态下进行工作的,是正常现象。
2、虽然不会直接损坏,但是会影响该显卡的寿命,因为占用率越高,功耗就越大,温度就越高,因此就会出现负荷不了的情况,显卡的使用寿命自然缩短。
【译】深入了解现代web浏览器(一)CPU,GPU,内存和多进程架构
C entral P rocessing U nit -- 中央处理器
一个cpu可以看成是计算机的大脑。一个cpu内核,可以想象成一个办公室工作人员,可以处理一个接一个的工作。过去,大多数的cpu都是单芯片。现代硬件中,通常会有多内核,为手机和电脑提供强大的计算能力。
G raphics P rocessing U nit - 图形处理器,显卡。
cpu擅长同时处理跨内核的第一个简单任务。顾名思义,它是为处理图形而开发的。
计算机的三层架构:机器硬件在最底层,操作系统在中间,应用在最上面。
进程可以看作应用的执行程序。线程是存在于进程里面,并且可以执行进程的任一部分程序。
当我们启动一个应用的时候,就会创建一个进程。程序可能会创建多个线程去帮助其工作,当然这是可选的。操作系统会给进程分配内存块,应用程序的所有状态都可以保存在该私有空间。当关闭程序的时候,进程会消失并且操作系统也会释放内存。
一个进程可以向操作系统申请另外一个进程来执行不同的任务,操作系统将为新进程分配另外一部分内存。如果两个进程想要通信,他们需要使用 I nter P rocess C ommunication (进程间通信)。很多应用都是以这种方式 工作的,如果一个进程无响应,可以直接重启该进程,而不需要停止执行应用程序其他部分的进程。
目前没有关于如何构建网页浏览器的标准规范,因此一个浏览器的实现方法和另外一个可能完全不同。可以是具有多个线程的一个进程,也可以是几个通过IPC进行通信的多个进程。
我们以Chrome的架构为例子来介绍。顶部是浏览器进程,负责协调应用程序的其他进程。对于渲染进程,将会有多个并且分配给每个tab。现在,Chrome为每个tab页创建提供单独的进程,包括iframe。
下图为Chrome的多进程架构图。在渲染进程下有多个图层,它表示为每个tab页运行了多个渲染进程。
不同进程指向浏览器UI界面的不同部分:
还有更多的进程,比如扩展进程和实用进程。我们点击浏览器右上角的三个点,选择“更多工具” -》 "任务管理器",它列出了当前正在运行的进程和占用的cpu/内存量。如下:
由于进程有自己私有的内存空间,通常包含通用结构的备份。这意味着更多的内存占用,因为他们不是同一进程的多个线程,因此无法共享。为了节省内存,chrome限制可启动的进程个数,限制数量根据当前设备内存和cpu动态确定,但是当触发这个限制之后,将会对同一站点的多个tab页在一个进程中运行。
同样的方式适用于浏览器进程。Chrome正在进行架构调整,将浏览器的程序每个程序部分作为一个服务运行,可以将不同的进程进行拆分和合并。
一般的想法是,当Chrome在强大的硬件上运行的时候,为了稳定性它会将每个服务拆分到不同的进程,但是如果在一个资源有限的设备上,为了节省内存Chrome会将服务合并到一个进程。在次更改之前,安卓平台已经使用类似的方法为了减少内存使用合并了多个进程。
站点隔离是Chrome最新引入的功能,可以为每个iframe运行单独的渲染进程。我们一直在讨论每个tab页都有一个独立的渲染进程,它允许跨站点的iframe在一个渲染进程中运行,并且在不同的站点共享内存空间。在一个渲染进程中运行 a.com 和 b.com 看起来没有问题。同源策略是web的核心安全模型,它确保一个网站在未经同一的情况下访问其他站点的数据,绕过此策略是安全攻击的主要目标。进程隔离是分离站点最有效的方法。因为meltdown和spectre这两个经典漏洞,我们需要使用进程隔离站点变得更加明显。从Chrome 67版本以来默认启用站点隔离,每个跨站点的iframe会有一个独立的渲染进程。
启用站点隔离是一项多年工程积累的成果。站点隔离并不像分配不同渲染进程那么简单,它从根本上改变了iframe的通信方式。在不同进程运行的iframe页面上打开devtools意味着devtools必须实现后台的通信功能才能让它们看起来是无缝的。就算在页面上使用 ctrl + f 搜索也意味着在不同渲染进程间查找。这就是浏览器工程师将站点隔离功能的发布当作一个主要里程碑的原因。
在这篇文章中,我们涵盖了浏览器的高级视图和多进程架构的优势。我们页介绍了与多进程架构密切相关的服务化和站点隔离。在下一篇中,我们将深入研究这些进程和线程为了展示网站发生了什么。

更多文章:
网关是什么怎么设置(网关到底是什么,不同的网络如何正确设置网关)
2026年10月11日 08:30
亚洲和欧洲的分界线简图(画出亚欧,亚非,南北美,亚洲北美洲和南美南极的分界线和名称.图片)
2026年10月11日 05:50
虚拟空间免root大全(gameguardian修改器免root安卓APK下载地址)
2026年10月11日 00:10








