本指南說明如何使用日曆模式的未來預留項目,最佳化 Tensor Processing Unit (TPU) 佈建作業。日曆模式的未來預留項目是內建的日曆顧問和建議工具,可協助您尋找 TPU 運算資源並提前規劃。您可以指定開始時間和時間長度 (1 到 90 天),然後建議工具會提供建議日期。
本指南適用於機器學習 (ML) 工程師、平台管理員和營運人員,以及有興趣使用 Kubernetes 容器自動化調度管理功能執行批次工作負載的資料和 AI 專家。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE 使用者角色和工作」。
詳情請參閱「日曆模式的未來預留項目簡介」。
用途
日曆模式的未來預留項目最適合排程、短期、高需求的工作負載,例如訓練,或是在要求開始時間需要高可用性的批次推論模型。
如果工作負載需要視情況動態佈建資源,且最多可使用 7 天,不需要長期預留或複雜的配額管理,建議使用彈性啟動消耗量選項。詳情請參閱「關於使用彈性啟動模式佈建 GPU 和 TPU」。
事前準備
開始之前,請務必先完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
- 請確認您已備妥下列其中一項:
- 執行 1.28.3-gke.1098000 以上版本的現有標準叢集。
- 執行 1.30.3-gke.1451000 以上版本的現有 Autopilot 叢集。
以日曆模式要求預留 TPU
如要以日曆模式要求 TPU 的未來預留項目,請按照下列步驟操作:
- 建立 VM 時,請確保您有足夠的配額,可供不屬於預訂項目的任何資源使用,例如磁碟或 IP 位址。日曆模式的未來預留項目要求不需要 Compute Engine 配額。
- 完成「在日曆模式中建立要求」一文中的步驟。這些步驟包括:
- 查看 TPU 未來的可用性。
- 在日曆模式中建立及提交 TPU 的未來預留項目要求。
- 等待 Google Cloud 核准要求。
- 建立使用預訂項目的 TPU 節點集區。
建立節點集區
本節僅適用於 Standard 叢集,因為 Autopilot 模式會根據工作負載自動建立節點。
建立單主機或多主機 TPU 配量節點集區時,可以使用預訂項目。
建立單一主機 TPU 配量節點集區
您可以使用 Google Cloud CLI 建立單一主機 TPU 節點集區。
gcloud container node-pools create NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--cluster=CLUSTER_NAME \
--node-locations=NODE_ZONES \
--machine-type=MACHINE_TYPE \
--reservation-affinity=specific \ This is required
--reservation=RESERVATION
更改下列內容:
NODE_POOL_NAME:新節點集區的名稱。CONTROL_PLANE_LOCATION:根據您要使用的 TPU 版本,選擇適用的可用區名稱。如要找出可用位置,請參閱「GKE 中的 TPU 可用性」。CLUSTER_NAME:叢集名稱。NODE_ZONES:以半形逗號分隔的一或多個區域清單,GKE 會在這些區域中建立節點集區。MACHINE_TYPE:用於節點的機器類型。如要進一步瞭解與 TPU 相容的機型,請參閱「選擇 TPU 版本」一文中的表格。RESERVATION:要使用的日曆預約名稱。
如需可指定的完整旗標清單,請參閱gcloud container clusters create
參考資料。
使用日曆預留項目建立節點集區後,您就能像其他 TPU 節點集區一樣部署工作負載。日曆模式的未來預留項目與其他類型的預留項目相同,詳情請參閱「耗用預留的可用區資源」。
建立多主機 TPU 配量節點集區
建立多主機 TPU 配量節點集區的步驟,取決於您使用的是 Ironwood (TPU7x) 還是較早的 TPU 版本。Ironwood (TPU7x)
您可以使用 Google Cloud CLI 或 Terraform,在 Ironwood (TPU7x) 版本中建立多主機 TPU 配量節點集區:
gcloud
如要使用 Ironwood (TPU7x) 建立多主機 TPU 配量節點集區,請先建立工作負載政策。
建立工作負載政策:
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \ --type=HIGH_THROUGHPUT \ --accelerator-topology=TPU_TOPOLOGY \ --project=PROJECT_ID \ --region=REGION更改下列內容:
WORKLOAD_POLICY_NAME:工作負載政策的名稱。TPU_TOPOLOGY:TPU Ironwood (TPU7x) 拓撲。 例如,2x2x2。如要查看所有支援的 Ironwood (TPU7x) 拓撲,請參閱拓撲部分。PROJECT_ID:您的 Google Cloud 專案 ID。REGION:工作負載政策的區域。工作負載政策是區域性資源,可重複用於共用相同拓撲的節點集區。
使用工作負載政策建立節點集區:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=us-central1 \ --node-locations=us-central1-c \ --machine-type=tpu7x-standard-4t \ --reservation-affinity=specific \ --reservation=FUTURE_RESERVATION_NAME \ --placement-policy=WORKLOAD_POLICY \ --consolidation-delay=CONSOLIDATION_DELAY更改下列內容:
NODE_POOL_NAME:新節點集區的名稱。WORKLOAD_POLICY:您建立的 Workload 政策名稱。FUTURE_RESERVATION_NAME:未來預留項目的名稱。
這個指令會建立名為 NODE_POOL_NAME 的節點集區,並具備下列特徵:
--machine-type=tpu7x-standard-4t指定 Ironwood (TPU7x) 機型。
Terraform
- 請確認您使用的是 4.84.0 以上版本的
google供應商。 建立工作負載政策:
resource "google_compute_resource_policy" { name = "WORKLOAD_POLICY_NAME" region = CLUSTER_LOCATION workload_policy { type = "HIGH_THROUGHPUT" accelerator_topology = "TPU_TOPOLOGY" } }更改下列內容:
WORKLOAD_POLICY_NAME:工作負載政策的名稱。CLUSTER_LOCATION:叢集的運算位置。建議您使用區域性叢集,提高 Kubernetes 控制層的可靠性。您也可以使用區域叢集。 詳情請參閱「選取 TPU 版本和拓撲」。TPU_TOPOLOGY:TPU Ironwood (TPU7x) 拓撲。 例如,2x2x2。如要查看所有支援的 Ironwood (TPU7x) 拓撲,請參閱「規劃 TPU」。
如要進一步瞭解
google_compute_resource_policy參考資料,請參閱 Terraform Provider。在 Terraform 設定中,新增下列區塊:
resource "google_container_node_pool" "NODE_POOL_RESOURCE_NAME" { provider = google project = PROJECT_ID cluster = CLUSTER_NAME name = POOL_NAME location = CLUSTER_LOCATION node_locations = [NODE_ZONES] initial_node_count = NUM_NODES autoscaling { max_node_count = MAX_NODES location_policy = "ANY" } node_config { machine_type = MACHINE_TYPE reservation_affinity { consume_reservation_type = "SPECIFIC_RESERVATION" key = "compute.googleapis.com/reservation-name" values = [RESERVATION_LABEL_VALUES] } flex_start = false } placement_policy { policy_name = WORKLOAD_POLICY_NAME } }更改下列內容:
NODE_POOL_RESOURCE_NAME:Terraform 範本中的節點集區資源名稱。PROJECT_ID:您的專案 ID。CLUSTER_NAME:要新增節點集區的現有叢集名稱。POOL_NAME:要建立的節點集區名稱。NODE_ZONES:以半形逗號分隔的一或多個區域清單,GKE 會在這些區域中建立節點集區。選用:使用 AI 區域,例如
us-central1-ai1a。AI 可用區是專門的地點,經過最佳化調整,可處理 Google Cloud 區域內的 AI/機器學習工作負載。NUM_NODES:節點集區中的節點數量。這個值必須是零,或是 TPU 晶片數量除以四的結果,因為在多主機 TPU 配量中,每個 TPU 配量節點都有四個晶片。舉例來說,如果TPU_TOPOLOGY是4x8,則有 32 個晶片,因此NUM_NODES必須是 8。如要進一步瞭解 TPU 拓撲,請參閱「選擇 TPU 版本」一文中的表格。TPU_TOPOLOGY:這表示 TPU 配量選取的實體拓撲。拓撲格式取決於您使用的 TPU 版本。如要進一步瞭解 TPU 拓撲,請參閱「選擇拓撲」一文中的表格。
您也可以視需要使用下列變數:
RESERVATION_NAME:如果您使用 TPU 預訂,請提供建立節點集區時要使用的預訂資源標籤清單。如要進一步瞭解如何填入「RESERVATION_LABEL_VALUES」欄位中的「reservation_affinity」,請參閱 Terraform 供應商。autoscaling:建立已啟用自動調度資源的節點集區。當 GKE 擴充多主機 TPU 配量節點集區時,會不可分割地將節點集區從零擴充至最大大小。MAX_NODES:節點集區的大小上限。這個值必須等於TPU_TOPOLOGY({A}x{B}x{C}) 中定義的值的乘積,除以每個 VM 中的晶片數量。舉例來說,如果TPU_TOPOLOGY為2x2x2,則產品為 8。由於tpu7x-standard-4t中的每個 VM 都有 4 個晶片,因此節點數量為 2。
spot:將使用 Spot VM 做為 TPU 節點的節點集區。 節點集區建立後即無法變更這項設定。詳情請參閱「Spot VM」。flex_start:將使用彈性啟動用量方案的節點集區。如果已啟用spot,這項設定就無法設為true。
其他 TPU 版本
您可以使用 Google Cloud CLI、Terraform 或 Google Cloud 控制台,在第 3、4、5p、5e 和 Trillium (第 6e 版) 中建立多主機 TPU 節點集區。
gcloud
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--node-locations=NODE_ZONES \
--machine-type=MACHINE_TYPE \
--tpu-topology=TPU_TOPOLOGY \
--reservation-affinity=specific \
--reservation=FUTURE_RESERVATION_NAME
更改下列內容:
NODE_POOL_NAME:新節點集區的名稱。CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:區域名稱,取決於您要使用的 TPU 版本。如要找出可用位置,請參閱「GKE 中的 TPU 可用性」。NODE_ZONES:以半形逗號分隔的一或多個區域清單,GKE 會在這些區域中建立節點集區。選用:使用 AI 區域,例如
us-central1-ai1a。AI 可用區是專門的地點,經過最佳化調整,可處理 Google Cloud 區域內的 AI/機器學習工作負載。MACHINE_TYPE:用於節點的機器類型。如要進一步瞭解與 TPU 相容的機型,請參閱「選擇 TPU 版本」一文中的表格。TPU_TOPOLOGY:TPU 拓撲。 例如,2x2x2。如要查看所有支援的 TPU 拓撲,請參閱拓撲部分。FUTURE_RESERVATION_NAME:未來預留項目的名稱。CONSOLIDATION_DELAY:選填。叢集自動配置器等待的時間長度,之後才能縮減未充分運用節點。使用這項設定可延遲縮減作業,並保留節點集區,供其他 Pod 稍後重複使用。輸入的號碼必須以s結尾。舉例來說,如要指定一小時,請輸入3600s。適用於 GKE1.34.1-gke.2364000以上版本。
Terraform
- 請確認您使用的是 4.84.0 以上版本的
google供應商。 在 Terraform 設定中新增下列區塊:
resource "google_container_node_pool" "NODE_POOL_RESOURCE_NAME" { provider = google project = PROJECT_ID cluster = CLUSTER_NAME name = POOL_NAME location = CLUSTER_LOCATION node_locations = [NODE_ZONES] initial_node_count = NUM_NODES autoscaling { max_node_count = MAX_NODES location_policy = "ANY" } node_config { machine_type = MACHINE_TYPE reservation_affinity { consume_reservation_type = "SPECIFIC_RESERVATION" key = "compute.googleapis.com/reservation-name" values = [RESERVATION_LABEL_VALUES] } flex_start = false } placement_policy { type = "COMPACT" tpu_topology = TPU_TOPOLOGY } }更改下列內容:
NODE_POOL_RESOURCE_NAME:Terraform 範本中的節點集區資源名稱。PROJECT_ID:您的專案 ID。CLUSTER_NAME:要新增節點集區的現有叢集名稱。POOL_NAME:要建立的節點集區名稱。CLUSTER_LOCATION:叢集的運算位置。建議您使用區域性叢集,提高 Kubernetes 控制層的可靠性。您也可以使用區域叢集。 詳情請參閱「選取 TPU 版本和拓撲」。NODE_ZONES:以半形逗號分隔的一或多個區域清單,GKE 會在這些區域中建立節點集區。選用:使用 AI 區域,例如
us-central1-ai1a。AI 可用區是專門的地點,經過最佳化調整,可處理 Google Cloud 區域內的 AI/機器學習工作負載。NUM_NODES:節點集區中的節點數量。這個值必須為零,或是 TPU 晶片數量除以四的結果,因為在多主機 TPU 配量中,每個 TPU 配量節點都有 4 個晶片。舉例來說,如果TPU_TOPOLOGY是4x8,則代表有 32 個晶片,因此NUM_NODES必須是 8。如要進一步瞭解 TPU 拓撲,請參閱「選擇 TPU 版本」一文中的表格。TPU_TOPOLOGY:這表示 TPU 節點的實體拓撲。拓撲格式取決於您使用的 TPU 版本。如要進一步瞭解 TPU 拓撲,請參閱「選擇拓撲」一文中的表格。
您也可以視需要使用下列變數:
RESERVATION_NAME:如果您使用 TPU 預留項目,這是建立節點集區時要使用的預留項目資源標籤清單。如要進一步瞭解如何填入「RESERVATION_LABEL_VALUES」欄位中的「reservation_affinity」,請參閱 Terraform 供應商。autoscaling:建立已啟用自動調度資源的節點集區。當 GKE 擴充多主機 TPU 配量節點集區時,會不可分割地將節點集區從零擴充至最大大小。MAX_NODES:節點集區的大小上限。這個值必須等於TPU_TOPOLOGY({A}x{B}x{C}) 中定義的值的乘積,除以每個 VM 中的晶片數量。
spot:允許節點集區將 Spot VM 用於 TPU 節點。 節點集區建立後即無法變更這項設定。詳情請參閱「Spot VM」。flex_start:將節點集區設為使用彈性啟動用量方案。如果已啟用spot,則無法設為true。
控制台
如要建立含 TPU 的節點集區,請按照下列步驟操作:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
按一下「Nodes」(節點) 分頁標籤。
按一下「建立由使用者管理的節點集區」add_box。
在「節點集區詳細資料」部分中,勾選「指定節點位置」方塊。
根據要使用的 TPU 版本選取可用區名稱。如要找出可用位置,請參閱「GKE 中的 TPU 可用性」。
按一下導覽窗格中的「Nodes」(節點)。
在「機器設定」部分,選取「TPU」。
在「系列」下拉式選單中,選取下列任一選項:
- CT3:TPU v3,單一主機裝置
- CT3P:TPU v3,多主機 Pod 配量
- CT4P:TPU v4
- CT5LP:TPU v5e
- CT5P:TPU v5p
- CT6E:TPU Trillium (v6e)
在「機型」下拉式選單中,選取要用於節點的機器名稱。請參閱「選擇 TPU 版本」表格,瞭解如何定義機型和 TPU 拓撲,以建立多主機 TPU 配量節點集區。
在「TPU 拓撲」下拉式選單中,選取 TPU 配量的實體拓撲。
在「需要變更」對話方塊中,按一下「進行變更」。
確認「開機磁碟類型」為「標準永久磁碟」或「SSD 永久磁碟」。
或者,您也可以勾選「啟用 Spot VM 上的節點」核取方塊,在節點集區中使用 Spot VM 做為節點。
點選「建立」。
使用日曆預留項目建立節點集區後,您就能像其他 TPU 節點集區一樣部署工作負載。日曆模式的未來預留項目與其他類型的預留項目相同,詳情請參閱「耗用預留的可用區資源」。
後續步驟
試用生成式 AI 模型的 GKE 部署範例,這些模型會使用您預留的 TPU 資源:
前往 GKE AI Labs 探索實驗性範例,瞭解如何運用 GKE 加速 AI/機器學習計畫。