簡體   English   中英

為通用x86 / 64與Xeon或其他人編譯的linux內核之間有什么區別

[英]What are differences between linux kernel compiled for generic x86/64 vs Xeon or others

在linux內核配置中,可以選擇更改CPU系列,大多數預編譯內核都是generic x86/64

我有一個Xeon E3 CPU,所以我想知道如果我選擇Core duo/Newer Xeon會發生什么。

這有什么區別? 為我的CPU系列編譯內核是否有任何意義,而不是通用的? 為Xeon優化的內核是否可以在非Xeon CPU上運行? 有人曾測量過一些性能上的差異嗎?

它將選擇相應的配置選項(來自arch / x86 / Kconfig.cpu):

config MCORE2
     bool "Core 2/newer Xeon"

一般來說, CONFIG_MCORE2將在32位構建上啟用編譯器選項-mtune=core2 ,並且-march=core2 (可以在Makefiles arch/x86/Makefilearch/x86/Makefile_32.cpu )。

GCC手冊頁中描述了這些選項:

-march=cpu-type

生成機器類型cpu-type的指令。 與-mtune = cpu-type(僅僅調整指定cpu類型的生成代碼)相比,-march = cpu-type允許GCC生成可能不會在指定的處理器之外的處理器上運行的代碼。

指定-march = cpu-type意味着-mtune = cpu-type。

酷睿2

Intel Core 2 CPU具有64位擴展,支持MMX,SSE,SSE2,SSE3和SSSE3指令集。

談到該編譯選項對應用程序性能的總體影響,它應該相對較低:

  • 在內核整體架構中很重要。 即競爭鎖可能很容易破壞性能,無鎖數據結構有助於獲得它。 它們無論編譯器選項如何都可以工作
  • 內核中有少量操作需要通過該優化啟用的SIMD操作(可能除了復制數組或字符串之外)。 內核中只有少量的CPU密集型操作。 但是,對高​​速緩存行大小的優化可能會很好。
  • 對於非大部分時間花在用戶空間上的非內核綁定的應用程序,很少使用系統調用調用內核,該優化的效果會按比例減少。 即對於內核只花費10%的應用程序,內核性能提升2%,整體性能提升僅為0.2%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM