瀏覽單個文章
csshih
*停權中*
 
csshih的大頭照
 

加入日期: Mar 2011
文章: 1,522
引用:
作者foxtm
喔..真的是這樣嗎...

讓我們來看個stackoverflow上平易近人的範例 (http://stackoverflow.com/questions/...prove-speed-why)

當然怕有人只看的懂opcode看不懂程式
所以簡單說明一下那個問答的內容

發問者寫了一段簡單的程式,會將A陣列中亂數產生的32bit浮點數,開三次平方根後存到B陣列
使用了三種方法來進行計算..
1.傳統的x87 (一次處理一組32b浮點數)
2.SSE(一次處理四組32b浮點數) 及
3.AVX (一次處理八組32b浮點數)
而執行後SSE的確較傳統X87有可觀的效能增長,但AVX執行效能卻等同於SSE,為什麼呢?


原因是因為,程式編譯後分別是呼叫 SQRTPS(SSE) VSQRTPS(AVX)兩組opcode來執行
根據此份文件 (http://www.agner.org/optimize/instruction_tables.pdf)中 Page 98 所述,VSQRTPS 的 Latency 為 42 ,是 SQRTPS 的 Latenc...


這位機乖騎士除了OS大溼
還是個編譯器大溼
 
舊 2015-05-05, 03:32 PM #62
回應時引用此文章
csshih離線中