共用方式為


已啟用 GPU 的計算

注意

某些已啟用 GPU 的實例類型處於 Beta 階段,並在創建計算資源時選擇驅動程式和工作角色類型的下拉式清單中被標示出來。

概觀

Azure Databricks 支援使用圖形處理單位 (GPU) 加速計算。 本文說明如何使用已啟用 GPU 的實例來建立計算,並描述這些實例上安裝的 GPU 驅動程式和連結庫。

若要深入瞭解已啟用 GPU 計算的深度學習,請參閱 深度學習

建立 GPU 計算

建立 GPU 計算類似於建立任何計算。 您應該記住下列事項:

  • Databricks 運行時間版本必須是已啟用 GPU 的版本,例如 Runtime 13.3 LTS ML(GPU、Scala 2.12.15、Spark 3.4.1)。
  • 背景工作類型和驅動程式類型必須是 GPU 實例類型。

支援的實例類型

警告

Azure Databricks 將不再支援使用 NC v3 實例類型系列來啟動計算,因為 Azure 將於 2025 年 3 月 31 日前淘汰 Nc24rs 和,再於 2025 年 9 月 30 日前淘汰和 NC6s_v3、NC12s_v3、NC24s_v3。

Azure Databricks 支援下列實例類型:

NCads_H100_v5

  • GPU 類型:NVIDIA H100 NVL GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_NC40ads_H100_v5 1 94GB 40 320GB
Standard_NC80adis_H100_v5 2 94GB x 2 80 640GB

ND_H100_v5

  • GPU 類型:NVIDIA H100 Tensor Core GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_ND96isr_H100_v5 8 80GB x 8 96 1900GB

NC_A100_v4

  • GPU 類型:NVIDIA A100 PCIe GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_NC24ads_A100_v4 1 80GB 24 220GB
Standard_NC48ads_A100_v4 1 80GB x 2 48 440GB
Standard_NC96ads_A100_v4 1 80GB x 4 96 880GB

NDasrA100_v4

  • GPU 類型:NVIDIA Ampere A100 40GB Tensor Core GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_ND96asr_v4 8 40GB x 8 96 900GB

NVadsA10_v5

  • GPU 類型:NVIDIA A10 GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_NV36ads_A10_v5 1 24GB 36 440GB
Standard_NV36adms_A10_v5 1 24GB 36 880GB
Standard_NV72ads_A10_v5 2 24GB x 2 72 880GB

NCasT4_v3

  • GPU 類型:NVIDIA T4 GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_NC4as_T4_v3 1 16GB 4 28GB
Standard_NC8as_T4_v3 1 16GB 8 56GB
Standard_NC16as_T4_v3 1 16GB 16 110GB
Standard_NC64as_T4_v3 4 16GB x 4 64 440GB

NC_v3

  • GPU 類型:NVIDIA Tesla V100 GPU
實例名稱 GPU 數目 GPU 記憶體 vCPU CPU 記憶體
Standard_NC6s_v3 1 16GB 6 112GB
Standard_NC12s_v3 2 16GB x 2 12 224GB
Standard_NC24s_v3 4 16GB x 4 24 448GB
Standard_NC24rs_v3 4 16GB x 4 24 448GB

如需支援的 GPU 實例類型及其可用性區域的 up-to日期清單,請參閱 Azure Databricks 定價。 您的 Azure Databricks 部署必須位於支援的區域中,才能啟動已啟用 GPU 的計算。

GPU 排程

GPU 排程可有效率地將 Spark 工作分散到大量的 GPU。

Databricks Runtime 支援 Apache Spark 3.0 的 GPU 感知排程。 Azure Databricks 在 GPU 計算上預先設定它。

注意

單一節點計算上未啟用 GPU 排程。

AI 和 ML 的 GPU 排程

spark.task.resource.gpu.amount 是唯一與 GPU 感知排程相關的 Spark 設定,您可能需要進行設定。 如果您使用的是所有 GPU 節點,預設組態會針對每個工作使用一個 GPU,這是分散式推斷工作負載和分散式定型的良好基準。

為了減少分散式定型期間的通訊額外負荷,Databricks 建議將設定 spark.task.resource.gpu.amount 為計算 Spark 組態中每個背景工作節點的 GPU 數目。 這隻會為每個 Spark 背景工作建立一個 Spark 工作,並將該背景工作節點中的所有 GPU 指派給相同的工作。

若要增加分散式深度學習推斷的平行處理,您可以將 spark.task.resource.gpu.amount 設定為分數值,例如 1/2、1/3、1/4... 1/N。 這會建立比 GPU 更多的 Spark 工作,讓更多的並行工作平行處理推斷要求。 例如,如果您將 spark.task.resource.gpu.amount 設定為 0.50.330.25,可用的 GPU 將會被分配來執行兩倍、三倍或四倍數量的工作。

GPU 索引

針對 PySpark 工作,Azure Databricks 會自動將指派的 GPU 重新對應至以零起始的索引。 針對每個工作使用一個 GPU 的預設組態,您可以使用預設 GPU,而不檢查指派給工作的 GPU。 如果您為每個工作設定多個 GPU,例如 4,指派 GPU 的索引一律為 0、1、2 和 3。 如果您需要指派 GPU 的實體索引,您可以從 CUDA_VISIBLE_DEVICES 環境變數取得它們。

如果您使用 Scala,您可以從 TaskContext.resources().get("gpu")取得指派給工作的 GPU 索引。

NVIDIA GPU 驅動程式、CUDA 和 cuDNN

Azure Databricks 會安裝在 Spark 驅動程式和背景工作實例上使用 GPU 所需的 NVIDIA 驅動程式和連結庫:

  • CUDA Toolkit,安裝在 底下 /usr/local/cuda
  • cuDNN:NVIDIA CUDA 深度類神經網路連結庫。
  • NCCL:NVIDIA 集體通訊連結庫。

隨附的 NVIDIA 驅動程式版本是 535.54.03,其支援 CUDA 11.0。 針對 NV A10 v5 實體類型系列,包含的 NVIDIA 驅動程式版本為 535.154.05

如需包含的連結庫版本,請參閱 您所使用之特定 Databricks Runtime 版本的版本資訊

注意

此軟體包含 NVIDIA Corporation 所提供的原始程式碼。 具體而言,為了支援 GPU,Azure Databricks 包含來自 CUDA 範例的程式代碼。

NVIDIA 使用者授權合約 (EULA)

當您在 Azure Databricks 中選取已啟用 GPU 的 「Databricks 執行時間版本」時,會隱含同意 NVIDIA EULA 中針對 CUDA、cuDNN 和 Tesla 連結庫所概述的條款及條件,以及針對 NCCL 連結庫 NVIDIA 終端使用者許可協定(含 NCCL 補充版)

GPU 計算上的 Databricks Container Services

重要

這項功能處於公開預覽狀態

您可以使用 計算上的 Databricks Container Services 搭配 GPU 來建立具有自定義連結庫的可攜式深度學習環境。 如需相關指示,請參閱 使用 Databricks Container Service 自定義容器。

若要建立 GPU 計算的自定義映像,您必須選取標準運行時間版本,而不是適用於 GPU 的 Databricks Runtime ML。 當您選取 [使用自己的 Docker 容器時,您可以選擇使用標準運行時間版本的 GPU 計算。 GPU 的自定義映像是以官方 CUDA 容器為基礎,這與適用於 GPU 的 Databricks Runtime ML 不同。

當您建立 GPU 計算的自定義映射時,無法變更 NVIDIA 驅動程式版本,因為它必須符合主電腦上的驅動程式版本。

databricksruntime Docker Hub 包含具有 GPU 功能的範例基底映像。 用來產生這些映像的 Dockerfiles 位於 範例容器 GitHub 存放庫中,其中也有範例映像提供的詳細數據,以及如何自定義這些映像。