http://pc.watch.impress.co.jp/docs/column/kaigai/20091209_334552.html
仕切り直しとなったLarrabeeの何が問題だったのか
http://pc.watch.impress.co.jp/docs/column/kaigai/20091210_334671.html
IntelはLarrabee計画とアーキテクチャをどう変えるのか
想要繼續讓CPU變快,many-core走high thoughtput勢在必行。
但是Larrabee靠繪圖來套must have策略來減低成本最後是行不通,因為x86的overhead看來還是太大了。
而且這個策略有很大的要因在bottom up,要靠低階產品來衝大數….
雲端的multi-core看起來不像是可以幫忙衝出大量的東西。
「多くの人がLarrabee=グラフィックスと見るが、
グラフィックスは汎用データ並列コアの普及戦略として持ち出された、
極端な言い方をすれば”方便”に過ぎない。 」
well,顯然沒有人真的認為Intel是想要graphic,他們只是奉行「moore’s law = Convergence」而已。 (更正)
反正晶片越大一定塞越多東西,CPU總有一天連地表都會吃進去….(笑)
但是,CPU為了對抗latency犧牲太多效率,對只要對付眼睛的GPU而言主要的工作接近徹底平行化是最大的恩惠,所以半導體製程過去是CPU的助力,現在變成對手的助力….
也許CPU想要把GPU吃掉,還得等到類似CD音質對音效卡一樣,有另外一個可以讓大部分的user看不出需要買主力硬體的另一個市場飽和因素的出現才行:到AC97和HD-codec的時代,除了專業創作用途之外user幾乎已經沒有買音效卡的必須性,音質的另外一個重點又卡在難以擴充的喇叭等視聽環境上,結果就變成相對起來投資極高,這點到目前為止都沒有大改變….
反過來說,Full HD底下大部分遊戲看不到現行硬體更換的必然性,會不會變成user覺得不必再升級的一個重要理由?
GPU長期以來靠遊戲市場的成長來維繫成長,但是遊戲市場目前的趨勢也是傾向萎縮,雖然和過去PS2一樣、PS3/XBOX360等高階console的壽命期末期應該還是會讓PC遊戲市場得到一點回溫的效果,但是會不會有PS4/XBOX次代機那又是另一個問題。也許遊戲市場的主流就這麼走向攜帶為主、一去不復返也說不定。
不過理想上來說,繪圖應該會走到大部份的人都可以滿足於肉眼所見的畫面,就和音效走到大家都滿足雙耳所聞的境界為止,那麼應該還有個十年可走才是。到時候3D stack memory說不定都出來了,再來談CPU整併GPU吧。
話說要老調重彈的是,Larrabee的通用性能也沒人懷疑過,問題是商業模式能不能支撐。
比方說非繪圖領域的HPC相關運算上,Larrabee的確有大大甩離現有GPU的能力,雖然規模也是甩蠻遠的。
繼續下去Larrabee花的錢說不定會超過AMD+NVIDIA總合起來花在GPU的開發費用上。
http://www.lockergnome.com/theoracle/2009/12/05/what-is-intel-doing/
What Is Intel Doing?
Back in 2006, when we first got the first details about Larrabee, the performance goal was “1TFLOPS@ 16 cores, 2.0 GHz clock, 150W TDP”
At SGEMM Performance test [4K by 4K Matrix Multiply, QCD], Intel achieved 417 GFLOPS using half the cores on the prototype card, and reached 825 GFLOPS by enabling all the cores. While looking at the numbers alone, one might think that these scores are below the level of ATI Radeon 4850 and nVidia GeForce GTX 280/GTX 285. Of course, there is a “but” coming – unlike theoretical numbers that are usually disclosed by ATI and nVidia – this was an actual SGEMM benchmark calculation used in the HPC community.
1. Intel Larrabee [LRB, 45nm] – 1006 GFLOPS
2. EVGA GeForce GTX 285 FTW – 425 GFLOPS
3. nVidia Tesla C1060 [GT200, 65nm] – 370 GFLOPS
4. AMD FireStream 9270 [RV770, 55nm] – 300 GFLOPS
5. IBM PowerXCell 8i [Cell, 65nm] – 164 GFLOPSIf you’re wondering where products such as Intel Harpertown-based Core 2 Quad or Nehalem-based Core i7 stand, the answer is quite simple – i7 XE 975 at 3.33 GHz will give you 101 GFLOPS, while Core 2 Extreme QX9770 at 3.2 GHz gives out 91 GFLOPS.
http://brightsideofnews.com/news/2009/11/17/nvidia-nv100-fermi-is-less-powerful-than-geforce-gtx-285.aspx
UPDATE #2: nVidia NV100 [Fermi] is less powerful than GeForce GTX 285?
Fermi是512個INT/FMA(不能同時運作),所以帳面上浮點性能可能不會好過MAD+MUL的GT200b太多。
尤其是後者因為register file的關係克服missing MUL問題之後,事情就不太好看了。
所以Fermi的優點剩下記憶體頻寬擴增之後理應搭配擴充的TMU/ROP….
http://forum.beyond3d.com/showthread.php?p=1322632#post1322632
Faster dense matrix-matrix products on ATi hardware
筆記。
話說要老調重彈的是,Larrabee的通用性能也沒人懷疑過,問題是商業模式能不能支撐。
比方說非繪圖領域的HPC相關運算上,Larrabee的確有大大甩離現有GPU的能力,雖然規模也是甩蠻遠的。
繼續下去Larrabee花的錢說不定會超過AMD+NVIDIA總合起來花在GPU的開發費用上。
http://www.lockergnome.com/theoracle/2009/12/05/what-is-intel-doing/
What Is Intel Doing?
Back in 2006, when we first got the first details about Larrabee, the performance goal was “1TFLOPS@ 16 cores, 2.0 GHz clock, 150W TDP”
At SGEMM Performance test [4K by 4K Matrix Multiply, QCD], Intel achieved 417 GFLOPS using half the cores on the prototype card, and reached 825 GFLOPS by enabling all the cores. While looking at the numbers alone, one might think that these scores are below the level of ATI Radeon 4850 and nVidia GeForce GTX 280/GTX 285. Of course, there is a “but” coming – unlike theoretical numbers that are usually disclosed by ATI and nVidia – this was an actual SGEMM benchmark calculation used in the HPC community.
1. Intel Larrabee [LRB, 45nm] – 1006 GFLOPS
2. EVGA GeForce GTX 285 FTW – 425 GFLOPS
3. nVidia Tesla C1060 [GT200, 65nm] – 370 GFLOPS
4. AMD FireStream 9270 [RV770, 55nm] – 300 GFLOPS
5. IBM PowerXCell 8i [Cell, 65nm] – 164 GFLOPSIf you’re wondering where products such as Intel Harpertown-based Core 2 Quad or Nehalem-based Core i7 stand, the answer is quite simple – i7 XE 975 at 3.33 GHz will give you 101 GFLOPS, while Core 2 Extreme QX9770 at 3.2 GHz gives out 91 GFLOPS.
http://brightsideofnews.com/news/2009/11/17/nvidia-nv100-fermi-is-less-powerful-than-geforce-gtx-285.aspx
UPDATE #2: nVidia NV100 [Fermi] is less powerful than GeForce GTX 285?
Fermi是512個INT/FMA(不能同時運作),所以帳面上浮點性能可能不會好過MAD+MUL的GT200b太多。
尤其是後者因為register file的關係克服missing MUL問題之後,事情就不太好看了。
所以Fermi的優點剩下記憶體頻寬擴增之後理應搭配擴充的TMU/ROP….
http://forum.beyond3d.com/showthread.php?p=1322632#post1322632
Faster dense matrix-matrix products on ATi hardware
筆記。
即使說Fermi的SM局部設計類似RISC CPU.
但本質上它還是傳統渾身肌肉(ALU)的暴力GPU.
依賴大量mini thread而非Cache來隱藏Latency.
以每增加多少ALU要分攤多少附加成本的觀點來看,
GPU每SP負擔的RegisterFile/ShareMemory/Cache
的電晶體成本其實非常少.
例如
Fermi只有768KB L2, 卻有16SM(512SP)
整組SM(32SP),只分攤到48KB的L2成本
每個SP只分攤到1.5KB的L2成本.
RegisterFile128KB除以32SP. 每SP負擔比例只有4KB.
ShareMem+L1只有64KB(1SM). 每SP負擔比例只有2KB.
所以Fermi平均每個增加1SP要增加7.5KB的SRAM成本.
LRB的1core只有16wide LNI卻要分攤到
64KB的L1和256KB的L2成本
以及16KB(x4thread?)Register.
平均每ALU運算至少需要21KB的SRAM成本.
和GPU相比, LRB每個ALU運算至少負擔3倍SRAM成本.
而且GPU還有一堆固定管線的ALU.
簡直整顆晶片都是用平行化大量ALU堆起來的.
GPU的世界一直都是充滿渾身肌肉的運算怪物
就連Fermi都讓人擔心肌肉比例不夠高…..
所以Larrabee的肌肉(ALU)比例不夠高.
先天就跼限繪圖效率.
即使Larrabee在CPU算是超高運算密度的core了.
但是在GPU的世界, Larrabee仍是個脂肪過剩的胖子.
繪圖晶片市場卻是個視肥肉為罪惡的世界……
基本上cache+scratch pad memory,和register的總容量差不多,
fermi的shared memory和L1的總和是1MB、加上768KB L2。
register file則是變少,512sp總共有2MB。
所以每個SP持有的register file相對於過去GT200是變少的,
而和過去512KB的G80相同。
所以G80有missing MUL的問題,Fermi則剛好把這個MUL拿掉了。
GT200有240個sp和1920KB的register file,
或者說每8個SP有64KB的register file,
是G80與Fermi的兩倍。(8sp-32KB/32sp-128KB)
或者這樣說好了:
G80的時候每個sp有4KB的register file
GT200的時候增加到8KB、
Fermi則變回4KB的register,以及3.3KB的shared memory與cache。
G80大約681M、G92約754M、GT200約1400M、Fermi目前預期大概3000M前後。
這樣算其實Fermi好像不會特別缺乏肌肉….w
—-
至於肌肉比例的部分回頭看ATI:
從R600以來,ATI的架構都保持80個SIMD core一組、256KB的register file,
R600和RV670都是320sp、1MB register file
RV770擴充到800SP、2.5MB register file
RV870再擴充到1600sp、5MB register….
但是每個sp都還是接近4KB register file,
只是相比之下ATI當然就沒有MAD+MUL的co-issue設計。
以及ATI在RV670放入的GDS(16KB)、RV770放入的LDS(32KB per SIMD core)、RV870則double 到64KB,相較於NVIDIA投注的成本低得多沒錯….
但是加一加可以發現,ATI和NVIDIA在繪圖面提供的thread數量(register file per SP)是相去無幾的,只是非繪圖面會開始出現通訊需求,於是就得用cache/scratch pad來做同步。
真正有差異的其實是兩邊排程與控制面的設計有很大的落差,在效率面和規模差距面體現出性格上的差異。
—-
當然Larrabee就很誇張了,16core x 16way SIMD、每個core有64KB L1、256KB L2,4個thread各16KB?的register file,雖說cache的同時也充當frame buffer、register file(用cache模擬)、constant buffer和shared memory…
如果用GPU的說法,就是ATI vs NVIDIA vs Intel = 4KB vs 8KB vs 21KB,而繪圖性能差不多就是這個反比。
TMU的話現在還不知道Larrabee搭多少,不過原則上這個和記憶體頻寬成比例,所以假設這個部份大家都夠的話,問題就侷限在上面的每個ALU有多少SRAM成本這點。
也就是說,從每個ALU來說,繪圖需要的可說就是那4KB、多出來的部分就是對非繪圖的投注心力。
ATI = 裝傻、NVIDIA = 並重、Intel = 醉翁之意不在酒。
過去的Intel一提到Moore’s Law,比較愛用”Convergence”這個字。
>>從每個ALU來說,繪圖需要的可說就是那4KB、
>>多出來的部分就是對非繪圖的投注心力。
>>ATI = 裝傻、NVIDIA = 並重、
想一想覺得有點不對.
RegisterFile功能只是用來給thread隱藏Latency.
每個ALU分擔4KB= 1024個32bit Register
1個mini thread可能讓1SP消費數個32bit Register.
1024個32bit Register可以有上百個mini thread
通常可以隱藏數百cycle Latency.
對目前GDDR5的GPU來說4KB per ALU大致上已經夠了.
GT200每個SP之所以會做到8KB Register,
應該跟強化非繪圖GPGPU沒有直接關係.
而是因為MUL單位也需要額外的Register,
過去我們都把GT200視為240SP.
把它想像成240的MADD單位對同樣資料多做一次MUL
可是其實MUL應該是獨立的運算單位.
應該視為240SP+240 mini SP
(A * B) + C 和 D * E , 需要兩倍Register才夠.
實質上是480個平行單位.所以NV給它兩倍暫存器
所以我認為Fermi並沒有減少暫存器比例,
包括GT200在內一直都是4KB.
Fermi沒有MUL單位所以不需要加倍RegisterFile.
但是從GT200進化到GT300,等於是
從240SP+240 mini SP—>512SP
以電晶體成長2倍多來看,Fermi肌肉比例不高,
所以就單精度而言. Fermi好像變胖了….
(雙精度雖然大幅成長….但遊戲不需要雙精度
對繪圖晶片而言那不是肌肉…..而是肥肉.)
從設計上來看, 兩社到GT200/RV870都是重視繪圖.
設計上其實都是繪圖優先,順便吃吃HPC.
但Fermi明顯重雙精度/輕單精度,
才是真正轉向繪圖/HPC並重.
可以說GT200還是以RV770為假想敵,
但Fermi是把Larrabee當成頭號對手了.
至於NV和ATI繪圖能力的運算密度差距
應該和RegisterFile沒有關聯
(反正大家都是抓在4KB)
ShareMem電晶體只佔極小比例應該影響不大.
(ShareMem+L1只有64KB(1SM). 2KB per SP.)
…GPU的肥肉比例太低了,其中Register的基本
4KB per SP負擔又佔去大部分,
ShareMem比例太小其實對運算密度影響很有限.
所以過去NV也不認為有對GPGPU投入過大.
不過Fermi就真的直接承認是GPGPU兼做繪圖了….
GT200以及之前的幾代,與ATI運算密度差距,
主要還是因為SP架構不同.
Scalar SP架構是完全依賴”硬體”做指令的最佳化,
這些沒有運算力的硬體雖然能提升SP效率,
本身卻是浪費電晶體又降低了整個晶片的運算密度.
和依賴compiler的VLIW相比,NV的SP天生就比較肥.
從G80就如此,1個NV倍頻SP和5個VLIW SP約同尺寸.
所以NV做了這麼多代也沒辦法明顯拉高運算密度.
(除非捨棄現有的SP架構….)
G80/G92幸運的是R600設計的太不成熟也太晚.
(有可能是要先做C1的關係)
亂七八糟的RingBus和少數ROP配莫名其妙512bit MC.
R600電晶體使用效益低到完全抵銷VLIW的先天優勢.
再加上VLIW compiler不成熟,
R600運算密度偏低結果就是晶片必須做更大,
結果良率出問題.進而量產時程往後延……..
整個Project能出錯的地方都出錯了,
結果導致大家都看不出Scalar SP架構運算密度偏低.
可以說….是ATI自己犯太多錯,才導致R600輸這麼慘
R700能進步空間這麼大也是因為R600實在太亂來了.
GT200去double register file的用意,
本來就是讓MUL能得以有效使用到,
這樣繪圖和非繪圖都有幫助。
不過另外一個看法是,雖說480sp好像只變成變成512sp,
MAD+MUL和FMA的差距還是存在啦,
畢竟是240sp x 3FLOPS vs 512sp x 2FLOPS,
如果說GT200是兩個MAD那就真的會差不多。
而4KB的意思的確就是說一個ALU到底需要多少register去擋GDDR5造成的延遲,
然後每個ALU自然都需要這4KB,MAD+MUL也是這樣。但是說實在的帳面歸帳面,
co-issue看起來在GTS250 vs GTX285的時候並沒有明顯的作用,
不然性能贏的幅度應該不只現在這樣。
(考慮G80/G92在排程上幾乎沒有MUL成立的空間)
我是有點懷疑co-issue的成立比例、離理論值可達的50%似乎有點大。
當然會拿掉的主因應該還是非繪圖的時候co-issue的作用也嫌小。
至於CUDA part到底是不是肥肉這就只能看市場了。
即使B3D總是有人要出來證明ATI的峰值性能很高,
對ATI的OpenCL和DirectCompute性能是不太敢期待就是了。
>>Intel = 醉翁之意
Larrabee的ALU負擔比例的情形稍有不同,
“有選擇”才能說它是還有額外目的.
CPU架構沒有一堆Thread可用,為了消滅Latency,
CPU架構天生就需要大量Cache或LS.
如果沒有256KB L2當Tile Buffer.
數百cycle的Latency會讓Larrabee變成低能廢物GPU.
(同時也是低能廢物ManyCoreCPU……)
沒有足夠的Thread,給它2048bit外部記憶體bus也沒用.
GPU那種超低的肥肉比例根本只夠L1 cache……
卻要隱藏數百cycle的Latency?
這絕對不足以讓任何CPU架構做全速運算.
就算I社只在乎繪圖,Larrabee也省不了那256KB L2.
(頂多只能犧牲方便性換成電晶體少一點的LS)
所以Intel根本沒有選擇的餘地.
CPU架構天生就必須肥胖,這是顯性遺傳XD
是20幾年來CPU適應軟體需求演化而來的架構,
Larrabee只是胖子家族中的最不胖的.
當它腦殘想去參加健美比賽,終究還是得面對現實….
與其說Larrabee的每ALU負擔這麼多Cache是醉翁之意.
倒不如說, 這是CPU架構先天的包袱.
無論Intel怎麼想, 都必須負擔那不必要的肥肉.
但….Intel “硬要用CPU架構來做GPU”,
以及”硬要用X86 ISA來做GPU”.
這兩點,就明顯是醉翁之意不在酒啦.
>>畢竟是240sp x 3FLOPS
這個本來就不會真的多出1.5倍效能啦.
畢竟是”MUL限定”的Mini ALU.
大多數情形下都無法使用到.
誰會每Cycle做MUL…..而且一般SP也在搶著做MUL,
實際效率會遠低於理論值,不過為了讓它真的能用,
NV還是下了重本,給它完整的暫存器數量.
也算是為了達成G80未完成的構想吧?
Fermi就乾脆取消使用率不高的Mini ALU了.
同樣的情形,在NV40/G70也有出現過.
例如那FP16 NRM單位,
之後G80也是不做了.
所以Fermi應該是從G80以來改變最大的架構.
不再Fallow或修正G80的理念.
> 所以Fermi應該是從G80以來改變最大的架構.
> 不再Fallow或修正G80的理念.
也有人提過Fermi是NV60嘍….
G8x~GT2x0都還是NV50的範圍。