衡量CPU效能時,快取大小和核心數量哪個更重要?

衡量CPU效能時,快取大小和核心數量哪個更重要?

我正在購買筆記型電腦供我兒子上學使用,因此它不需要是遊戲機。我以前從頭開始組裝過電腦,但已經有一段時間了。

我注意到許多可用的入門級機器都配備了雙核心或單核心 CPU。我知道,在其他條件相同的情況下,雙核心 CPU 的效能可能會更好。但是,如果單核心具有更大的 L2 快取(例如,單核心為 3 MB,雙核心為 1 MB)怎麼辦?我知道這也會顯著影響效能。

據我所知,其他系統組件,例如記憶體速度和圖形硬件,也會影響系統效能。我的問題是,如果我必須在額外的 CPU 核心或更多快取之間做出選擇,我該選擇什麼?

答案1

CPU快取

較低的 CPU 快取將導致較高的機率快取未命中,這會顯著降低效能。話雖這麼說,另一個完整的核心將允許電腦同時運行至少兩個線程,因此當您必須選擇一個而不是另一個線程時,這是一種權衡。

CPU 快取大小與未命中率

從上圖可以看出,當快取大小超過1MB時,快取未命中的機率已經極低,而且隨著快取大小的增加,收益遞減。

CPU核心

另一方面,當應用程式利用多個核心時,額外的 CPU 核心可以顯示出顯著的速度提升。

對於大多數實際應用程序,額外的執行核心將比額外的快取提供更好的效能增益。在衡量電腦效能時,快取大小和核心數量都至關重要,但當您開始處理相對較少數量的核心時,額外的核心通常會帶來顯著的效能提升。

答案2

額外的核心,簡單,適用於大多數應用。在最佳條件下您可以進行兩倍的計算。快取有幫助,但它不會加倍速度。

答案3

正確的選擇(雙核心與額外快取容量)取決於將在筆記型電腦上運行的目標應用程式。

理論上,與單核心處理器相比,雙核心處理器的執行時間將減少一半。然而,在實踐中,由於編寫並行應用程式的挑戰,很少能實現 2 倍的加速。阿姆達爾定律(關聯)顯示即使應用程式 90% 的執行完全並行化(對於大型應用程式來說這是一項具有挑戰性的任務),加速比也是 1.82 倍而不是 2 倍。對於未以可擴展方式實現的應用程序,第二個核心的加速只會降低。

更大的 L2 快取容量將降低快取的未命中率,如 @Breakthrough 的答案所示。然而,答案引來了不正確從圖中得出的結論是,超過 1MB 的快取容量只會提供邊際改善。收益遞減點取決於應用程式(特別是工作集大小關聯)的應用程式。大多數應用程式的工作集大小可能超過 1MB,因此,更大的快取將有助於透過避免長延遲 DRAM 存取來提高效能(處理器的運行速度比主記憶體快 3 個數量級)

最後,雖然我的答案聽起來像是傾向於使用更大的快取而不是第二個處理器,但我想指出,大多數現代電腦科學課程都專注於向學生介紹並行程式設計。因此,多核心處理器更有意義,儘管它們在性能方面顯然不是更好的選擇

答案4

我會推薦雙核心機器而不是單核心機器。

由於 Windows 基本上同時執行許多操作(例如,您瀏覽網頁,同時下載 Windows 更新,防毒軟體正在掃描剛下載的檔案),因此雙核心系統通常比單核心系統更具「響應能力」機器。

相關內容