Arm Neoverse CPU 的云上軟件分析
作者:Arm 開發(fā)者平臺部技術(shù)產(chǎn)品總監(jiān) Peter Harris
本文引用地址:http://butianyuan.cn/article/202408/462419.htmArm Neoverse CPU 為云端的工作負載提供了兼具高性能與高能效的計算平臺。通過針對底層硬件進行軟件調(diào)優(yōu),能夠大幅提高應(yīng)用性能。因此,來自硬件的高質(zhì)量性能數(shù)據(jù),以及用于采集和解析數(shù)據(jù)的性能分析工具必不可少。
Streamline CLI Tools 是一套全新的免費命令行工具,可以在運行 Linux 的 Arm Neoverse 服務(wù)器上直接對工作負載進行分析。這些工具采用 Arm CPU 自頂向下 (top-down) 的分析方法,僅需很少的用戶配置,即可提供清晰、可操作的性能數(shù)據(jù)。開發(fā)者可以利用這些數(shù)據(jù),來優(yōu)化應(yīng)用軟件中頻繁使用的功能代碼。
軟件性能
為了便于理解軟件應(yīng)用的性能,可以使用這樣一個簡單的公式:交付性能 = 利用率 × 效率。在這個公式中:
“利用率”衡量的是處理器的執(zhí)行能力中有多少比例用于處理指令。
“效率”衡量的是所使用的處理器執(zhí)行能力中有多少比例用于處理有用指令,而非浪費在丟棄的推測執(zhí)行指令上。
為了獲得理想的軟件性能,必須構(gòu)建高效的軟件算法,然后在運行時讓處理器的利用率和執(zhí)行效率均達到較高的水平。
自頂向下的 CPU 分析
在自頂向下的分析方法中,現(xiàn)代 Arm CPU 的處理核心被表示為一個包含三個主要階段的抽象模型。
自頂向下的方法定義了最大可用處理能力,即微操作 (micro-op) 發(fā)射槽位的總數(shù)乘以測量窗口中的時鐘周期數(shù)。這些工具使用 Arm CPU 性能計數(shù)器來計算一些指標(biāo)從而可將槽容量對應(yīng)于核心中特定行為。
前端綁定:因指令獲取瓶頸而未使用以致?lián)p失的槽容量百分比。
錯誤推測:由于錯誤分支預(yù)測或錯誤的推測執(zhí)行而損失的槽容量百分比。其中 錯誤的推測執(zhí)行會使 CPU 取消在錯誤的控制路徑上發(fā)出的微操作。
后端綁定:由于后端處理或數(shù)據(jù)提取延時而未使用以致?lián)p失的槽容量百分比。
執(zhí)行完成:為成功完成指令而用到的槽容量百分比。
這四個基本指標(biāo)是自頂向下分支樹的根節(jié)點,顯示了對高性能軟件非常重要的“利用率”和“效率”的基本指標(biāo)。每個基本節(jié)點下方還有進一步的指標(biāo)層級,提供了更詳細的細分,以便進行因果分析。
這種分層方法具有清晰的因果指標(biāo),便于直觀地發(fā)現(xiàn)和理解軟件中對微架構(gòu)敏感的性能問題。通過這些信息,我們可以根據(jù)具體問題采取特定糾正措施來提高性能。
使用 Streamline CLI Tools 進行分析
Streamline CLI Tools 是一套 Arm 原生命令行工具,可完全在服務(wù)器上進行性能分析。這個工作流程生成的總結(jié)性電子表格可以從服務(wù)器下載,以獲得可視化結(jié)果,但批量分析數(shù)據(jù)只能留存在云環(huán)境上。
自頂向下指標(biāo)提供了一種識別軟件性能問題的系統(tǒng)化方法,但只有當(dāng)指標(biāo)與所運行程序中的特定位置相關(guān)聯(lián)時,才能提供可操作的反饋。我們將在 Streamline CLI Tools 中引入新功能,可對自頂向下指標(biāo)進行逐函數(shù)歸因分析。
在下面的示例中,我們分析了在 Arm Neoverse V1 上運行的 Arm ASTC 紋理壓縮器。分析結(jié)果顯示 compute_avgs_and_dirs_3_comp_rgb () 函數(shù)是壓縮器中主要的熱點。該函數(shù)的指令執(zhí)行完成率較低,錯誤推測水平較高。關(guān)于錯誤推測的二級指標(biāo)表明,有很大比例的分支預(yù)測錯誤,并且每千條指令中存在大量分支未命中 (MPKI)。這份易于理解的性能分析報告,為我們清楚地指明了需要優(yōu)化的環(huán)節(jié)和需要改進的地方。
在優(yōu)化此函數(shù)后,我們用 Neon 條件選擇替換了不可預(yù)測的數(shù)據(jù)驅(qū)動分支,然后重新進行分析。分析結(jié)果顯示,更改后實現(xiàn)了顯著的 10% 性能提升,并且此函數(shù)的錯誤推測指標(biāo)回落到典型的基線水平。任務(wù)圓滿完成。
免費獲取 Streamline CLI Tools
你可以通過閱讀教程 [1] ,開始使用 Streamline CLI Tools。使用 wget 可以輕松下載工具并直接安裝到 Arm 服務(wù)器上,或者也可以訪問我們的網(wǎng)站來下載軟件包 [2] 。
歡迎告訴我們你希望在未來版本中看到哪些功能,或者你在使用工具時遇到的任何問題??梢酝ㄟ^ Streamline GitHub 報告問題 [3] ,也可以發(fā)送電子郵件至 performancestudio@arm.com 聯(lián)系產(chǎn)品團隊。
評論