引用:
作者Stone Crab
以前AMD告Intel的訴狀提到說Intel在compiler裡搞鬼會檢查CPU是不是Intel的,
非Intel CPU就會跑低速模式... 
|
AMD沒講的是因為他們只有ICC初級班的程度
這些東西手冊裡都寫很清楚
但可惜的是,ICC必須玩到進階程度才有辦法做到
因為它只有一堆優化開關
手冊上不會寫這個指令AMD哪些CPU有支援
AMD的規格開發者自己要搞清楚
用了AMD沒有的東西
不支援很正常,能支援才奇怪
AMD很多指令集表面上是跟INTEL照抄
實際在實作上有些不太一樣
甚至有不少指令沒有包含
ICC才不會檢查CPU到底是INTEL還是非INTEL
不論自動或手動優化下
檢查的永遠都是暫存器類型,還有指令集類型等
5, 6年前是有一些設定上的BUG會導致設定失效
但這個BUG是無差別,在INTEL CPU也會出現
可是老早就修好了
我就可以自己用ICC BUILD出程式啟動時
自動檢測指令集應用最高支援指令集的程式
例如有CPU最高只有SSE2時禁用SSE3支援
一般正常情況下,最高使用SSE3編譯
如果沒有SSE3,軟體是不能執行的