[中央處理器] [定例] 推後想打,打後想壓,壓路256bit SIMD ALU算4個還是6個?

幹麼標題好似有味…A記你壞啦
推土過後閒想下代打樁,打樁推出後猜想壓路,但壓路機和同期Haswell相比,兩點我有D擔憂

一個是TSX擴展
在支持的軟件中,如果支持和不支持的CPU之間的性能差距會很大,壓路機相比同期Haswell在未來會漸見劣勢?

一個是AVX2
自從知道AVX對x264無大幫助,我就相信A記所說的在現實世界整數使用的比例是比浮點高
之前的推土/打樁,MMX單元(整數MMX/SSE/AVX)有兩個,即是4模組是有8個128bit SSE/AVX
但壓路機就只有一個,表面是FPU(128bit) FPU(128bit) ALU(不明)

如果那個MMX單元照舊是128bit,其中一個FPU也可以充當ALU使用,而且可以同MMX單元合併為一個256bit SIMD ALU
這樣4模組就有8個128bit整數SSE/AVX,或4個256bit整數AVX

如果是一個不能分開為兩個128bit的256bit MMX單元,而且其中一個FPU可以充當ALU使用
這樣4模組就有8個128bit整數SSE/AVX,或相當6個256bit的整數AVX“4個256bit AVX(全速)+4個256bit AVX(半速)”

同上,但兩個FPU也可以充當ALU使用,兼合併為一個256bit SIMD ALU
這樣4模組就有12個128bit整數SSE/AVX,或8個256bit整數AVX

我真的相信A記所說的,在現實世界中整數使用比例較高
如果最後是4個256bit整數AVX,就要和同期煙條4核1打1,A記1打1打不過煙條,結果明顯
普通x86性能不及煙條,256bit浮點AVX要1打1,整數AVX時候也一樣1打1,煙條還有TSX加持,A記這樣不就全面劣勢?

相當6個256bit的整數AVX
如果線程間有相關性,會不會出現全速要等半速的完成呢?

如果是8個256bit整數AVX
那為什麼不也升級浮點為兩個256bit?

而且壓路機下一代改用自動佈線,因為頻率可能會不高,非常有機會是短管線設計?
壓路機的情況會不會像未代P4,被A記像煙條過渡CORE2那樣是用來拖時間,Excavator後就不由得之前的是黑歷史無出過?
唔怕佢低,只係怕被放飛機

雖然想支持佢,但壓路機賭不賭得過?

本帖最後由 BMS 於 2012-10-25 16:48 編輯

(左至右)
K10.5 4.2G(OC)  來源不問自取於網上(參考用)
8150  4.2G(Turbo)
A10   4.2G(Turbo) 來源不問自取於網上
8350  4.2G(Turbo) v2 來源不問自取於滄極
cou.jpg

ALU倒退的項目有三個,FPU有兩個
不過Factorial項目下跌到貼近只有K10.5的一半,A記這也跌幅太大吧
無視TSX和AVX2,如果煙條同期性能肯維持不動,個人認為壓路機做到在推土機基礎之上全部向上推加1000,就已非常有競爭力

TOP

完全參與唔到討論

TOP

幹麼標題好似有味…A記你壞啦
推土過後閒想下代打樁,打樁推出後猜想壓路,但壓路機和同期Haswell相比,兩 ...
BMS 發表於 2012-10-24 00:18


Absolutely, don't know how you can come up with that math.

TOP

睇黎我真係要留名學野

TOP

回復 4# willy930
整數SSE/AVX實際係用MMX Unit運算,唔係用x86內核跑 ,不要因為佢個名叫MMX就以為佢只會跑MMX,A記D PDF也有簡約對各部件作說明
推土機/打樁機係有兩個128bit MMX Unit,所以你可以同時跑兩個整數64 bit MMX/SSE或兩個整數128bit SSE/AVX

如你所見,圖中壓路機就只有一個MMX Unit
可以分割為兩個的話,應該像FMAC那樣分別列出兩個
没有的話,非常高慨率是一個不可分割的256bit MMX Unit或維持原樣128bit

1模組如果只有1個的話,現實世界中整數使用比例較高,跑整數MMX/SSE/AVX大家就都死定,因為4模組就只有4個
不過那篇文章同時有提及reuse,所以我假定其中一個或全部FMAC到那時候同樣可以執行整數運算

全速和半速應該很好理解
過去還未有全速128bit SSE單元之前,就是將128bit SSE在64bit SSE單元上循環跑兩次

推土機架構的賣點就是整數能力
普通x86是用8個對4個(對煙條),MMX/SSE/AVX情況也是8個對4個
這個可以非常明顯在SiSoftware Sandra的Processor Multi-Media整數運算中看到,推土機架構在這裏還是有優勢

不過下年煙條將整數AVX UP上256bit又會怎樣?
到時候真是要1打1,A記從8個128bit AVX轉變到4個256bit AVX時總性能應没什變化,但煙條卻打了個double

推土機架構賣點是整數能力,如果壓路機不能保持在整數AVX方面領先,這不能接受吧?
而且連唯一優勢也没有的話,和同期Haswell相比可說是多方多面都全面劣勢

TOP

你做左program code analysis未?

係人都知愈多functional unit愈大throughput, 問題係你實際用到幾多?

TOP

本帖最後由 BMS 於 2012-10-25 16:46 編輯

回復 7# qcmadness

所以我用的是疑問句,會不會100%+50%應該是150%,但因為內容有相關性等原因拖低變成140%?
利伸我是普通人,不是程式員

不過“快既”會被“慢既”拖慢,我也不是完全胡扯、空白白話

以下例子是兩個同時運行,各跑三個線程
第1個跑在1,2,3,第2個跑在4,6,8
第1個三個線程都是共享狀態,而第2個只有一個是共享狀態,另兩個線程基本獨享
sha.jpg
但跑出來的benchmark基本一樣,這不就是“慢既”拖低“快既”嗎

WinRAR benchmark可以自適應線程數,你在工作管理員先勾選三個線程,這時候跑的benchmark就是用三個線程
不信!?這時候你可以去工作管理員勾回八個,但WinRAR一樣是跑三個線程的工作量
要重設benchmark線程數,只需要將“多線程”選項反勾後再重新勾選即可

TOP

回復  qcmadness

所以我用的是疑問句,會不會100%+50%應該是150%,但因為內容有相關性等原因拖低變成140% ...
BMS 發表於 2012-10-24 21:23


唔係愈多resource就做野愈快

TOP

本帖最後由 Puff 於 2012-10-24 21:40 編輯

Steamroller 依然是 128-bit vector unit,2 Vector Integer ALUs + 2 FMAC hardware,只不過從 4-issue 降到 3-issue,FMA0 同 MAL0 共用 issue port 了。然後 synthesis logic 同 custom logic 依然有明顯分野,如果 Bulldozer 依然想 maintain high freq engine,就自然唔會玩全 synthesis logic. AMD 頂多係話過 SR 後代用 high-dense cell lib。另外,所有 256-bit AVX operation 唔係 microcode 就係 decode 做個 128-bit operation。而且 AVX2 支唔支援都未知。

AVX 唔係對 x264 幫助唔大,而係 x264 係 integer algorithm based,想有幫助就得要成個 x264 重寫一次。呢個只係單一例子,唔能夠証明什麼整數比浮點多。

-
port 0: FMAC, FCVT, VALU, IMAC
port 1: FMAC, XBAR
port 2: gone
port 3: VALU, FSTOR

sauce: GCC bdver3 enablement patch

TOP