【转】格兰菲GPU架构的发展 最新的DX12架构,中国的RDNA?
格兰菲GPU架构的发展 最新的DX12架构,中国的RDNA?

星边疆
希望亲眼见到人类步入星际文明的硬核科幻迷、RPG游戏开发者
关注他
57 人赞同了该文章
目录
收起
1 现代GPU的介绍
1.1 引言
1.2 现代GPU架构机制
1.3 现代GPU架构实现
2 兆芯/格兰菲的GPU设计
S3 Graphcs/VIA 时期的GPU架构
2013-2018年 兆芯/格兰菲 的早期GPU架构
2018-2022年的 Arise 1系列GPU的架构
DX12新架构
结语
作为一个图形学爱好者,还是很乐意见到国内相关的硬件技术突破的。因此搜集了一些可能不太靠谱的公开资料对中国自研的现代游戏显卡架构的发展进行介绍和猜测。
1 现代GPU的介绍
1.1 引言
现代GPU是图形绘制处理器和并行化数据处理器的结合体,纯粹进行并行化数据处理的处理器叫做GPGPU,GPU包括GPGPU,但GPGPU不等于GPU。
GPU的总体架构的发展趋势随着软件需求的发展而改变自身架构的实现方式,在不同的任务中它们会有不同的取舍。如何权衡正是考验架构师的设计水平之处。
从1999年NVIDIA发布第一款GPU产品至今, GPU技术发展主要经历了固定功能流水线阶段、分离着色器架构阶段、统一着色器架构阶段。其处理架构的不断改变使得图形处理能力和计算能力不断提升,相应的流水线结构、并行计算结构、并行数据通信结构、存储结构越发复杂。
国外NVIDIA、AMD等公司针对GPU图形处理性能方面进行了大量研究,但都是各公司的核心机密,公开甚少。
N和A历代 GPU架构发展史 :
GPU显卡架构38 赞同 · 1 评论文章
1.2 现代GPU架构机制
图形处理器经过近30年的发展,虽然图形处理器体系结构、处理方式发生了巨大变化,但其基于Z-Buffer的光栅化图形处理流水线一直沿用至今。自2006年,NVIDIA发布统一渲染架构的GPU以来,统一渲染架构便成为GPU的主流。NVIDIA、AMD等各厂家都有自己不同的实现方式,但基本的CPU+GPU异构工作方式、图形处理流程都基本一致。
图形渲染流程
定义: 显卡内部处理图像信号的并行处理单元,也称为渲染流水线
发生位置: CPU和GPU
渲染机理: 将图像所具备的图形信息(顶点、纹理、材质、摄像机位置等)经过一系列阶段的处理,最终- 转换为屏幕上的图像.
渲染流程:
应用阶段
几何阶段
光栅化阶段
应用阶段 Application Stage
发生位置: CPU
阶段目标: 准备渲染所需的几何信息,即渲染图元(rendering primitives)
渲染数据:
场景数据:如摄像机,视锥体,模型,光源..
粗粒度剔除:即剔除不可见物体
渲染状态:材质,纹理,Shader..
基本流程:
加载数据到显存: 由于渲染管线的图形化处理基本位于GPU,所以渲染数据先从硬盘加载到RAM,再加载到显存以供GPU后续处理.
设置渲染状态: 定义渲染图形的方式,例如使用顶点着色器或者片元着色器、材质、光源等.
调用Draw Call: 由CPU发起的DrawCall指令给GPU,指向已经准备好的渲染图元
Draw Call:
本质:图像编程接口
机理:CPU通过调用DrawCall向命令缓冲区(Command Buffer)的队列中添加渲染命令,而GPU则从已有的队列中读取渲染命令去执行
优化:由于调用DrawCall即使得CPU准备大量渲染数据提交到缓冲队列,大量的DrawCall会使得CPU过载,因此尽量减少DrawCall的调用次数(如进行批处理,合并网格...)
几何阶段 Geometry Stage
发生位置: GPU
接收数据: 应用阶段所准备好的渲染图元的信息,也就是顶点数据(模型自身坐标系、顶点颜色、纹理UV等)
阶段目标: 决定所需绘制图元的信息(绘制方法,绘制坐标)
基本流程:
顶点着色器(Vertex Shader):
调用次数:每个顶点均调用一次
工作:坐标转换(模型空间->齐次裁剪空间,也可说模型自身坐标->屏幕空间坐标。可人为干涉)和逐顶点光照(颜色计算)
曲面细分着色器(Tessellation Shader):
工作:细分图元
几何着色器(Geometry Shader):
工作:逐图元着色操作或是生成新的图元(减少CPU负担)
裁剪(Clipping):
工作:裁剪去不在摄像机视野内的顶点
屏幕映射(Screen Mapping):
工作:将图元的x和y坐标转换到屏幕坐标系(不对z坐标处理)
光栅化阶段 Rasterizer Stage
发生位置: GPU
接收数据: 几何阶段准备好的顶点信息
阶段目标: 对几何阶段传递过来的屏幕空间的顶点信息进行处理,最终生成屏幕像素,渲染出图像
基本流程:
三角形设置(Triangle Setup):
工作:根据几何阶段传递的数据(三角网络的顶点),计算三角网络每边的数据信息
三角形遍历(Triangle Traversal):
工作:根据三角形设置的结果,判断某个三角网格所覆盖的像素,并根据三个顶点的信息对整个覆盖区域进行 插值 ,生成一系列 片元(fragment) ,片元包含信息有:屏幕坐标、深度、法线、纹理...
片元着色器(Fragment Shader): 又称像素着色器(Pixel Shader)
调用次数:一个像素点调用一次
工作:纹理采样,计算光照(阴影、明暗...)
逐片元操作(Per-Fragment Operations):
工作:模板测试->深度测试->混合->颜色缓冲区
输出屏幕图像
1.3 现代GPU架构实现
GeForce 8800是2006年NVIDIA发布的第一款统一染色架构GPU,采用G80架构。自此NVIDIA每两年发布一款GPU架构。2006年发布G80,2008年发布TeslaGT200,2010年发布Fermi-GF100, 2012年发布kepler,2014年发布年Maxwell. 2016年发布Pascal。每一款GPU架构都对着色器阵列数量及结构进行优化、调整,但图形处理过程改变甚微,基本保持着G80的处理过程。
图形处理任务由主机生成图形指令存储到主机内存中,CPU通过主机接口获取图形指令,然后将图形指令解析为统一染色阵列和固定的硬件单元的控制和数据信息,配合完成图形处理过程。
R700是2008年AMD公司发布的具有大规模SIMD统—染色阵列的图形处理器架构,结构如图所示。其存储系统包括两部分,一部分是驻于主机内存中的系统空间,另一部分则是位于GPU上的显存空间。存储系统中包含的数据包括命令队列、指令、常数以及输入输出流,其中命令队列指明了GPU需要处理的任务;指令给出了执行部件的具体工作;常数、输入和输出流则提供了计算所需要的数据,这几个部分要素构成了GPU运行的基本要素。
现代GPU有多个流多处理器( Streaming Multiprocessor ,SM) ,在每个SM 中,计算资源包括算术逻辑单元(ALU)、特殊函数单元(SFU)以及寄存器,片上内存资源包括只读纹理缓存和常量缓存、L1数据缓存( D-cache)和共享内存。在多个 SMs 之间共享统一的一个L2缓存U。GPU中有多个处理器核SP,在一个时刻可以并行处理多个数据。寄存器(Reg File)是GPU内部的存储单元,是有限存储容量的高速存储部件,用来暂存指令、数据和位址。线程束调度程序( Warp Scheduler)负责调度一个SM 中的Warp。Warp是GPU执行程序时的调度单位, Warp大小为32,32个thread组织成一个 Warp。
高性能GPU架构设计的关键技术点主要包括:
(1)内核结构中的并行性开发技术, 主要指如何通过有效的运算资源组织方式,实现运算资源间的高效协同,从而高效开发程序中的数据级并行和指令级并行;
(2)数据供给机制,主要涉及 存储子系统的设计,重点关注如何通过存储层次设计、数据局部性挖掘以及数据使用方式预测等技术为运算资源提供高带宽、低延迟的数据供给;
(3)互连机制,随着多核已经成为芯片性能持续提升的重 要因素,如何通过高效的核间互连,以及处理器核与存储系统互连有效提升整体算力,对高性能GPU的性能发挥至关重要。
(4)内存架构设计,GPU通常需要大量的存储空间来存储图形数据和计算数据,如何设计高效的内存架构,包括内存容量、内存带宽、内存访问延迟等方面的优化,对于GPU的性能和功耗控制都至关重要。在GPU集群中,各个节点之间的通信非常重要。为了提高通信效率和减少延迟,GPU架构设计需要支持低延迟通信机制,如RDMA(Remote Direct Memory Access)等。
(5)硬件加速器设计:为了进一步提高GPU的性能,GPU中还可以集成各种硬件加速器,如Tensor Core、Ray Tracing等,用于加速机器学习、图像处理、物理模拟等任务。
(6)软件支持,高性能GPU的软件支持也非常重要,包括编程模型、编译器、调试器等方面的技术支持,能否为程序员提供友好的编程环境和高效的开发工具也是高性能GPU是否能够被广泛应用的重要因素。
(7)线程调度技术,线程调度是高性能GPU中的一个重要问题,如何通过优秀的线程调度算法,合理地分配线程资源,充分发挥GPU的并行处理能力,是GPU架构设计中的一个关键技术点。面对不同的应用和资源需求,为了更好地管理计算资源,为线程分配资源,目前主要有先到先服务 (FCFS) 、轮询(RR)、优先级调度(PSA)和最短线程优先 (SJF) 调度算法。
(8)错误容忍机制,由于高性能GPU通常用于高性能计算和图形渲染等关键任务,因此必须具备高可靠性和容错能力。设计错误容忍机制,如冗余电路和错误检测与纠正等技术,对于提高GPU的可靠性和容错能力非常重要。
(9)能耗优化技术,为了满足绿色环保的需求,同时降低成本和延长电池寿命,GPU架构设计需要采用一系列能耗优化技术,如低功耗模式、动态电压调节和温度管理等技术。
(10)机器学习支持,机器学习已经成为计算机领域的一个重要研究方向,GPU架构设计需要考虑如何支持机器学习算法和应用,例如设计高效的矩阵乘法运算单元、加速深度学习模型训练等。
(11)安全性设计,GPU被广泛应用于数据中心和云计算环境,安全性设计成为了GPU架构设计的一个重要考虑因素。GPU架构需要具备安全性防护机制,例如硬件加密、安全启动、身份验证等技术。
(12)新型内存设计,高性能GPU需要处理大规模数据和图形,因此内存设计对于GPU性能的影响非常大。新型内存技术,如HBM(High Bandwidth Memory)、GDDR6和DDR5等,能够提供更高的内存带宽和更低的访问延迟,对于提高GPU性能具有重要作用。
(13)片上网络设计,随着GPU芯片核心数量的不断增加,如何在芯片内部实现高效的核心互连网络,是GPU架构设计中的一个重要问题。片上网络设计需要考虑网络拓扑结构、流量调度算法等方面的优化。
(14)异构计算支持,随着异构计算技术的发展,GPU架构设计需要支持异构计算,能够协同运行与CPU、FPGA等计算设备配合完成复杂的计算任务,提高整体计算能力。
(15)性能分析与优化技术,GPU的应用涉及的场景非常广泛,性能分析和优化成为了GPU架构设计中的一个非常重要的环节。通过使用性能分析工具,对GPU架构进行深入分析,优化GPU硬件和软件设计,以达到更高的性能和更好的用户体验。
(16)标准与生态建设,标准化和生态建设是GPU应用普及和发展的重要支撑。比如,GPU的编程语言CUDA和OpenCL都是由厂商提出的专有技术,这限制了GPU应用的普及,需要推动标准化和开放的生态建设,提高GPU的通用性和兼容性。
(17)可编程性设计,可编程性是GPU架构设计中的一个重要考虑因素。现代GPU采用可编程架构,可以灵活支持不同的应用和算法。因此,在GPU架构设计中需要重视可编程性设计,提高GPU的灵活性和适应性。
(18)可扩展性设计,GPU的应用场景不断拓展,如何设计可扩展性强的GPU架构成为一个重要问题。通过采用模块化设计、分层设计等技术,实现GPU的可扩展性设计,以应对未来不断扩大的GPU应用场景。
2 兆芯/格兰菲的GPU设计
格兰菲(Glenfly)是上海兆芯(Zhaoxin)旗下的GPU设计公司,成立于2020-12-29,早期人员来源于2001年成立的旭上电子(S3 Graphics 中国分部)。该公司的主要业务是开发和销售高性能GPU以及屏幕驱动,面向计算机游戏、人工智能、数据中心等领域。
S3 Graphcs/VIA 时期的GPU架构
如今的显卡业界是NVIDIA、AMD、Intel的天下,提起S3 Graphics,很多的新人也许根本不了解,但对于资历较老的DIY玩家来说,S3依旧是记忆中无法抹去的一笔,在2D时代,S3是当时无可争议的显卡霸主,trio64v+和trio64v2,使S3获得了空前的成功,也为在3D领域的率先尝试做下了铺垫。在那个年代S3占据了90%的的市场份额,随后S3公司推出的第一代“3D加速卡芯片”的代表作S3 Virge也给不少玩家留下了颇深的印象,S3创造了显卡史上一次又一次的辉煌。
S3 Graphics成立于1989年,在90年代中前期、3D时代来临前,称霸了显卡市场。在1994年,S3 Graphics凭借卓越的2D加速性能,压倒了竞争对手Trident成为市场的领跑者,是第一个真正意义上的霸主。Trio64V+(S3 765)这块2D显卡相信老玩家都使用过,可以说是当时兼容机的标配。
当图形技术进入以3D为主导的时代后,S3 Graphics渐渐跟不上技术发展的节奏。S3 Virge是S3 Graphics第一款支持3D加速的显卡,但性能实在不敢恭维。仓促投入战场的Savage 3D虽然规格上并不差,是第一款128bit的图形显示芯片,支持Direct3D和OpenGL,S3TC技术开创了材质无损压缩的先河,MPEG-2回放无论质量和速度都很给力,但性能上抵挡不住各路竞争对手的进攻。虽然S3 Graphics得到了英特尔的支持,但随后推出的Savage 4也只能靠性价比占据部分市场。
S3 Graphics推出的Savage 2000是市场上第二款支持T&L的产品,仅次于英伟达的GeForce 256,但是这款产品继承了S3 Graphics驱动程序问题,各种bug让用户苦不堪言,而且不能尽情发挥其性能。
威盛在2000年收购了S3 Graphics,S3公司表示退出桌面显卡领域,将主要精力放到了移动市场以及VIA的集成显示芯片上,并依次推 出了Super Savage、Pro Savage和Savage XP等面向移动领域的显示芯片。
S3 Graphics在2004年推出了DeltaChrome S8系列,维持了一定的市场份额,不过驱动问题仍然严重困扰着S3 Graphics。
在进入PCI-E时代以后,2005年,S3发布了其PCI-E平台的第一款产品GammaChrome S18,并冠之以同前辈相同的命名——野人。
2008年2月27日,S3正式发布新一代酷龙“Chrome ”系列GPU,包括S3 Chrome 430GT/440GTX/530GT,重新杀入独立显卡市场。Chrome为我们带来更多惊喜:DX10.1、SM4.1、统一渲染架构、PCI-E 2.0、HDCP、HDMI、HDTV硬解码、核心/流处理器异步、PowerWise节能,从规格及参数方面来看丝毫不逊色于NVIDIA及AMD同级别GPU产品。但在2009年发布Chrome 540 GTX 打平N卡的上代低端卡 9400GT 以后就一直沉寂。
VIA 2001年将S3 Graphics收至麾下,2011年被卖到HTC,开始研发与ARM处理器配套手机图形处理器和嵌入式图形处理器,再到2013年兆芯成立,将其在国内的研发团队一并收购,得以继续研发。
2013-2018年 兆芯/格兰菲 的早期GPU架构
2016年发布的ZX-100S芯片组中的C-320 GPU是2011年 VX-11芯片组中的C-645/640 GPU的国产版本。兆芯为CPU发展出了配套的基于Excalibur 架构的图形处理器,并集成在ZX-100S芯片组、C-860/960核显内。
所有兆芯桌面 集成GPU C-320 (ZX-100S芯片组的集显)、C-860/C-960(KX5000/6000系列的 核显)都是来自 VX11(PH) 的 Chrome 640/645 (C-640/C-645) 的近似衍生产品,都基于 Excalibur GPU微架构。在 ARM SoC中的Elite GPU 基于 S3G IP,但它不是 Excalibur。
而在Arm soc上,兆芯的Elite1000图形处理器的性能基本达到了英特尔桌面产品HD GRAPHICS的水平,部分性能优于它。其主要特色在于内置了很多硬解码的功能模块,嵌入了众多的音视频解码功能,可以轻松播放各类1080p全高清视频,兆芯处理器的Elite1000图形核心已经被移植到了全上海的机顶盒里,也从侧面证明它具备优异的视频播放性能。
兆芯的ZX-2000是发布于2015年,应用于4K超高清智能机顶盒等产品上的处理芯片,它采用ARM Cortex-A17架构,四核1.6GHz,其数据处理能力高达220DMIPS。其搭载的GPU也由兆芯自主研发,拥有60GFlops的浮点计算能力。
兆芯ZX-2000 支持硬解4K、2K 60帧,可实时硬解H.265视频以及完美支持HDMI 2.0。ZX-2000提供了对HEVC(H.265) 4Kx2K@60fps解码的支持,为4K超高清视频和主流3D游戏做了特别优化,同时拥有H.264 1080P@60fps视频编码能力,对视频内容的无损压缩率达70%,安兔兔跑分为31572。
GFXBench是专门针对GPU的测试软件,其中曼哈顿(Mantattan)"测试场景对GPU最为敏感,可以深入地检验GPU性能。在ZX-2000上的测试结果是392.5Frames(6 fps)。约等于同时期 手机上的 mali-t720,adreno 306/405,以及 lntel HD Graphics for BayTrail、AMD E-350 上的 HD 6310。
Elite1000图形处理器的GPU架构基于王渊峰带领的国内团队在 VIA的旭上电子时期 与其它S3分部合作开发的 酷龙(Chrome 400/500 Destination 架构 和 Chrome 640/645 Excalibur 架构)图形处理器架构,在其基础上更新了一些功能,降低了功耗。
2016年的带有 Elite 2000S1 GPU 的 ZX-2800AI是一个arm和mips混合架构的soc,集成神经网络处理器,相比zx-2000支持opengl es 3.1 但图形支持并不完善,但硬件加密模块做得还行 .在elite2000 开发版上的Mantattan测试结果是1155 Frames(18.6 Fps)。
2018-2022年的 Arise 1系列GPU的架构
而在Arise1 GT-10C0上,据悉这款GPU在elite2000的基础上继续提高了流处理器、TMU贴图单元、ROG光栅处理单元的规模,从而增强图形处理器的3D性能。它也被称为elite3000,它的前身的马甲版是2018年流片的中传重工716所的 JARI G12。由海军出资扶持。
Arise-GT-10C0 推测是1536sp, 24 cu,600Mhz , 类似GTX750Ti的浮点计算性能,但实际上是颗低频中大核心。类似于AMD HD 7950,这款GPU架构在设计上对标GCN 1.0,这并不是一个适合游戏的架构,而是更多考虑通用计算场景的架构。
elite3000架构的核心构件是处理器阵列 或称 计算单元(CU),如下图所示。
现代图形处理器(graphics processing unit,GPU)中包括大量的执行单元,用于动态计算各种着色程序,从而可以利用GPU的多线程多执行单元的特点,实现并行计算加速。GPU中的线程称作Wave,包含多个子单元(lane),CPU能够把所有lane打包,以单指令流多数据流(SIMD)的方式进行读写和计算;通常,CPU会将32个或者64个lane打包为一个GPU线程Wave,称作simd32、simd64的wave/wavefront。
每2组CU共享一个指令缓存。每组CU有一个多线程控制器,被由四个SIMD单元共享。多线程控制器下发的指令会被转发到SIMD单元的指令缓存(IC)。每个IC有用来处理wavefront的存储空间,为了隐藏延迟,SIMT机制要求指令可在SIMD单元中进行切换,CU通过以下方式处理wavefront,命令流解释器从驱动程序哪里接受图形指令,将指令存到L2缓存中,任务生成器从缓存中提取指令生成不同的wave32线程束分派到每个TPC上某个CU的L1缓存。在每个时钟周期,当前CU上的所有wavefront都会被考虑发出指令,每个执行端口最多可以发出一条指令。
每个SIMD单元有16个通用计算单元(流处理器),每个流处理器有2个算术逻辑单元(ALU),每SIMD单元还有8个读写和特别函数单元(用来读写指令 以及 处理三角函数等非加减乘除运算),4个运行态线程。
每个SIMD单元执行32个线程的指令,这称为一个wavefront。每个SIMD单元每个时钟周期可以发出一条单精度浮点指令。由于该架构处理每个SIMD单元32个线程的wavefront,所以需要2个时钟周期才能完全发出一个wavefront。
上图顶部是全局任务动态任务分配。
然后是三个图形处理集群(GPC).
命令流解析器进行全局动态任务分配,将驱动接受到的图形处理任务调度到GPU的图形流水线和计算引擎上,以便及时利用空闲GPU资源。
每个GPC,有4个由两个CU组成的工作组 或称 纹理处理集群(WGP/TPC),一个任务生成器。任务生成器提取L2 缓存中的指令,分发给该GPC的每组CU。
GPC需要尽快分配任务给CU。将计算任务调度到计算引擎上。任务生成器和多边形引擎可以并行工作,这样可以提高利用率,因为任务可以从不同的队列交错进行。工作可以从任何队列中打补丁,而无需等待其他工作完成,这意味着独立的任务可以同时在计算引擎上执行。GPC们可以通过缓存或内存进行同步。
从图中可以看出,Elite.3000有三个GPC。每个图形处理器集群(GPC)有4个TPC 共 8个CU,加起来一共有24个CU。
GPC具有几何引擎和光栅化器。几何引擎包括几何装配器、镶嵌单元和顶点装配器、图元(Primitive)着色器。图元(Primitive)着色器的理念是实现更灵活的几何处理和更快的图元剔除。图形处理上结合了sort-middle和sort-last架构的优点,这也是tile缓存的目标。图像在屏幕空间中被划分为瓦片(tile),经过几何处理后,每个图元(Primitive)被分配到它们重叠的tile上。在光栅化tile的过程中,所有需要的数据(如tile缓冲区)都保存在L2缓存中,从而提高了性能。像素着色可以自动推迟,直到tile中的所有几何体被处理完毕。
格兰菲/兆芯公司的新GPU架构采用了TBDR(Tile-Based Deferred Rendering)架构,与几年前用在低功耗领域的TBR(Tile-Based Rendering)架构不同。TBDR架构类似于英伟达的Maxwell架构,具有高能效比,适用于桌面端显卡的GPU架构设计。Maxwell架构也基于TBDR架构,它将屏幕分割成小的瓦片,在每个瓦片上执行渲染操作,最后将瓦片合并成完整的图像。这种方式可以提高渲染效率并减少内存带宽需求。TBDR架构通过延迟深度测试和像素着色来减少内存访问,提高渲染效率。它对所有可见的几何图形进行深度测试,并在像素着色时只需访问保存在缓存中的像素数据,而不必再次访问内存。TBDR架构的好处包括减少内存带宽和访问延迟,提高图形渲染效率,并能更好地处理特殊效果如透明和反射。为了实现TDBR架构,解决存储器数据流量的问题,一种新的绘图处理方法被提出,该方法利用命令流解析器和显示驱动程序来控制图块的绘制处理,并通过高速缓存存储器的签名比较单元决定是否刷新存储器存取单元中的更新数据,从而减少数据刷新次数和存储器数据流量。这种方法能够提高绘图处理的效率。
GT10C0 看起来是elite3000架构的极限堆料规模,GT1020和 GT1040来自同一个Die,面积为约90mm2。GT10C0的Die面积为322mm2,GT1040和GT1020的Die 只有一组GPC,4组TPC、8个CU,而GT1020在GT1040基础上进行了阉割,一组GPC,只剩下2组TPC、4个CU。
DX12新架构
KX-6000G的 C-1080是 256 sp, 2 cu, 0.5Ghz. 支持DX12.1。
该架构具有放大着色器(AS)和网格着色器(MS)
并对多线程Draw Call命令队列进行了并行命令流解析,以提高DX12 多线程命令队列的处理速度。
同时将线程并行机制变成RDNA风格的SIMD 32或SIMD 64,寄存器文件数量翻倍,在每个CU里运行态线程从四个变成八个,可以并发更多的wave。可使用DX12中的样板模式构造Computer Shader线程,降低了构造开销。
对于KX-6000G这款 1 TPC/WGP, 2 CU ,256sp、 512alu的核显,具有 线程寄存单元(WVR,Wave Register Unit)、线程调度单元(WVC,Wave Controller)、计算单元(ALU)、指令缓存(IC,Instruction Cache)以及输入输出单元(INOUT)。
每个CU具有1个WVR用于暂存线程wave的中间数据,每个wave包含多个子单元lane,能够以SIMD(Single Instruction Multiple Data,单指令流多数据流)模式进行读写和计算;每个WVR可存储8个wave的中间数据;WVC是管理和调度每个线程的控制单元,包括选择线程、取指、译码、发射等步骤;需要在每个时钟周期按照优先级从8个wave中选择一个合适的wave,发送取指指令、对返回的指令译码、发送指令到ALU执行等过程;ALU执行单元的核心部件,完成线程wave的计算功能,每1个时钟周期处理1个Wave 32或每两个时钟周期处理1个Wave 64,能够以SIMD的方式同时处理多个lane的计算;计算结果将写入到WVR或者通过INOUT输出;其中,IC根据请求的指令偏移为每个线程wave读取指令,它是一种高速缓存,包含缓存空间、匹配控制逻辑、Tag单元等部分,缓存空间组织为多个缓存行的形式进行管理。其中,INOUT用于线程wave通过INOUT从外部内存读取输入数据、采样纹理、存储计算结果等操作。缓存空间组织为多个缓存行的形式进行管理。
WVR按照预先设置的优先级顺序,选择一个线程wave向IC发出指令读取请求,该指令读取请求用于从IC中读取WVR选择的线程wave对应的缓存数据。
GPU中的着色程序经过编译器调用后,得到可以直接在GPU上执行的指令集合,称作着色指令程序。其中,每条着色指令程序由多条指令组成,每个指令对应一个线程wave。对于游戏应用,着色器指令大多为每周期两个wave,对于科学计算和人工智能任务 大多为4个 .
在缓存结构上,格兰菲的新架构进行了大改动,新的缓存系统具有在每2CU的WGP独占的L0缓存、在Array/GPC 中独占的L1缓存、共享的L2缓存,以及缓存DRAM中图形数据的L3缓存,这类似于RDNA,这是一个相比前代相当进步的缓存体系。
结语
虽然格兰菲的DX12新架构相比前代具有很多现代GPU的特性,例如 支持更现代的图形API(DX12)、扩展性更好、配置灵活的GPU架构布局、更优秀的缓存系统、更低的驱动开销和更高的线程并行效率。
这些优点使它足以与当今使用IMG核心的国内GPU厂商进行市场竞争,但他并不支持光线追踪和超采样,在架构规模上只是放出了最小规格的产品,不足以看出他们能将GPU架构规模提高到何种程度,而且他们在游戏适配上还有很长的路要走。这些不足让这款GPU架构只能成为RDNA 0.8。
并且时刻面临着制裁、缺乏优秀的代工厂、更低的资金投入、不足的人力,这些使它很难追上国际主流GPU厂商的脚步。
如上所述,这是一个国产版本的RDNA 0.8,希望格兰菲的下一代独显能够解决上述提到的一部分问题,让Arise 2系列能够真正流畅运行3A游戏。
编辑于 2023-07-18 02:24・IP 属地湖南
图形处理器(GPU)
国产显卡
显卡

评论千万条,友善第一条
3 条评论
默认
最新
幻影坦克不请自来
dx12是api不是架构
07-22 · IP 属地山东
回复赞
心城
格兰菲的Arise2的显卡,据说性能和规模估计和gtx1660ti max-q差不多,功耗约60w-70w,台积电 12nm或16nm工艺,是个不需要独立供电的办公/娱乐卡,明年就可以见到。
07-11 · IP 属地湖南
回复赞
匆匆
好文章,渲染状态应该也包含管线的状态,裁剪不仅仅有clip,也有cull,老哥觉得对么
06-21 · IP 属地上海