HLO 運算統計資料工具

您可以使用 HLO 運算統計資料查看剖析工作階段中執行的高階最佳化工具 (HLO) 運算的成效統計資料。這項工具可在剖析期間,醒目顯示 HLO 圖表中耗時最久的作業,協助您找出可進行效能最佳化的潛在目標。

支援平台

TPU:支援

GPU:支援

對於 GPU,HLOp 運算與實際執行的核心有 N:M 的關係。如要查看核心層級的統計資料,請參閱 GPU 核心統計資料工具。

HLO Op Stats Tool 元件

HLO 作業統計資料工具包含下列重要元件:

  • HLO 作業統計資料表:這是主要元件,以表格格式呈現剖析期間執行的每個 HLO 作業的詳細資料。每個不同的 HLO 作業都有一列,而資料欄則會擷取該作業的各種詳細資料。
    • 您可以透過下拉式選取器,決定要為每個 HLO 運算顯示哪些欄。
    • 您也可以透過第二個下拉式選取器,依據 HLO 作業類別篩選資料列。
    • 搜尋方塊可讓您依特定程式 ID、HLO 運算、HLO 運算文字或架構運算名稱篩選;篩選器會選取在相應欄位中任何位置顯示的提供字串。
  • 「摘要圖表」部分:這個部分包含摘要顯示每個作業的詳細資料表的圖表,如下所示:
    • 圓餅圖:顯示不同類別的 HLO 作業所耗用的時間比例。
    • 圓餅圖,顯示不同個別 HLO 作業所耗用的時間比例 (截斷為前 N 個作業,其餘作業歸類為「其他」以利閱讀)。
    • 圓餅圖:顯示重現化過程中,用於作業的總時間所佔的比例;XProf 會從與設定檔相關聯的編譯器中繼資料接收這項資訊。
    • 圓餅圖:顯示 HLO 運算類別,以及重現時間 (如有)。
    • 外部編譯作業所需的時間:外部編譯是 TensorFlow 功能,可讓 XLA 計算中的特定運算在主機 CPU 上透明執行,而非在加速器裝置上執行 (例如需要裝置不具備的 I/O 存取權的 tf.summary 或 tf.print)。
    • 這張圖表會繪製所有 HLO 運算的 GFLOPS/s,並依總自我時間排序。
    • 僅限 TPU:每個 HLO 的時間 (依副本群組劃分):您可以從下拉式選單中,選擇在剖析工作階段執行的不同集體運算。該集體作業的不同例項可能已在不同的複本群組中執行 (例如,AllGather);圓餅圖則顯示這些不同例項之間的時間分布情形。

HLO 作業統計資料表詳細資料

您可以按一下任一欄標題,即可排序 HLO 作業統計資料表。預設順序會根據運算子的總自時間 (在表格中標示為「rank」) 排序。

表格中包含每個 HLO 作業的下列資訊:

  • 運算名稱:XLA 編譯器指派給 HLO 運算的專屬名稱。
  • 程式 ID:這個作業所關聯的 HLO 模組 ID
  • HLO 運算子類別:這些類別主要由 XLA 編譯器定義;XProf 則會另外採用啟發式搜尋法,識別並分類特定運算 (例如卷積融合)。
  • HLO 運算文字:由 XLA 編譯器提供,包含輸入/參數的類型和形狀等詳細資料。
  • 架構運算名稱:架構層級的運算 (例如JAX) 產生這個 HLO 運算。
  • 發生次數:剖析期間執行此特定 HLO 作業的總次數。
  • 總時間 (μs):執行此作業的所有執行情形所花費的累積時間。如果這個運算有任何子項運算 (例如在 fusion 中),這段時間就會包含在這些子項中所花費的時間。
  • 平均時間 (μs):執行此 HLO 作業的平均時間,包括在子項作業中花費的時間 (如果有)。
  • 總自我時間 (μs):僅在這個 HLO 作業的內容中累積的時間,不包含在其子項作業中花費的時間。
  • 平均本身時間 (μs):執行此 HLO 作業的平均時間,不含子項作業所花費的時間。
  • 總自我時間 (百分比):表示運算的自我時間,以所有運算在裝置上的總時間的百分比表示。
  • 累積總自我時間 (百分比):在「排名」順序中顯示較早的所有運算的總自我時間 (百分比) 的累積和。
  • DMA 停滯時間百分比:作業因直接記憶體存取 (DMA) 作業而停滯的總時間所占的百分比。
  • FLOP、HBM 和內部 TPU 記憶體的頻寬用量 (使用率/秒),如果可用 (例如CMEM 僅適用於 TPU v4)。這些值都是使用編譯器的靜態成本分析 (分母) 和剖析的執行時間 (分母) 計算而得。
  • 模擬 GFLOPS/秒:GFLOPs 成本由 XLA 編譯器計算,而時間則由剖析資料測量。
  • 已正規化的 GFLOPS/秒:根據運算的數值精確度,以個別運算為基礎,將編譯器計算的 FLOP 正規化,以及裝置支援的最高 FLOP,以便針對不同精確度進行比較。舉例來說,TPU v6e 支援的 int8 尖峰 FLOPS 是 bf16 的兩倍;XProf 預設會將資料轉換為 bf16。
  • 記憶體頻寬:從任何記憶體 (例如晶片上的 TPU VMEM 和 HBM) 中,運算單元所消耗的位元組/秒數。XLA 編譯器會提供「位元組」數字,而時間長度則會在設定檔中測量。
  • HBM BW:從 HBM 專門消耗的位元組/秒數。
  • 作業強度:計算方式為每位元組的 FLOPS 比率,如屋簷分析所定義。
  • 運算/記憶體限制:根據 Roofline 模型,這個欄位會指出運算能力或記憶體頻寬,是運算效能的主要限制因素。
  • Rematerialization:指出該作業是否屬於重新實體化。
  • 外部編譯:指出是否使用 Tensorflow 的外部編譯工具,在主機 CPU 上執行運算。
  • 自動調整:表示 XLA 是否自動調整了運算。詳情請參閱「自動調整」和「持續性自動調整」。