引用:
作者dox6
這會不會太鬼扯?
意思是用Intel編譯出的程式碼某些程序會分成兩種執行途徑
排除是考慮相容性跟指令周全問題的話,兩段程序要做的功能一樣
但是效率有差很多,然後由認出的cpuid決定用哪段程序執行
|
一點都不扯....
基本上會po這種文章跟會寫這種假踢爆的人
根本不懂怎麼用ICC
ICC本來就是intel針對自家處理所推出的高性能優化編譯器
預設會針對優化自家CPU種類,來進行優化
簡單舉個例子,當ICC檢測到使用CPU是Q6600的時候
它可能最高只會啟用到SSE3指令集做優化
但是如果是現在新的Core i系列的新CPU
最高就有可能預設就啟用AVX指令集
如果是非intel的CPU預設當然就沒有自動優化這個功能
與其說自動優化,不如說事先建立好的profile
問題是為什麼intel要幫AMD建立profile?
改CPUID這種是外行才在做的事情
如果你很瞭解AMD跟intel CPU規格
還有對ICC有一定程度的了解
自己下編譯優化參數,然後侷限ICC的自動優化功能
我也可以編譯出高性能不輸INTEL處理器的binary
還有一個問題,就是ICC很多優化項目,AMD根本不能用
改CPUID?這種編譯方法,隨便換個平台就不能跑了
或者程式run到一半就出問題了自動跳出了