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

本文說明加速器最佳化機器家族中,搭載張量處理單元 (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 說明文件中的「申請未來預留項目一年以上的資源」。

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

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

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

各 TPU 版本的用量方案

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

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

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

2 只有在許可清單中的使用者,才能在日曆模式中預留 TPU7x 的 Spot、彈性啟動和未來預留項目。如要申請存取權,請與帳戶團隊或銷售團隊聯絡。

所有容量模式

根據預設,TPU 預留項目包含自動故障復原功能。Google Cloud 會管理這項程序,自動從預留容量中,以正常的 TPU 機器取代故障的機器,確保資源可用於重新啟動 TPU 節點。

或者,您也可以針對 TPU v6e 和 TPU7x,在「所有容量」模式下要求 TPU 容量。這個模式可讓您存取所有預留容量,並完整掌握拓撲。在此模式中,您也可以指定特定區塊或子區塊,精確地放置工作負載,並考量拓撲。不過,您必須負責管理硬體故障和維護作業。

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

比較 TPU 版本

比較不同 TPU 版本的特徵。 您可以在「選擇要比較的屬性」欄位中選取特定屬性,並在下表中比較所有 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
— — —
折扣 折扣 折扣
— discounts— discounts— discounts

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 晶片,但下列情況除外:

  • ct6e-standard-1t 僅含單一 TPU 晶片,主要用於測試。
  • 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 晶片。單一配量訓練最多可支援 6,144 個 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 晶片數量,請計算拓撲中每個大小的乘積。例如:

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

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

TPU 版本 機型 範圍 技術規格
TPU7x (Ironwood) tpu7x-standard-4t 單一主機
  • 拓撲:2x2x1
  • 拓撲的 TPU 晶片數量:4
  • 主持人人數:1
  • VM 數量:1
  • 方塊數: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
  • 魔術方塊數量:1
TPU7x (Ironwood) tpu7x-standard-4t 多主機
  • 拓撲:4x4x8
  • 拓撲的 TPU 晶片數量:128
  • 主機數量:32
  • VM 數量:32
  • Cube 數量: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. 計算方式為拓撲產品除以四。 ↩

後續步驟