跳至主要内容

擷取和比較執行結果

Sentinel 檢查點會保留原始的背景程式樣本,以便在特定工作負載中比較兩個或多個應用程式或模型的執行結果,並在相同的時間軸上進行比較。 正常的即時快取在 /run 期間會保持短暫;已完成的檢查點會儲存在 /var/lib/simaai-sentinel/runs 中,並且可以在背景程式重新啟動和重新開機後繼續存在。

擷取工作流程

simaai-sentinel checkpoint --name baseline --note "unoptimized model"
./run-test.sh
simaai-sentinel checkpoint --stop

simaai-sentinel checkpoint --name optimized --tag compiler-v2
./run-test.sh
simaai-sentinel checkpoint --stop

名稱必須是唯一的。在另一個檢查點處於作用狀態時開始,當沒有任何檢查點處於作用狀態時停止,刪除一個作用中的執行,以及選擇一個未知的或模糊的執行,這些操作都會產生可處理的錯誤。

互動式 TUI 提供相同的基本生命週期:按下 r,輸入一個檢查點名稱,然後按下 Enter 鍵以開始。一個紅色的 RECORDING 指示器會停留在標題中。再次按下 r 以停止並儲存執行。

作用中的檢查點會由守護程式使用原子寫入和重新命名操作來更新,並在獨佔檔案鎖定下進行。如果守護程式重新啟動,它會繼續附加到作用中的檢查點。已完成的檔案永遠不會被重新寫入。預設情況下,會保留最新的 50 個已完成的執行;在守護程式和 CLI 上設定 SIMA_SENTINEL_RUN_RETENTION=N 以選擇另一個限制。作用中的捕獲限制為 21,600 個樣本(在預設的兩秒間隔下,約為 12 小時);設定 SIMA_SENTINEL_RUN_MAX_SAMPLES=N 以更改安全限制。一旦達到限制,新的樣本將被拒絕,但執行仍然可以停止並儲存。

執行管理

simaai-sentinel runs list
simaai-sentinel runs show baseline
simaai-sentinel runs delete baseline
simaai-sentinel runs clear --force

list 顯示錄製/完成狀態、經過時間和樣本數量。 show 報告中繼資料、持續時間、整合後的總電量和指標數量。可以透過其獨特名稱或穩定的 ID 來選取執行次數。

clear --force 會移除所有已完成的執行次數,同時保留一個正在進行的錄製。明確的標記可防止意外的大量刪除。

每次執行次數都會記錄:

  • 名稱、ID、備註、標籤、開始/結束 UTC 時間戳,以及推算的樣本間隔;
  • Sentinel 版本以及可用的硬體板、作業系統和 SDK 識別檔案;
  • 指標定義、單位、警告/臨界值;
  • 原始帶有時間戳的值,包括明確標示為不可用值和缺失值。 按鍵;以及
  • 有足夠的原始能量樣本,可以用來提取能量。

能量以焦耳為單位計算,方法是使用梯形積分法對相鄰的有限元素進行積分。 power_current_watts 樣本。不會對間隙進行插值:如果任一端點遺失,則該線段不會產生任何能量。

比較執行次數標籤

開啟 Sentinel,然後選取「6」分頁:

simaai-sentinel

控制:

關鍵行動
Up / Down選擇一個已儲存的執行檔。
Space顯示或隱藏它;最多可同時顯示四個結果。
Enter將其指定為基準。
Left / Right針對每個可見的執行次數,選擇要顯示的指標系列。
w切換常見重疊區域和完整時長視窗。
x將目前選取的內容匯出為帶有版本資訊的 JSON 檔案,並儲存在 /tmp 資料夾中。
d 兩次刪除選取的已完成執行結果。
r啟動或停止一個檢查點。

每次執行都從經過的時間 t=0 開始,從其第一個擷取的背景程序樣本開始; 實際時鐘的時間戳記以及檢查點建立與該第一個樣本之間的可變延遲,不會用於對齊。樣本會以其原始相對間隔繪製,而不會重新取樣或插值。共同重疊視窗會在最短的選定執行週期結束時停止。完整的持續時間會保留較長的尾部,並自然地省略其他序列。

可見的指標選擇器提供總板子功耗、最大板子/SoC 溫度、CPU 使用率、標準化的一分鐘 CPU 負載、Linux RAM 使用量、MLA 分配的記憶體以及 EV74 CMA 使用的記憶體。一次僅疊加一個指標,以確保三個或四個選定的執行週期易於閱讀。

所有可見的執行週期都使用相同的點字線寬度和呈現樣式,因此沒有一個序列會比另一個序列更突出。每個執行週期仍然會獲得穩定的顏色和獨特的圖例符號,並且圖例始終可見。摘要報告會顯示樣本數量、最小值、平均值、中位數、第 95 百分位數、最大值、與選定基準線的百分比差異,以及用於功耗的整合能量。在重疊模式下,能量僅透過共同視窗進行整合。

CSV 匯出

simaai-sentinel export baseline optimized \
--format csv --output comparison.csv

CSV 使用一種長格式的結構:

run_id,run_name,elapsed_ms,timestamp,category,metric,unit,value,status

每一組執行、樣本和已知指標都佔一行。status 的狀態為 okwarningcriticalunavailablemissing。CSV 欄位遵循標準的雙引號轉義規則,並可直接載入 pandas、試算表和繪圖工具中。

JSON 匯出

simaai-sentinel export baseline optimized \
--format json --output comparison.json

JSON 文件包含匯出 schema: 1、產生時間、完整的執行 中繼資料、指標定義、原始樣本、整合的功率能量,以及 針對每個已定義指標的每次執行的統計資料。摘要 duration_ms 使用與 TUI 和 CSV 相同的以第一個樣本為比較的時程;原始樣本 的時間戳記和檢查點中繼資料會保留其原始的 UTC 值。 第一次要求的執行是基準;baseline_deltas_pct 報告後續執行的平均 百分比差異,前提是兩個平均值都存在且基準不為零。使用者必須拒絕不受支援的未來結構描述版本,而不是默默地猜測。

這兩種匯出格式都會寫入一個暫時的同層級檔案,然後以原子方式重新命名為要求的輸出。輸出目錄必須已經存在。

測量注意事項

  • 檢查點從 CLI 寫入其作用中的記錄時開始。第一個 已擷取的點是下一個惡魔快取樣本,並將用於比較。 t=0;在較早的檢查點建立時間點,不會進行任何值的內插。
  • 擷取頻率遵循惡魔快取間隔。更快速的 PMBus 讀取速度為 已經彙總到已發布的電力欄位中。
  • 遺失的樣本永遠不會被補回。
  • 部分或未通過的 PMBus 測試,仍會保留文件中所記載的語義。 電源面板
  • 比較可以確立可量化的差異;但它們並不能確立 它們本身就具有統計顯著性。