瀏覽單個文章
everspiral
Elite Member
 
everspiral的大頭照
 

加入日期: Nov 2004
您的住址: 北平西路3號
文章: 4,614
引用:
作者alience
第一次聽到這樣的說法

能否提供出處??

還有為什麼SSE不支援乘法跟加法混合使用就沒有意義了??


http://zh.wikipedia.org/wiki/SSE


MMX指令和SSE浮點不能同時工作這是第一個問題

MMX當初並沒有定義新的暫存器所以會跟傳統的x87搶暫存器
(inte當初制定SSE2時就打算用來取代MMX)

SSE在 X86-64 模式下作整數 SIMD 運算仍然要與 8 個 64 位元 MMX 暫存器
一起執行(言下之意就是轉成MMX),會有效率損失的問題

因為作業系統必須要在進程切換的時候保護這些 128 位元的暫存器狀態,除非作業系統去啟動這些暫存器,否則預設值是不會去啟用的。

SSE2指令集添加了對64位元雙精度浮點數的支援,以及對整型資料的支援,也就是說這個指令集中所有的MMX指令都是多餘的了


http://hi.baidu.com/wadeswb/blog/it...0c34fa4129.html


SSE不支援雙精度的浮點運算,以現在來說雙精度浮點是必備的

SSE2 的雙倍精確浮點指令可以取代舊有的 x86 浮點指令

再者雙精度的加法與乘法混合使用256Bit是在AVX出來以後才實現的

以前SSE一次只能做4筆32Bit單精或是2筆64Bit...

SSE2是建立在SSE的基礎上作擴充,所以SSE2取代了SSE無庸置疑


http://my.opera.com/aaroncn/blog/show.dml/871250


以現在的AVX來看SSE浮點運算,
2筆64Bit可以融合成1筆128Bit(SSE3S),那還有需要用SSE的方式實現嗎?
舊 2011-07-31, 12:05 PM #170
回應時引用此文章
everspiral離線中