引用:
作者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的方式實現嗎?