作者gt1724 (天野神无伊欧斯)
看板VideoCard
标题[情报] NVIDIA Fermi(GT300)通用计算架构探秘 样卡展示
时间Thu Oct 1 16:10:22 2009
AMD Cypress(RV870)拉开了DX11时代的序幕,NVIDIA Fermi(GT300)正在掀起新的浪潮。
今天凌晨,NVIDIA在GPU技术会议上终於揭开了全新架构的秘密,并首次展示了新一代显
卡。
一、迟来的怪兽
先看这张图:
http://news.mydrivers.com/Img/20091001/01244894.png
横向是NVIDIA、AMD历代图形核心(以及Intel Larrabee),纵向是晶体管数量,各个圆圈
上标注的则是制造工艺——右上角最庞大、最惹眼的就是今天的主角,NVIDIA Fermi。
GT200的14亿个晶体管曾经让我们惊叹,Cypress的21.5亿个相比RV770的9.56亿个增加了
一倍多,而Fermi达到了史无前例的30亿个,同样比自己的上一代翻了一番还多,比对手
也多了40%。
从最高层面上说,Fermi很简单,无非是512个流处理器,384-bit GDDR5显存,而深层次
的架构我们会在稍後逐一揭晓,不过
Fermi至今还停留在纸面上,还不是一款真正的产品
,所以型号划分、时钟频率、售价等等都还没有确定。事实上,直到两个月前NVIDIA才第
一次让人看到了样品,最近不久刚刚获得可以正常工作的芯片,
正式发布至少要到今年年
底,而全面上市就是明年第一季度的事儿了。
Fermi为什麽这麽晚?NVIDIA产品营销副总裁Ujesh Desai说了一句:因为设计这麽大的
GPU实在是太TMD的难了。
http://news.mydrivers.com/Img/20091001/S01250485.jpg
首次公布的Fermi核心照
二、来自RV770/GT200的教训
AMD用RV770核心给NVIDIA好好上了一课,庞大而沉重的GT200失去了反击之力,CUDA、
PhysX这种对手所没有的功能特性於是成了宣传重点。
作为GeForce业务负责人,Ujesh Desai愿意承担责任,并承认在GT200时代严重失策。根
据RV670 Radeon HD 3800的表现,
NVIDIA推测其继任者的性能也不过尔尔,但RV770的表
现大大出乎意料,而GT200定价过高,最终导致了一夜之间暴降千元的悲剧。
NVIDIAGPU工程副总裁Jonah Alben没有把责任都推到Ujesh身上,承认自己在工程上也有
失误。GT300从一开始就应该采用新的55nm工艺,但NVIDIA在130nm NV30 GeForce FX被
150nm Radeon 9700 Pro大败之後趋於保守,最後一次使用了65nm工艺,最终成就了一个
面积庞大、功耗超高的巨无霸。
虽然40nm工艺进程依然稍微落後,NVIDIA不会在同一条河里摔倒两次,没有在Fermi上沿
用55nm,否则又是一颗无法接受的大芯片。
不过NVIDIA暂时还没有透露Fermi的具体大小,只能估计一下。Fermi和Cypress都是40nm
工艺,假设核心面积和晶体管数量呈等比例,那麽在後者334平方毫米的基础上,Fermi将
是466平方毫米,比576平方毫米的GT200小足足两成。
尽管AMD的Sweet Point策略让NVIDIA吃尽了苦头,不过NVIDIA依然认为最重要的并非首先
开发价格较低的小芯片,而是提高大芯片的效率,然後衍生出不同的尺寸和配置规格。期
待Fermi的主流版本能在明年尽快出炉。
http://news.mydrivers.com/img/20080625/S03403062.png
GT200/RV770/Penryn核心对比
三、不再只是游戏
NVIDIA相信Fermi在3D游戏里会比Radeon HD 5870更快,当然不快也不行,但是
如果你只
是把Fermi单纯地看作是一颗游戏GPU就错了,因为它的真正目标是Tesla,是高性能通用
计算,是个人和数据中心超级计算机——这就是GT300里边那个字母T的含义,它要做一颗
通用目的微处理器。
这有点儿像Intel Nehalem架构,确切目标也不是桌面,而是高性能计算服务器领域,所以
新的Xeon处理器才在服务器工作站上横扫一片,但游戏性能并不比Core 2 Quad好多少。
http://news.mydrivers.com/Img/20091001/01332921.jpg
NVIDIA声称,要达到同样的性能,使用CPU就得2000台x86服务器,总成本约800万美元,
功耗1200kW,而换成GPU只需32台Tesla S1070s系统(如下图),成本不过40万美元,功耗
更是仅仅45kW。虽然这里没有算上驱动Tesla所需要的服务器(毕竟GPU不可能完全摆脱
CPU),但这部分占得也不会太多。
http://news.mydrivers.com/Img/20091001/01253037.jpg
NVIDIA预计,未来18个月内各高性能市场总价值如下:地震3亿美元、超级计算2亿美元、
大学1.5亿美元、国防2.5亿美元、金融2.3亿美元。虽然上个季度Tesla只带来了1000万美
元的收入,占NVIDIA总收入的1.3%,但
NVIDIA相信它前途无量,所以Fermi架构的很多地
方都是专门为此设计的。
其实藉着DX10统一渲染的东风,NVIDIA从G80就开始了通用计算的努力,GT200更进一步,
但它们主要还是一颗图形芯片,直到Fermi,不但肩负双重使命,而且同样重要。
AMD有3A
一体化平台,Intel也在开发独立显卡,NVIDIA自然不能坐以待毙,正在朝着视觉计算迈
进。
http://news.mydrivers.com/Img/20091001/01253916.jpg
四、Fermi架构解析
1、SP、SM
从高层次上看,Fermi和GT200结构形似,并无太大不同,但往身处看会发现绝大部分都已
经进化。
http://news.mydrivers.com/Img/20091001/01263368.jpg
http://news.mydrivers.com/Img/20091001/01292943.jpg
最核心的流处理器(Streaming Processor/SP)现在不但数量大增,还有了个新名字
CUDA核
心(CUDA Core),由此即可看出NVIDIA的转型之意,不过我们暂时还是继续沿用流处理器
的说法。
所有流处理器现在都符合IEEE 754-2008浮点算法(Cypress也是如此)和完整的32位整数算
法,而後者在过去只是模拟的,事实上仅能计算24-bit整数乘法;同时引入的还有积和熔
加运算(Fused Multiply-Add/FMA),每循环操作数单精度512个、单精度256个。所有一切
都符合业界标准,计算结果不会产生意外偏差。
双精度浮点(FP64)性能大大提升,峰值执行率可以达到单精度浮点(FP32)的1/2,而过去
只有1/8,AMD现在也不过1/5,比如
Radeon HD 5870分别为单精度2.72TFlops、双精度
544GFlops。由於最终核心频率未定,所以暂时还不清楚Fermi的具体浮点运算能力(双精
度预计可达624GFlops)。
http://news.mydrivers.com/Img/20091001/01271118.jpg
http://news.mydrivers.com/Img/20091001/S01302202.jpg
G80/GT200都是8个流处理器构成一组SM(Streaming Multiprocessor),Fermi增加到了32个
,最多16组,少於GT200的30组,但流处理器总量从240个增至512个,是G80的整整四倍。
除了流处理器,每组SM还有4个特殊功能单元(Special Function UnitSFU),用於执行抽
像数学和插值计算,G80/GT200均为2个。同时MUL已被删掉,所以不会再有单/双指令执行
计算率了。
至於SM之上的纹理处理器群(Texture Processor Cluster/TPC),NVIDIA暂时没有披露具
体组成方式,而且ROP单元、纹理/像素填充率等其它图形指标也未公布。
http://news.mydrivers.com/Img/20091001/01272121.jpg
http://news.mydrivers.com/Img/20091001/01291485.jpg
2、缓存
GT200的每组SM都有16KB共享内存,由其中8个SP使用。注意它们不是缓存(cache),而是
软件管理的内存(memory),可以写入、读取数据。为了满足应用程序和通用计算的需要,
Fermi引入了真正的缓存,每组SM拥有64KB可配置内存(合计1MB),可分成16KB共享内存加
48KB一级缓存,或者48KB共享内存加16KB一级缓存,可灵活满足不同类型程序的需要。
GT200的每组TPC还有一个一级纹理缓存,不过当GPU出於计算模式的时候就没什麽用了,
故而Fermi并未在这方面进行增强。
整个芯片拥有一个容量768KB的共享二级缓存,执行原子内存操作(AMO)的时候比GT200快
5-20倍。
http://news.mydrivers.com/Img/20091001/01273069.jpg
http://news.mydrivers.com/Img/20091001/01321743.jpg
3、效率
CPU和GPU执行的都是被称作线程的指令流。高端CPU现在每次最多只能执行8个线程
(Intel Core i7),而GPU的并行计算能力就强大多了:G80 12288个、GT200 30720个、
Fermi 24576个。
为什麽Fermi还不如GT200多?因为NVIDIA发现
计算的瓶颈在於共享内存大小,而不是线程
数,所以前者从16KB翻两番达到64KB,後者则减少了20%,不过依然是G80的两倍,而且
每32个线程构成一组「Warp」。
在G80和GT200上,每个时钟周期只有一半Warp被送至SM,换言之SM需要两个循环才能完整
执行32个线程;同时SM分配逻辑和执行硬件紧密联系在一起,向SFU发送线程的时候整个
SM都必须等待这些线程执行完毕,严重影响整体效率。
Fermi解决了这个问题,在每个SM前端都有两个Warp调度器和两个独立分配单元,并且和
SM其它部分完全独立,均可在一个时钟循环里选择发送一半Warp,而且这些线程可以来自
不同的Warp。分配单元和执行硬件之间有一个完整的交叉开关(Crossbar),每个单元都可
以像SM内的任何单元分配线程(不过存在一些限制)。
这种线程架构也不是没有缺点,就是要求Warp的每个线程都必须同时执行同样的指令,否
则会有部分单元空闲。每组SM每个循环内可以执行的不同操作数:FP32 32个、FP64 16个
、INT 32个、SFU 4个、LD/ST 16个。
4、并行内核(Parallel Kernel)
在GPU编程术语中,内核是运行在GPU硬件上的一个功能或小程序。G80/GT200整个芯片每
次只能执行一个内核,容易造成SM单元闲置。这在图形运算中不是问题,通用计算上就不
行了。
Fermi的全局分配逻辑则可以向整个系统发送多个并行内核,不然SP数量翻一番还多,更
容易浪费。
应用程序在GPU和CUDA模式之间的切换时间也快得多了,NVIDIA宣称是GT200的10倍。外部
连接亦有改进,Fermi现在支持和CPU之间的并行传输,而之前都是串行的。
http://news.mydrivers.com/Img/20091001/01281701.jpg
http://news.mydrivers.com/Img/20091001/S01283201.jpg
5、ECC支持
AMD Cypress可以检测内存总线上的错误,却不能修正,而
NVIDIA Fermi的寄存器文件、
一级缓存、二级缓存、DRAM全部完整支持ECC错误校验,这同样是为Tesla准备的,之前我
们也提到过。
很多客户此前就是因为Tesla没有ECC才拒绝采纳,因为他们的安装量非常庞大,必须有
ECC。
6、统一64-bit内存寻址
以前的架构里多种不同载入指令,取决於内存类型:本地(每线程)、共享(每组线程)、全
局(每内核)。这就和指针造成了麻烦,程序员不得不费劲清理。
Fermi统一了寻址空间,简化为一种指令,内存地址取决於存储位置:最低位是本地,然
後是共享,剩下的是全局。这种统一寻址空间是支持C++的必需前提。
GT80/GT200的寻址空间都是32-bit的,最多搭配4GB GDDR3显存,而
Fermi一举支持64-bit
寻址,即使实际寻址只有40-bit,支持显存容量最多也可达惊人的1TB,目前实际配置最
多6GB GDDR5——仍是Tesla。
7、新的指令集架构(ISA)
下边对开发人员来说是非常酷的:
NVIDIA宣布了一个名为「Nexus」的插件,可以在
Visual Studio里执行CUDA代码的硬件调试,相当於把GPU当成CPU看待,难度大大降低。
Fermi的指令集架构大大扩充,支持DX11和OpenCL义不容辞,C++前边也已经说过,现在又
多了Visual Studio,当然还有C、Fortran、OpenGL 3.1/3.2。
最後汇总一下G80、GT200、Fermi的差异:
http://news.mydrivers.com/Img/20091001/S01395246.jpg
五、Fermi样卡展示
说了这麽半天的架构技术,我也有点儿不耐烦了,下边就来点儿更实际的,看看黄仁勳和
Fermi样卡。
http://news.mydrivers.com/Img/20091001/S01402363.jpg
http://news.mydrivers.com/Img/20091001/S01402369.jpg
http://news.mydrivers.com/Img/20091001/S01402376.jpg
体积、样式和我们想像得差不多,不过输出接口只有一个DVI?别忘了这不是GeForce,而
是Tesla。AMD着力宣传ATI Eyefinity单卡多显技术,DVI、HDMI、DisplayPort齐上阵,
而NVIDIA把目光投向了高性能通用计算,双雄渐行渐远。
这下知道NVIDIA为什麽说DX11不是唯一了吧?绝非只是冒酸水。
http://news.mydrivers.com/1/145/145916.htm
以现在这时间点来说 要评论什麽还早了点
比如5770虽然可能两倍於4850的价格 效能可能没有
而GT300也可能有类似情况之类
现在顶多先知道96GT以下的CP值跟4770卖的比4850贵 还热门到缺货之类
不过在渐行渐远的条件下 要相比价值恐怕又是件更难的事了
例如代工双雄之争
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.197.68
1F:推 ftwing:非常详尽!感谢这篇报导~~~~也让人非常期待!! 10/01 19:41
2F:推 cakin:好像很厉害 10/01 21:53
3F:推 ridges:AMD(ATI)这次赢很大,能先上市就是赢了..还至少赢了两个月 10/02 00:08
4F:→ kevin0733:有一大部分都是翻译 Anandtech 的文章 10/02 01:03
5F:推 vixen:真希望原始的Fortran程式码重新编译一次就能给GPU跑... 10/02 15:16
6F:推 andyjy12:Fortran比起C更容易转到GPU,只是要电脑重新编译又跑得快 10/16 13:22
7F:→ andyjy12:那就很困难,毕竟CUDA有一堆奇奇怪怪的特性,要把这些特性 10/16 13:23
8F:→ andyjy12:弄很熟,才有办法写出很快的程式 = =~~~~ 10/16 13:23
9F:→ andyjy12:但可以先看看BLAST 的cuda版~~ 10/16 13:24
10F:推 landattack:好文! 06/19 18:06