加速器最佳化機器系列中的 TPU 機器

本文說明加速器最佳化機器家族中,搭載 Tensor Processing Unit (TPU) 的 Compute Engine 執行個體。TPU 是 Google 開發的客製化特殊應用積體電路 (ASIC),專門針對人工智慧 (AI) 和機器學習 (ML) 工作負載進行最佳化。

Compute Engine 支援下列 TPU 版本:

  • TPU7x
  • TPU v6e
  • TPU v5p

每個版本中的每個機型都有特定拓撲,並連結多個 TPU 晶片。

TPU 架構基本概念

瞭解 TPU 架構的基本概念,有助於您為工作負載選擇 TPU 版本和機器類型。

  • TPU 晶片:TPU 晶片是 Google 專為機器學習設計的加速器。每顆 TPU 晶片包含一或多個 TensorCore,可處理大量矩陣運算。每個 TensorCore 包含一或多個矩陣乘法單元 (MXU),這些單元採用脈動陣列架構,每週期可執行數千次乘法累加運算,不需持續存取記憶體。TPU 晶片主要用於高速矩陣處理,但也包含向量和純量單元,可用於一般運算和控制流程作業。

  • TPU Pod:TPU Pod 是透過專用網路分組的一組連續 TPU。TPU Pod 中的 TPU 晶片數量取決於 TPU 版本。

  • TPU 執行個體:在 TPU 主機上執行的 Linux 運算執行個體,可直接存取基礎 TPU 硬體,提供高效能程式庫、SSH 連線能力和執行階段偵錯記錄檔。

  • TPU 配量:互連 TPU 晶片的邏輯群組,可透過一或多個 TPU 執行個體存取。切片具有下列其中一個範圍:

    • 單一主機配量:由一部主機組成的配量。一般來說,這會對應至一個 TPU 執行個體。
    • 多主機配量:由多個 TPU 執行個體組成的配量,使用高速晶片間互連 (ICI) 相互連結。
  • TPU 立方體:互連 TPU 晶片的 4x4x4 拓撲。這種架構僅適用於 3D 拓撲。

  • SparseCore:SparseCore 是資料流處理器,可使用稀疏運算加速模型。主要用途是加速推薦模型,這類模型高度仰賴嵌入。

  • TPU 版本:TPU 晶片的確切架構取決於您使用的 TPU 版本。每個 TPU 版本也支援不同的切片大小和設定。

如要瞭解 TPU 的運作方式,請參閱 Cloud TPU 說明文件中的「TPU 架構」一文。

依工作負載類型推薦的 TPU 版本

選擇合適的 TPU 模型時,應考量工作負載的運算特性、記憶體需求和擴充性需求。選取下列其中一個分頁標籤,即可查看建議。

AI/機器學習訓練

  • 預先訓練大型模型:從頭開始訓練大型模型。這些工作負載受限於運算和通訊。

    • 所需 TPU 功能:高尖峰 FLOPS、低精確度支援,以及高互連頻寬。
    • 建議的 TPU 版本:
      • TPU7x。這個版本提供高 FP8 效能。
      • TPU v5p。這個版本支援大規模叢集設定。
  • 微調和蒸餾模型:使用參數效率方法調整現有模型,或訓練較小的模型變體。

    • 所需 TPU 效能:中等運算能力和充足記憶體容量。
    • 建議的 TPU 版本:
      • TPU v6e。這個版本適合標準訓練工作,符合成本效益。
      • TPU7x。這個版本提供高效能,適合大規模微調。

AI/機器學習推論

  • 線上提供模型:部署模型以進行即時互動,低延遲是關鍵。在依序生成權杖時,這些工作負載會受到記憶體頻寬限制。

    • 所需 TPU 功能:高 HBM 頻寬和大型晶片內建 SRAM,可盡量縮短資料擷取延遲時間。
    • 建議的 TPU 版本:
      • TPU v6e。這個版本經過最佳化,可大規模提供服務,同時兼顧成本效益。
      • TPU7x。這個版本提供高 HBM 頻寬和大型 SRAM,可加快生成詞元。
  • 執行批次推論:離線處理大型資料集,主要目標是高處理量。在提示預先填入階段,這些工作負載會受限於運算能力。

    • 所需 TPU 功能:高運算密度,盡可能提高每美元的處理量。
    • 建議的 TPU 版本:
      • TPU v6e。這個版本適合用於高處理量的批次處理,符合成本效益。
      • TPU7x。這個版本提供高運算密度,可快速處理大量資料。

推薦系統

  • 處理大型嵌入:訓練及提供使用大量嵌入表格的推薦模型。這些工作負載會受到容量和通訊限制。
    • 必要的 TPU 功能:專門的 SparseCore 硬體,可平行處理稀疏作業、高 HBM 容量,以及支援卸載至主機記憶體。
    • 建議的 TPU 版本:
      • TPU7x。這個版本每晶片有四個 SparseCore,並提供最大的 HBM 容量。
      • TPU v6e。這個版本每顆晶片包含兩個 SparseCore,可提供符合成本效益的服務。
      • TPU v5p。這個版本每顆晶片包含四個 SparseCore,可用於大規模訓練。

強化學習

  • 執行強化學習迴圈:管理混合工作負載,這類工作負載需要產生樣本和更新政策權重的緊密迴圈。

    • 所需 TPU 功能:低延遲 ICI,可在晶片之間快速傳輸權重和活化,以及高頻寬主機連線。
    • 建議的 TPU 版本:

      這些 TPU 版本使用高速 3D 環面互連網路。

用量方案

為充分運用資源、降低成本,並兼顧工作負載效能,Compute Engine 支援下列 TPU 消耗選項:

  • 隨選:不預先安排容量,直接使用 TPU。要求資源前,請務必確認您有足夠的隨選配額,可建立特定類型和數量的 TPU 執行個體。隨選是最有彈性的用量選項,但無法保證有足夠的隨選資源可滿足您的要求。

  • Spot:佈建 Spot VM 可享有大幅折扣,但 Spot VM 可能隨時遭到先占,並在 30 秒前發出警告。詳情請參閱「關於 Spot VM」。

  • 彈性啟動:佈建 {flex_start_vms_name},最長可運作七天,Compute Engine 會根據可用性,盡可能自動分配硬體。詳情請參閱「關於 {flex_start_vms_name}」。

  • 容量區塊的未來預留項目:要求一年以上的未來預留項目。詳情請參閱 Cloud TPU 說明文件的「要求一年以上的未來預留項目」一節。

  • 日曆模式的未來預留項目:在指定時間範圍內,佈建 TPU 資源最多 90 天。詳情請參閱「關於日曆模式中的未來預留項目要求」。

如未指定其他選項,TPU 的預設隨選計費模式。

如要瞭解啟用消耗選項的基礎佈建模式,請參閱「關於 VM 佈建模式」。

各 TPU 版本的用量方案

下表摘要說明各 TPU 版本的用量選項。

TPU 版本 隨選 Spot 彈性啟動 隨需預留項目 未來預留項目 日曆模式的未來預留項目1 容量區塊的未來預留項目
2 2 2 2

1 使用「所有運算能力」模式時,無法在日曆模式中建立未來預留項目要求。

2 Spot、彈性啟動、日曆模式的未來預留項目,以及 TPU7x 容量區塊的未來預留項目,都受到許可清單限制。如要申請存取權,請與帳戶團隊或銷售團隊聯絡。

所有容量模式

根據預設,TPU 預留項目包含自動故障復原功能。Cloud de Confiance 會自動將故障的 TPU 機器替換為預留容量中的健康機器,確保有可用資源重新啟動 TPU 磁碟切片,藉此管理這項程序。

或者,如果是 TPU v6e 和 TPU7x,您可以在所有容量模式中要求 TPU 容量。這個模式可讓您存取完整的預留容量,並完整查看拓撲。在這個模式中,您也可以指定特定區塊或子區塊,精準地依據拓撲結構安排工作負載。不過,您必須負責管理硬體故障和維護作業。

如要進一步瞭解這些模式,請參閱 Cloud TPU 說明文件中的「TPU 容量模式」。

TPU 版本比較

比較不同 TPU 版本的特性。您可以在「Choose properties to compare」(選擇要比較的屬性) 欄位中選取特定屬性,在下表中比較所有 TPU 版本的這些屬性。

加速器最佳化 加速器最佳化 加速器最佳化
VM VM VM
Intel Emerald Rapids AMD EPYC Genoa Intel Sapphire Rapids
x86 x86 x86
224 44 到 180 208
討論串 討論串 討論串
960 GB 176 至 1440 GB 448 GB
NUMA NUMA NUMA
— — —
— — —
— — —
— — —
— —
NVMe NVMe NVMe
—
— — —
— — —
— — —
— — —
— — —
— —
— — —
— — —
gVNIC gVNIC gVNIC
400 Gbps 50 至 400 Gbps 200 Gbps
4 8 4
— — —
折扣 折扣 折扣
— 折扣— 折扣— 折扣

TPU 架構規格

下表列出各 TPU 版本的主要規格。

規格 TPU7x TPU v6e TPU v5p
每個 Pod 的晶片數量 9216 256 8960
每顆晶片的尖峰運算效能 (BF16) (TFLOPs) 2307 918 459
每顆晶片的尖峰運算效能 (FP8) (TFLOPs) 4614 918 459
每個晶片的 HBM 容量 (GiB) 192 32 95
每顆晶片的 HBM 頻寬 (GBps) 7380 1638 2765
vCPU 數量 (4 晶片 VM) 224 180 208
RAM (GiB) (4 晶片 VM) 960 720 448
每個晶片的 TensorCore 數量 2 1 2
每個晶片的 SparseCore 數量 4 2 4
每個晶片的雙向晶片間互連 (ICI) 頻寬 (GBps) 1200 800 1200
每個晶片的資料中心網路 (DCN) 頻寬 (Gbps) 100 100 50

TPU 機型

以下各節說明各 TPU 版本適用的機器類型。

TPU7x (Ironwood)

每個 TPU7x 虛擬機器 (VM) 含有 4 個 TPU 晶片。所有 TPU7x 配量都使用完整主機、4 晶片 VM。

每顆 TPU7x 晶片包含兩個 TensorCore 和四個 SparseCore。

Ironwood 程式設計模型可讓您存取兩個 TPU 裝置,而非前幾代使用的單一邏輯核心架構。詳情請參閱 Cloud TPU 說明文件中的「雙小晶片架構」。

機型 vCPU 數量 執行個體記憶體 (GiB) 實體 NIC 數量 網路頻寬上限 (Gbps) 每個 VM 的 TPU 晶片數量 NUMA 節點數量 TPU 記憶體總量 (GiB HBM)
tpu7x-standard-4t 224 960 2 400 4 2 768

如要進一步瞭解 TPU7x 架構,請參閱 Cloud TPU 說明文件中的「TPU7x (Ironwood)」。

TPU v6e (Trillium)

每個 TPU v6e VM 可含有 1、4 或 8 顆 TPU 晶片。4 晶片和更小的配量具有相同的非統一記憶體存取 (NUMA) 節點。

v6e 配量是使用半主機 VM 建立,每個 VM 有 4 個 TPU 晶片,但下列情況除外:

  • 只有一個 TPU 晶片的 ct6e-standard-1t 主要用於測試。
  • ct6e-standard-8t 是經過最佳化的完整主機 VM,適用於推論用途,可讓附加至單一 VM 的所有 8 個 TPU 晶片用於單一服務工作負載。
機型 vCPU 數量 執行個體記憶體 (GB) 實體 NIC 數量 網路頻寬上限 (Gbps) 每個 VM 的 TPU 晶片數量 NUMA 節點數量 TPU 記憶體總量 (GiB HBM)
ct6e-standard-1t 44 176 1/4 50 1 1 32
ct6e-standard-4t 180 720 2 400 4 1 128
ct6e-standard-8t 360 1440 1 200 8 2 256

如要進一步瞭解 TPU v6e 架構,請參閱 Cloud TPU 說明文件中的「TPU v6e」。

TPU v5p

TPU v5p Pod 由 8,960 個 TPU 晶片組成,這些晶片透過可重新設定的高速連結互連。TPU v5p 的彈性網路可讓您以多種方式,連結相同大小配量中的 TPU 晶片。單一配量訓練最多支援 6144 個 TPU 晶片。

機型 vCPU 數量 執行個體記憶體 (GB) 實體 NIC 數量 網路頻寬上限 (Gbps) 每個 VM 的 TPU 晶片數量 NUMA 節點數量 TPU 記憶體總量 (GiB HBM)
ct5p-hightpu-4t 208 448 1 200 4 2 380

如要進一步瞭解 TPU v5p 架構,請參閱 Cloud TPU 說明文件中的「TPU v5p」。

TPU 拓撲

拓撲定義了 TPU 切片中 TPU 的實體排列方式。拓撲可能是二維或三維,視 TPU 版本而定。只要計算拓撲中各個大小的乘積,即可找出配量中的 TPU 晶片數量。例如:

  • 採用 2x2x2 拓撲的 tpu7x-standard-4t 機型是 8 晶片多主機 TPU7x 配量。

下表列出各 TPU 版本可用的拓撲。

TPU 版本 機型 範圍 技術規格
TPU7x (Ironwood) tpu7x-standard-4t 單一主機
  • 拓撲:2x2x1
  • 拓撲的 TPU 晶片數量:4
  • 主機數量:1
  • VM 數量:1
  • Cubes 數量:1/16
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:2x2x2
  • 拓撲的 TPU 晶片數量:8
  • 主持人人數:2
  • VM 數量:2
  • 方塊數量:1/8
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:2x2x4
  • 拓撲的 TPU 晶片數量:16
  • 主機數量:4
  • VM 數量:4
  • 方塊數量:1/4
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:2x4x4
  • 拓撲的 TPU 晶片數量:32
  • 主機數量:8
  • VM 數量:8
  • 方塊數量:1/2
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:4x4x4
  • 拓撲的 TPU 晶片數量:64
  • 主機數量:16
  • VM 數量:16
  • Cubes 數量:1
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:4x4x8
  • 拓撲的 TPU 晶片數量:128
  • 主機數量:32
  • VM 數量:32
  • Cubes 數量:2
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:4x8x8
  • 拓撲的 TPU 晶片數量:256
  • 主機數量:64
  • VM 數量:64
  • 立方體數量:4
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:8x8x8
  • 拓撲的 TPU 晶片數量:512
  • 主機數量:128
  • VM 數量:128
  • 方塊數量:8
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:8x8x16
  • 拓撲的 TPU 晶片數量:1024
  • 主機數量:256
  • VM 數量:256
  • 立方體數量:16
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:{A}x{B}x{C} (A、B 和 C 均為 2 的倍數)
  • 拓撲的 TPU 晶片數量:A*B*C
  • 主機數量:(A*B*C)/4
  • VM 數量:(A*B*C/4)
  • 立方體數量:(A*B*C/64)
TPU v6e (Trillium) ct6e-standard-1t 單一主機
  • 拓撲:1x1
  • 拓撲的 TPU 晶片數量:1
  • VM 數量:1
TPU v6e (Trillium) ct6e-standard-8t 單一主機
  • 拓撲:2x4
  • 拓撲的 TPU 晶片數量:8
  • VM 數量:1
TPU v6e (Trillium) ct6e-standard-4t 單一主機
  • 拓撲:2x2
  • 拓撲的 TPU 晶片數量:4
  • VM 數量:1
TPU v6e (Trillium) ct6e-standard-4t 多主機
  • 拓撲:2x4
  • 拓撲的 TPU 晶片數量:8
  • VM 數量:2
TPU v6e (Trillium) ct6e-standard-4t 多主機
  • 拓撲:4x4
  • 拓撲的 TPU 晶片數量:16
  • VM 數量:4
TPU v6e (Trillium) ct6e-standard-4t 多主機
  • 拓撲:4x8
  • 拓撲的 TPU 晶片數量:32
  • VM 數量:8
TPU v6e (Trillium) ct6e-standard-4t 多主機
  • 拓撲:8x8
  • 拓撲的 TPU 晶片數量:64
  • VM 數量:16
TPU v6e (Trillium) ct6e-standard-4t 多主機
  • 拓撲:8x16
  • 拓撲的 TPU 晶片數量:128
  • VM 數量:32
TPU v6e (Trillium) ct6e-standard-4t 多主機
  • 拓撲:16x16
  • 拓撲的 TPU 晶片數量:256
  • VM 數量:64
TPU v5p ct5p-hightpu-4t 單一主機
  • 拓撲:2x2x1
  • 拓撲的 TPU 晶片數量:4
  • VM 數量:1
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:2x2x2
  • 拓撲的 TPU 晶片數量:8
  • VM 數量:2
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:2x2x4
  • 拓撲的 TPU 晶片數量:16
  • VM 數量:4
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:2x4x4
  • 拓撲的 TPU 晶片數量:32
  • VM 數量:8
TPU v5p ct5p-hightpu-4t 多主機
  • 拓撲:{A}x{B}x{C} (A、B 和 C 均為 2 的倍數)
  • 拓撲的 TPU 晶片數量:A*B*C
  • VM 數量:(A*B*C/4)1
  1. 計算方式是將拓撲乘積除以四。 ↩

後續步驟