英特爾即將推出SST補丁 修復性能損失超10%的問題

Speed Select Technology 是英特爾推出的一套電源管理解決方案,特點是能夠根據用戶工作負載而調節頻率和管理內核優先級,以達成性能與效率的雙贏。尷尬的是,正如英特爾自家工程師所觀察到的那樣,在啟用了該模式的基準測試中,SST 竟然可能導致超過 10% 的性能下降。儘管未說明對實際工作負載的影響有多大,但此事還是引發了相當高的關注。

Intel SST - 0.png

資料圖(來自:Intel 官網)

工程師解釋稱,問題源於 Linux PCI 接口導致的延遲,因其在映射期間搜索了連接到系統的數百個 PCI 設備。

Inetl SST - 1.png

雖然難以理解這裡為何設計數百個 PCI 設備,但英特爾 SST 確實是一套相當複雜的解決方案,並且僅可在基於至強處理器的平台上使用(主流消費級酷睿產品線與之無緣)。

Intel SST - 2.png

在找到問題根源之後,英特爾已承諾將很快通過固件更新的形式進行修復。打補丁的原理也相當簡單,即利用緩存數據來提速搜索過程。

Intel SST - 3.png

以下是 Linux 內核郵件公告(LKML)中的消息摘要:

我們觀察到一些高性能基準測試在內核中耗費了更多的時間,具體取決於它們正在執行的 CPU 數據包,且可能導致超過 10% 的顯著差異。

SST 本該提升這些基準測試的服務優先級,以帶來更高的并行運行線程效能,但這種服務級別的變動又導致了需要訪問 Intel Speed Select PCI 設備的 MMIO 區域。

1 – Intel SST – 概述(via)

這種從 CPU 到 PCI 設備實例的映射,使用了標準的 Linux PCI 接口 —— 即 pci_get_domain_bus_and_slot()

此函數執行抵達 PCI 設備的線性搜索,但由於測試平台上擁有 100 多個 PCI 設備,結果導致基準測試的快速路徑代價異常高昂。

2 – Inter SST – 設置(via)

由於這裡的 PCI 設備和功能都是相對固定的,因而 Intel SST 能夠在實際執行時緩存 CPU 到 PCI 的設備信息,從而在再次訪問時顯著提升相關基準測試的性能。

據悉,英特爾在 2019 年的 Cascade Lake 至強處理器平台上隆重介紹了非常通用的 SST 技術,並且提供了包括設置核心優先級、基礎始終速率等在內的多種選項。

不過正如上文所述,SST 功能需要在固件中實現、並由處理器的電源控制單元(PCU)來執行。至於更多細節,還請移步至英特爾官網(傳送門)查看。

(0)
上一篇 2021-06-17 16:20
下一篇 2021-06-17 16:20

相关推荐