一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arm SPE進(jìn)行芯片數(shù)據(jù)采集和性能分析呢?

Arm社區(qū) ? 來源:Arm社區(qū) ? 2024-01-24 18:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Arm Statistical Profiling Extension (SPE, 統(tǒng)計分析擴(kuò)展) 是一種架構(gòu)級功能,旨在增強(qiáng) Arm CPU 的指令執(zhí)行分析。自 2019 年 Arm Neoverse N1 CPU 平臺問世以來,該功能便與 Arm CPU 中普遍配備的 Performance Monitor Unit (PMU, 性能監(jiān)控單元) 并存。

為了能從 SPE 和 PMU 等功能中獲益,一個重要的步驟就是提供工具、文檔和示例以便形成一種自頂向下 (Top-Down) 的系統(tǒng)級芯片 (SoC) 性能分析解決方案。近期,Arm 的六名工程師發(fā)布了一份關(guān)于使用 SPE 進(jìn)行性能分析的詳細(xì)白皮書。

本文針對軟件開發(fā)者、性能分析師和芯片工程師介紹了使用 SPE 進(jìn)行性能分析和根源問題分析的概念和方法。

Arm SPE 是一種硬件輔助 CPU 分析機(jī)制,可提供詳細(xì)的分析功能。它會記錄關(guān)鍵執(zhí)行數(shù)據(jù),包括程序計數(shù)器、數(shù)據(jù)地址和 PMU 事件。SPE 可增強(qiáng)對分支、內(nèi)存訪問等的性能分析,從而助力軟件優(yōu)化的實現(xiàn)。SPE 數(shù)據(jù)可用于使用 Linux perf 等工具進(jìn)行源代碼熱點檢測、內(nèi)存訪問分析,以及數(shù)據(jù)共享分析的精確采樣。

SPE 采樣包括四個階段:運(yùn)算采樣、記錄關(guān)鍵執(zhí)行信息、樣本記錄后篩選,以及將記錄存儲在內(nèi)存中。它可以使用監(jiān)控工具進(jìn)行高效的分析和數(shù)據(jù)提取。SPE 使用減法計數(shù)器定期選擇微運(yùn)算進(jìn)行分析。SPE 樣本還會記錄指令從 CPU 后端開始運(yùn)算的執(zhí)行周期。

使用 Linux perf 工具收集數(shù)據(jù)時,可啟用 SPE 分析功能。Arm 還發(fā)布了 SPE-Parser 輔助工具,以支持 SPE 追蹤的數(shù)據(jù)收集和分析。該工具可以將數(shù)據(jù)導(dǎo)出為 CSV 和 Parquet 格式,提高了分析的靈活性。

已發(fā)布的 SPE 白皮書中提供了四個案例,用來說明該功能的價值。

1

Apache Arrow CSV 寫入器:性能優(yōu)化

第一個案例是利用 SPE 功能來優(yōu)化 Apache Arrow CSV 寫入器代碼。結(jié)果表明,在 Neoverse N1 平臺上,性能提高了 40%。該案例研究包括檢測單位周期指令數(shù) (IPC) 和帶寬 (GB/s),然后進(jìn)一步檢查 MPKI 和未命中率。其次,運(yùn)算組合指標(biāo)揭示了 CSV 寫入器工作負(fù)載對整數(shù)指令和分支的高度依賴,這表明可能存在矢量化優(yōu)化的機(jī)會。

通過對 L1D 緩存事件和分支預(yù)測錯誤進(jìn)行分析,揭示了與 memcpy 函數(shù)相關(guān)的問題,其中該函數(shù)頻繁出現(xiàn)緩存缺失和分支預(yù)測錯誤的情況。該案例研究還對 memcpy 中的分支進(jìn)行了分析,結(jié)果認(rèn)為分支預(yù)測錯誤的根源在于緩沖區(qū)大小預(yù)測偏差導(dǎo)致的效率不足。該案例研究強(qiáng)調(diào)了在 Arrow CSV 寫入器中結(jié)合 memcpy 運(yùn)算對于數(shù)據(jù)字段和分隔符的復(fù)雜性,導(dǎo)致 CPU 分支預(yù)測未達(dá)到最佳狀態(tài)。

使用 SPE 進(jìn)行分析后,便進(jìn)入了真正有趣的部分,即優(yōu)化 CSV 寫入器代碼。第一階段是引入 copy_separator 輔助函數(shù),以改進(jìn)熱循環(huán)中分隔符和行結(jié)束符的復(fù)制。對經(jīng)優(yōu)化的代碼進(jìn)行了基準(zhǔn)測試。結(jié)果表明,吞吐量從 1.5~1.8 GB/s 提高到 2.1 GB/s,指令總數(shù)減少,IPC 從 2.22 提高到 2.58。與分支相關(guān)的指標(biāo)大幅降低,促進(jìn)了整體性能的提升。在 Neoverse 核心上優(yōu)化代碼時,我們建議使用 SPE 進(jìn)行熱點分析和根源檢測。

2

利用 SPE 進(jìn)行內(nèi)存訪問分析

基于 SPE 進(jìn)行分析可以獲取有關(guān)內(nèi)存運(yùn)算的寶貴信息,包括內(nèi)存地址、執(zhí)行延遲和數(shù)據(jù)源信息。該分析有助于確定與內(nèi)存訪問相關(guān)的瓶頸和性能問題,并且可以采集通常需要運(yùn)行 LMBench 才能獲取的部分?jǐn)?shù)據(jù)。

SPE 可記錄內(nèi)存負(fù)載的分層數(shù)據(jù)源命中情況,其中數(shù)據(jù)源編碼取決于系統(tǒng)的緩存層次,如 L1 數(shù)據(jù)緩存、L2 緩存、LLC 或 RAM。

使用 SPE 性能分析數(shù)據(jù)對內(nèi)存訪問進(jìn)行分析需要篩選記錄,以便著重針對特定代碼部分,從中提取延遲值,并檢查由內(nèi)存運(yùn)算觸發(fā)的 PMU 事件。內(nèi)存測試用例顯示,SPE 衍生的延遲接近 LMBench 報告的延遲。SPE 數(shù)據(jù)還有助于分析性能問題,如 TLB 未命中。SPE 衍生的數(shù)據(jù)源信息與分層內(nèi)存訪問層級結(jié)構(gòu)相匹配,這有助于確定內(nèi)存訪問在緩存層次結(jié)構(gòu)中的命中位置。

3

內(nèi)存帶寬測試

SPE 分析還可用于預(yù)估內(nèi)存帶寬。不過需要注意的是,SPE 是一種基于采樣運(yùn)算的統(tǒng)計測量工具,對于內(nèi)存帶寬測量不一定百分百精確。SPE 可用于優(yōu)化和精細(xì)研究時的比較分析,特別是對于具有可預(yù)測和熟知的內(nèi)存訪問模式的代碼,如微內(nèi)核。SPE 監(jiān)測工具中推出的 SPE-Parser 工具可用于處理通過 Linux perf 工具收集的原始 SPE 分析數(shù)據(jù)。輸出結(jié)果可提供有關(guān)分析結(jié)果的寶貴信息。內(nèi)存讀取帶寬是通過經(jīng)篩選的 SPE 樣本以統(tǒng)計方式預(yù)估出來的。要計算這一估計值,需要將基準(zhǔn)讀取的總內(nèi)存大小除以總執(zhí)行時間。

4

數(shù)據(jù)共享分析

最后一個用例強(qiáng)調(diào)了 SPE 用于多線程工作負(fù)載中數(shù)據(jù)共享分析。數(shù)據(jù)共享問題可能會導(dǎo)致性能問題,特別是當(dāng)多個線程在同一數(shù)據(jù)集上工作時,這會造成緩存一致性開銷。緩存?zhèn)喂蚕肀闶且粋€常見的性能問題。當(dāng)一個處理器修改了緩存行上的數(shù)據(jù)項,而另一個處理器在該緩存行的不同部分工作時,就會出現(xiàn)這種情況。偽共享會導(dǎo)致緩存失效,并降低性能。

Linux perf c2c 工具會分析從 SPE 獲取的內(nèi)存訪問數(shù)據(jù),包括數(shù)據(jù)源信息、數(shù)據(jù)地址和指令 PC 地址。Perf c2c 可通過提供存在潛在問題的緩存行地址信息,為偽共享問題檢測帶來幫助。其中包括不同進(jìn)程訪問的緩存行中的數(shù)據(jù)偏移、指令地址、本地或遠(yuǎn)程(跨 CPU)訪問信息,以及所涉及的 NUMA 節(jié)點。該工具會報告可能存在偽共享的緩存行的詳細(xì)信息,以及不同線程訪問的數(shù)據(jù)偏移,從而幫助開發(fā)者發(fā)現(xiàn)并解決偽共享問題。SPE 分析與 perf c2c 工具相結(jié)合,可用于識別和解決多線程應(yīng)用中的偽共享問題,最終提高性能。

總結(jié)

Arm SPE 可提供詳細(xì)的 CPU 分析功能,包括常規(guī)代碼優(yōu)化、內(nèi)存訪問分析、內(nèi)存延遲預(yù)估和數(shù)據(jù)共享分析。

SPE 可用于對源代碼熱點檢測、內(nèi)存訪問分析和數(shù)據(jù)共享問題進(jìn)行精確采樣。它可通過記錄關(guān)鍵執(zhí)行數(shù)據(jù)來增強(qiáng)性能分析,并且能夠與 Linux perf 等工具集成,幫助用戶有效地進(jìn)行分析并優(yōu)化代碼。該工具集功能全面,能夠讓用戶識別瓶頸,加深對 CPU 行為的理解,并提高軟件性能。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9346

    瀏覽量

    376881
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2291

    瀏覽量

    96318
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    643

    瀏覽量

    35780
  • SPE
    SPE
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    13950
  • csv
    csv
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    6026

原文標(biāo)題:使用 Arm SPE 進(jìn)行芯片數(shù)據(jù)采集和性能分析

文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ARM+FPGA的高速同步數(shù)據(jù)采集

    1、 應(yīng)用背景     基于ARM+FPGA的高速同步數(shù)據(jù)采集方案,解決了數(shù)據(jù)采集的同步性問題,與以往
    發(fā)表于 07-22 16:36 ?1543次閱讀

    labview進(jìn)行數(shù)據(jù)采集

    請問在labview中進(jìn)行數(shù)據(jù)采集,為保證不同設(shè)備之間采集數(shù)據(jù)的同步性,準(zhǔn)備利用PPS進(jìn)行觸發(fā)開始任務(wù),利用DAQmx設(shè)備內(nèi)部時鐘源來設(shè)置數(shù)據(jù)采集的一些參數(shù),但是為了防止pps信號的缺
    發(fā)表于 04-27 10:19

    基于ARM+FPGA的高速同步數(shù)據(jù)采集

      1、 應(yīng)用背景    市面上的FPGA開發(fā)板和ARM開發(fā)板很多,但是將兩者結(jié)合起來完成數(shù)據(jù)采集與網(wǎng)絡(luò)通訊的開發(fā)板很少
    發(fā)表于 08-31 09:14

    LabVIEW的光譜數(shù)據(jù)采集系統(tǒng)的設(shè)計與分析

    本文引入了新興的虛擬儀器技術(shù),設(shè)計了一個基于LabVIEW的光譜分析數(shù)據(jù)采集系統(tǒng),通過軟件編寫再次對采集到的信號進(jìn)行了濾波處理,增加了增益調(diào)整功能;采用最小二乘法實現(xiàn)了對系統(tǒng)的波長標(biāo)
    發(fā)表于 06-06 08:00

    圖像采集實例分析——基于LabVIEW的光譜數(shù)據(jù)采集

    本文引入了新興的虛擬儀器技術(shù),設(shè)計了一個基于LabVIEW的光譜分析數(shù)據(jù)采集系統(tǒng),通過軟件編寫再次對采集到的信號進(jìn)行了濾波處理,增加了增益調(diào)整功能;采用最小二乘法實現(xiàn)了對系統(tǒng)的波長標(biāo)
    發(fā)表于 07-06 08:30

    基于ARM和GPS的數(shù)據(jù)采集模塊的設(shè)計

    本文主要介紹了基于ARM 和GPS 的數(shù)據(jù)采集記錄儀中的數(shù)據(jù)采集模塊的設(shè)計與實現(xiàn)。該數(shù)據(jù)采集記錄儀以32 位ARM7 微處理器LPC2220
    發(fā)表于 01-06 15:45 ?43次下載

    如何更好地進(jìn)行數(shù)據(jù)采集

    如何更好地進(jìn)行數(shù)據(jù)采集 工程師經(jīng)常需要進(jìn)行數(shù)據(jù)采集來驗證產(chǎn)品的性能和指標(biāo),或者對一些特定的應(yīng)用進(jìn)行監(jiān)測和控制,以便確定其物理參數(shù),例如溫度、應(yīng)力、壓
    發(fā)表于 01-04 10:32 ?1707次閱讀
    如何更好地<b class='flag-5'>進(jìn)行數(shù)據(jù)采集</b>

    基于ARM的藍(lán)牙實時數(shù)據(jù)采集系統(tǒng)的設(shè)計

    基于ARM的藍(lán)牙實時數(shù)據(jù)采集系統(tǒng)的設(shè)計 摘要:本文提出了一種基于ARM的藍(lán)牙無線數(shù)據(jù)采集系統(tǒng)。結(jié)合嵌入式技術(shù)與藍(lán)牙技術(shù)的優(yōu)勢,解決了傳統(tǒng)工業(yè)現(xiàn)場數(shù)
    發(fā)表于 02-02 11:27 ?1283次閱讀
    基于<b class='flag-5'>ARM</b>的藍(lán)牙實時<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)的設(shè)計

    基于ARM數(shù)據(jù)采集與控制系統(tǒng)設(shè)計

    基于ARM數(shù)據(jù)采集與控制系統(tǒng)設(shè)計
    發(fā)表于 12-17 15:26 ?2次下載

    基于ARM的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計_齊亞萍

    基于ARM的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計_齊亞萍
    發(fā)表于 01-18 20:24 ?1次下載

    基于ARM處理器的USB數(shù)據(jù)采集系統(tǒng)

    基于ARM處理器的USB數(shù)據(jù)采集系統(tǒng)
    發(fā)表于 09-25 13:41 ?5次下載
    基于<b class='flag-5'>ARM</b>處理器的USB<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)

    基于ARM與DSP的聲頻數(shù)據(jù)采集系統(tǒng)設(shè)計

    基于ARM與DSP的聲頻數(shù)據(jù)采集系統(tǒng)設(shè)計
    發(fā)表于 10-20 08:34 ?6次下載
    基于<b class='flag-5'>ARM</b>與DSP的聲頻<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)設(shè)計

    新的基于ARM數(shù)據(jù)采集系統(tǒng)設(shè)計

    新的基于ARM數(shù)據(jù)采集系統(tǒng)設(shè)計
    發(fā)表于 10-31 10:26 ?7次下載
    新的基于<b class='flag-5'>ARM</b>的<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)設(shè)計

    PLC實時數(shù)據(jù)采集如何實現(xiàn)?

    數(shù)據(jù)采集傳輸對于后續(xù)企業(yè)進(jìn)行分析和決策是十分重要的,而實時數(shù)據(jù)采集更能提升整體生產(chǎn)的認(rèn)識度,從而采取到更加及時高效的措施。因此PLC實時數(shù)據(jù)采集
    的頭像 發(fā)表于 11-24 11:09 ?2447次閱讀

    PLC實時數(shù)據(jù)采集如何實現(xiàn)

      數(shù)據(jù)采集傳輸對于后續(xù)企業(yè)進(jìn)行分析和決策是十分重要的,而實時數(shù)據(jù)采集更能提升整體生產(chǎn)的認(rèn)識度,從而采取到更加及時高效的措施。因此PLC實時數(shù)據(jù)采集
    的頭像 發(fā)表于 12-08 10:31 ?1736次閱讀