词条 | AMD Radeon HD7970 |
释义 | AMD Radeon HD7970概述AMD Radeon HD7970是AMD第1代DirectX 11.1显卡中的单芯片旗舰产品。2011年12月22日发布,南方群岛架构(以下简称SI)。整个SI体系分为两种架构,其中HD7900、HD7800、HD7700采用的是全新的GCN架构,HD7600以下采用传统的VLIW 4D架构。SI-GCN架构是自R600以来,AMD首次对GPU架构做基础上的改进,在这之前,无论HD2000-HD6800系列所采用的VLIW 5D模式架构,还是HD6900系列所采用的VLIW 4D架构模式,其从根本上都属于R600体系的小修小补。而SI GCN却是从基础上革新了架构。 R600 VILW架构体系,对于传统的图形计算并不存在严格意义上的缺陷与瓶颈,其主要不足在于通用计算领域。程序员在对R600 VLIW架构体系的GPU做通用计算编程时,涉及到平衡5个或4个一组的流处理计算单元,因此编程难度较大,同时R600体系在设计时并未考虑到通用计算,许多细节上被证实越来越不适合做复杂的并行计算应用。在通用计算越来越被强调的今天,AMD不得不对GPU核心架构做出修改。全新的SI GCN架构是一种兼顾传统图形计算和通用计算的架构模式,引入了多层次的并行处理架构和效仿nVIDIA Fermi架构的多级可读写高速缓存。通过这些架构引入,SI GCN获得了可媲美甚至超过nVIDIA Fermi的通用计算能力,与AMD自家之前的产品比较,更是有了翻天覆地的变化。同时在传统的图形计算领域,亦得到了较大的进步。 AMD Radeon HD7970显卡,核心代号Tahiti XT,28nm制程,在业界第一次支持DirectX 11.1和PCI-E 3.0。在产品定位上用于替代AMD Radeon HD6970,在市场上的直接竞争对手是nVIDIA Geforce GTX580 。在目前的驱动程序下,主流游戏测试HD7970平均领先GTX580 15%-25%左右,最高高达40%;领先HD6970高达40%-60% 。特别是之前广受诟病的曲面细分叫计算能力得到了飞跃式的进步。在曲面细分测试软件天堂2.5中,领先GTX580 16%,领先HD6970 35%。通用计算方面,实时光线追踪计算领先GTX580 72%,领先HD6970 75%,GPU。更多的评测信息,可参见扩展阅读。 同时得益于28nm制程,HD7970的功耗也得到了极好的控制,独立供电为6+8pin。新的技术可以让Radeon HD7970在待机下彻底关闭GPU。在i7-3960X平台下,整机满载功耗为391W,整机待机功耗仅为103W。目前来看可以算是非常成功非常优秀的一代产品,可媲美当初的ATI Radeon HD5870。 2012年3月22日,nVIDIA发布了新一代28nm开普勒架构旗舰显卡nVIDIA Geforce GTX680 。综合国内外评测来看,GTX680成功的从HD7970手中抢夺了目前单芯卡皇的位置,不过领先幅度不大,1080P下领先幅度低于10%,1600P下领先幅度低于5%,同频差异微乎其微。 AMD Radeon HD7970基本参数GPU属性 桌面级 GPU名称 Radeon HD7970 芯片数量 单芯片 核心代号 Tahiti XT 核心设计厂商 AMD 核心生产厂商 TSMC(台积电) GPU制程 28nm 晶体管数量 43.1亿个 计算单元数量 32(相当于原先的2048个流处理单元) GPU核心频率 925MHz 显存类型 GDDR5 显存位宽 384Bit 显存频率 1375MHz(等效于5500MHz) 显存带宽 264 GB/S 公版显存大小 3072MB 光栅单元 32 纹理单元 128 专用几何引擎流水线(曲面细分计算) 2 核心面积 365m㎡ API支持 DirectX 11.1OpenGL 4.2 接口类型 PCI-E 3.0 x16 单精度浮点计算能力 3.79TFlops 双精度浮点计算能力 947GFlops 待机功耗 3W 满载功耗 210W 通用计算支持 OpenCL1.2、Directcompute5.0、AMD APP加速并行处理技术、AMD开放物理计划 其他技术支持 AMDEyefinity单卡多屏输出技术 2.0、AMD HD3D立体成像输出技术、AMD Eyefinity 3D 单卡多屏立体成像输出技术、独立数字多点音频输出技术、VCE视频编码引擎、Steady Video 2.0、AMD CrossfireX多卡交火技术(最高4路) SI GCN架构GCN架构由来2011年6月份的AMD Fusion开发者峰会上,AMD首席技术官Eric Demers首次向外界披露里AMD新图形架构的存在,这一架构被称作Graphics Core Next(简称GCN)。拉开了R600架构以来最大规模的变革(在GCN之间,AMD GPU的代号都被称作RV XXX,可见其根本上仍与R600有极大渊源,而GCN被称作R1000,不再带有V的标识)。 AMD的新架构大大加强了加速计算能力,但依然称为“Graphics Core Next”,可见传统的图形仍会有相当高的的地位,事实上AMD也在演讲中强调了3D图形仍然会继续进化。另一方面,AMD图形和计算架构并不是单独进化,而是隶属于更大的体系“Fusion系统架构”(FSA)的一部分,也就是说今后GPU、CPU会联系得越来越紧密,共同加速。 AMD官方所列出的架构主要特性包括 - 顶级的图形性能、特性 - 高计算密度与多任务 - 专注于高能效 - 优化异构计算 - 实现融合系统架构(FSA) - 惊人的扩展性和弹性 基于SIMD陈列的MIMD架构在GCN架构首次披露之时,大部分人都认为AMD已经彻底抛弃了SIMD(单指令多数据)的VLIW 5/4架构,将GCN转向MIMD(多指令多数据)的纯标量架构,像当初NVIDIA设计G80架构一样来个大革命,不过随着更多消息的发布,GCN架构的变化不是大革命,或者说革命不彻底,还留着前代的尾巴。 据BSN泄露的消息,AMD公司也只是将GCN称为“基于SIMD阵列的MIMD架构”(Southern Islands is a MIMD architecture with a SIMD array.),这番话表明GCN确实是MIMD架构,但是它与之前所用的SIMD架构藕断丝连,并没有完全脱离关系。 AMD对GCN架构的定义为“Non-VLIW ISA With Scalar+Vector Unint”---使用标量&矢量单元的非VLIW体系,它与之前的VLIW架构形似而神不同,显卡的组成单元不再是SIMD阵列,而是被称为“Compute Unit”的计算单元(简称CU)。 CU单元在AMD SI GCN架构中,CU(计算单元)代替了传统的流处理单元。一个GCN CU包含了 1 个向量计算单元模块(Vector Unit,里面有4 个16路SIMD计算子模块); 每个SIMD-16 模块拥有4*64KiB 向量寄存器; 1 个标量计算单元模块(Scalar Unit),用于执行整数指令、媒体指令和浮点原子操作(min、max、cmpxchg)。 标量计算单元模块拥有 4KiB 标量寄存器 每个GCN CU拥有64KiB LDS; 每个GCN CU拥有16 KiB 数据 Cache 每个GCN CU拥有1 个纹理拾取或者说内存存取模块(单周期执行16 个32-bit Load/Store 操作); 每个GCN CU拥有1个单周期执行4*32bit 线性滤波的纹理滤波单元; 图中的Branch&Message(分支与信息)单元可以用于执行分支指令和 Debug 等操作。 作为多线程处理器,AMD和NVIDIA的DX11 GPU都有一定的线程粒度,NVIDIA的线程粒度被称作 Warp,一个Warp是32 "线程";而AMD的线程粒度称作wavefront,粒度是 64 "线程"。 严格来说,所谓的线程其实是指处理数据的宽度,不过NVIDIA 偷换概念后,AMD也跟着上,都叫起“线程”了,而传统意义上的硬件线程本应该是Warp和wavefront这级别的才对。 在GCN CU上,一个周期能执行一个wavefront(硬件线程),或者说4个周期执行4 个wavefront。 因为线程调度器实际上是每次将4 个wavefront 派给CU,CU上的每个SIMD-16 单元执行其中一个,因为同一个wavefront 的指令都是一样的,只是所处理的数据地址是截然不同的。 所以SIMD-16 单元可以4 个周期完成一个Wavefront,这样由4 个SIMD-16 组成的CU 看上去就能单周期执行一个wavefront或者说4 个周期执行4 个Wavefront。 AMD Evergreen架构(HD5000)的wavefront(简称C-wavefront) 和GCN 的wavefront 是不一样的,C-wavefront 粒度虽然也是64 “线程”,但是每个“线程”是由一个VLIW5 的指令包组成的,虽然跑图形的时候问题不大,但是跑通用计算的话,效率就会大打折扣,需要比GCN wavefront更高带宽的指令总线,增加了开发工具的复杂性,性能的可预测性也存在不定因素。 重新设计的GCN CU现在更像一个80年代流行的向量处理器环路——极为简化的向量、标量组合,具备最高效的标量开发模型,和NVIDIA Fermi的设计思路一样,可以让程序员觉得是在给一个标量处理器开发程序。 每个RADEON HD 7970的GCN CU 的线程管理器最高可以同时容纳32 个 wavefront,也就是说当计算单元是空闲的话,可以有32个待处理的硬件线程可以选着派给计算单元执行。相比之下,NVIDIA Fermi的每个SM(相当于CU)最高可以有48 个warp 供选择执行。 在多线程执行上,CU拥有更多的子(调度器)模块,可以同时执行4个硬件线程,而NVIDIA Fermi则只有两个子(调度器)模块,可以同时执行两个硬件线程,这样的设计并没有一定的优劣之分,每个Fermi SM或者 GCN CU SIMD16 都能获得平均24 个(GF100/GF110) 或者16 个(GF10X/GF11X 以及GCN)硬件线程分派,硬件线程数越多,计算资源的利用率自然越高。 高速缓存GCN引入了多层次高速缓存,每个CU都有16 KB 可透过Golbal Data Store 共享的L1可读写数据Cache,32个CU 合计有512KiB L1数据cache,各个L1数据Cache的带宽为64 字节/周期,总带宽 2TB/s;每4个CU还共享1个16KiB的L1指令高速缓存和32KiB标量数据高速缓存(或者说Kernel Cache)。 GCN每个内存控制器通道配备有64 KiB L2可读写cache,HD 7970具备6 个64-bit内存控制器,因此拥有768 KiB L2可读写cache,L2 cache带宽可以达到64 字节* 6= 384 字节/周期。按照AMD的说法,L2 cache的总带宽是700GB/s,这意味着L2 Cache的频率可能是两倍于GPU内核频率即1.85GHz。 在GCN架构的缓存设计中,AMD非常注重数据共享与同步,每个CU中的64KB LDS本地缓存都能与L2缓存直接相连,L2缓存虽然与MC控制器相连,但是所有数据都是CU单元共享,并且可与CPU内存数据同步,提高了CPU与GPU的数据交换能力,这对CPU+GPU组成的异构计算大有裨益。 X86虚拟内存GCN还有一个重要设计不能不提,那就是支持X86 Virtual Memory(X86虚拟内存)功能,可以将GPU的显存映射为X86处理器可识别的内存,要知道GDDR5的带宽在上百GB/s量级,HD 7970的带宽大约在264GB/s,远高于目前四通道DDR3内存的理论带宽。 这个功能相当于打通了GPU和CPU数据共享的高速通道,受益的并非只是通用计算,即便是3D游戏也是获益良多。在这方面最明显的一个例子是超大纹理数据的处理,ID设计的《RAGE》游戏内容并不多,但是游戏的容量达到了20GB以上,这就要“归功”于ID Tech 5引擎的“Megatexture”技术了,超大容量纹理是提高游戏画质立竿见影的方式,但是对硬件来说是个极大的负担。 ID用自己的软件技术解决了这个问题,但是其他厂商不一定有这个技术,现在有了X86虚拟内存技术,CPU可以直接读取GPU中的数据,减少了速度较慢的系统内存读写过程,超大纹理素材也不再是问题了。 Tessellation计算和Cayman相比,RADEON HD 7970采用了最新的硬件Tessellation迭代单元,提高了顶点的复用度、片外缓存设计有所增强、采用了更大参数的高速缓存,因此RADEON HD 7970的Tessellation和几何缓存都有显著的增强,能在所有拆分倍率下达到4 倍于RADEON HD 6970的Tessellation性能。 兼顾图形计算与通用计算在公布GCN架构时,AMD喊出了“Graphic is Compute,Compute is Graphic”的新目标,表达了图形就是计算,计算就是图形的宏达理想,在保证GPU的图形渲染能力的同时也在GPU通用计算上发力,这一点可与AMD之前的形象大有不同。 虽然AMD显卡的前身ATI在GPU通用计算领域发力很早,但是一直没有太大动静,无论是媒体宣传还是实际应用都被NVIDIA的CUDA比了下去。待ATI被收购之后,拥有CPU业务的AMD也不会太热心GPU通用计算,以致于提到GPU通用计算就想到NVIDIA,而后者也刚刚在北京举办了GTC Asia 2011大会,重点就是GPU通用计算。 AMD的转变主要还是基于APU考虑,GCN不止要用在独立显卡上,以后也会用在APU上。提高GPU的通用计算能力,并且加强GPU与CPU的互通性将会帮助APU的中GPU成为真正的“一极”,不再是常规的显示/游戏之用。本来GPU的运算能力就大大超过CPU,只是通用性和任务调配能力不如CPU,如果AMD的目标得以实现,那么就可以用GPU弥补AMD的CPU短板了,而且用APU建造异构HPC也要比GPU+CPU更简单,这是一举多得的好事。 为此AMD在GCN架构上大动干戈,选择了性能更强的MIMD体系,改进了缓存设计以方便CPU与GPU互联互通,这些改进从硬件上增强了GPU的性能,但是在通用计算上这还只是一部分,软件平台的支持也很重要。 GPU计算能否成功,开发者的认可与接受是关键,这就要求GPU具备相当的可编程性,至少也要支持主流的编程语言。GCN架构将会支持C、C++以及其他高级编程语言,这点与Fermi架构看齐了。 除了高级编程语言外,GCN还支持GPU和CPU之间的统一虚拟寻址、支持GPU读取内存数据/内存页面除错、CPU与GPU之间的内存数据同步等功能,提高了GPU编程的便利性。 另一个门槛就是运算的稳定性和除错能力,GCN之前的架构只支持EDC(Error Detection & Correction)纠错,GCN首次支持ECC纠错,在显存与内存之间的数据交换过程ECC纠错将能将能确保数据的完整性。 FP64双精度运算对GPU通用计算有重要意义,支持与否往往成为判断显卡通用性能的指标之一,不过FP64的运算要求高,峰值性能比FP32要低很多。NVIDIA自GT200架构开始支持FP64,但是效能只有FP32的1/8。AMD从HD 5870开始支持FP64,不过峰值性能可以达到到1/5 FP32,HD 6800系列则没有FP64,HD 6900的FP64继续提高到1/4 FP32,GCN将会继承这个特性,虽然没有具体的数据支撑,不过至少也会有1/4 FP32的性能。 在强化计算能力的同时,AMD也没忘记GCN的图形性能改进,毕竟这还是GCN架构最主要的战地。除了支持PCI-E 3.0、DX11.1这样的标准之外,GCN架构针对3D运算也有一些改进,增加Partially Resident Textures(局部贮存纹理),这个技术是支持介绍过的类似Megatexture巨型纹理技术的基础,卡马克是用软件方式实现的,AMD的PRT技术算是硬件支持。 与nVIDIA Fermi架构的对比nVIDIA Fermi GF100拥有512个CUDA核心,这512个核心实际上分为16组SM单元(Streaming Multiprocessors),每个SM单元有32个CUDA核心,每个CUDA内核实际又是由1个整数ALU和一个浮点ALU组成,架构类似于现在的CPU内核了。此外,每个SM单元还有4个SFC(Special Function Unit)单元可以执行sin、cos、exp以及rcp等特殊函数。 Fermi每组SM单元一个周期内可以执行32条指令,而GCN每个CU单元每周期是40 waves,四组SIMD阵列并行运算,每周期就是四线程。 缓存设计上,每组SM单元有64KB L1缓存,所有SM单元共享768KB L2缓存,而GCN的缓存设计更为复杂,每个CU单元本地缓存也是64KB,但是还有共享的32KB L1指令缓存,标量单元还有额外共享的16KB L1缓存,L2缓存也是768KB大小,而且与所有L1缓存都是互通的,并且可以与内存同步数据,这些设计都是要领先Fermi架构的。 GCN的缓存设计比Fermi要复杂,而且非常注重数据的互通以及共享特性,L1与L2、L2与显存、L2与内存都可以同步数据,虚拟X86内存技术对高速数据传输理论会有奇效。 GCN与Fermi更多的还是相似点,二者的设计方向都是相同的,除了3D渲染还针对通用计算做了强化,C/C++编程语言以及ECC纠错的功能都是为计算准备的。 |
随便看 |
|
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。