GPU-enabled集群
請注意
一些支持gpu的實例類型是存在的β當您在集群創建過程中選擇驅動程序和工作者類型時,會在下拉列表中這樣標記。
概述
Databricks支持使用圖形處理單元(gpu)加速的集群。本文描述了如何使用支持GPU的實例創建集群,並描述了安裝在這些實例上的GPU驅動程序和庫。
要了解關於支持gpu的集群上的深度學習的更多信息,請參見深度學習.
創建GPU集群
創建GPU集群類似於創建Spark集群集群).你應該記住以下幾點:
的磚的運行時版本的必須是支持gpu的版本,例如LTS ML (GPU, Scala 2.12, Spark 3.1.2).
的工作類型而且驅動程序類型必須是GPU實例類型。
對於沒有Spark的單機工作流,可以將工人數量設置為零。
Databricks支持以下gpu加速實例類型:
P2實例類型係列: p2。Xlarge、p2.8xlarge和p2.16xlarge
P2實例僅在選定的AWS區域可用。信息,請參閱Amazon EC2定價.您的Databricks部署必須位於支持的區域,以啟動支持gpu的集群。
P2實例需要EBS卷作為存儲。
P3實例類型係列: p3.2xlarge、p3.8xlarge和p3.16xlarge。
P3實例隻在特定的AWS區域中可用。信息,請參閱Amazon EC2定價.您的Databricks部署必須位於支持的區域,以啟動支持gpu的集群。
P4d實例類型係列: p4d.24xlarge。
P4d實例需要Databricks Runtime 9.1 LTS ML或以上版本。
G4實例類型係列,為在生產中部署機器學習模型進行了優化。
G5實例類型係列,它可以用於廣泛的圖形密集型和機器學習用例。
G5實例需要Databricks Runtime 9.1 LTS ML或以上版本。
對於所有gpu加速的實例類型,請記住以下幾點:
由於亞馬遜現貨實例價格飆升,GPU現貨實例很難保留。如有需要,可按需使用。
你可能需要申請增加限額以便創建支持gpu的集群。
看到支持實例類型查看支持的GPU實例類型及其屬性的列表。
GPU調度
Databricks Runtime 7.0 ML及以上版本支持GPU-aware調度從Apache Spark 3.0。Databricks在GPU集群上預配置。
單節點集群未開啟GPU調度功能。
spark.task.resource.gpu.amount
是唯一一個與gpu感知調度相關的Spark配置,您可能需要更改。默認配置為每個任務使用一個GPU,如果使用所有GPU節點,這對於分布式推理工作負載和分布式訓練非常理想。要在節點子集上進行分布式訓練,這有助於減少分布式訓練期間的通信開銷,Databricks建議設置spark.task.resource.gpu.amount
為集群中每個工作節點的gpu數量火花配置.
對於PySpark任務,Databricks自動將分配的GPU重新映射到索引0,1,....在每個任務使用一個GPU的默認配置下,您的代碼可以簡單地使用默認GPU,而無需檢查分配給任務的GPU。如果您為每個任務設置多個gpu,例如4,那麼您的代碼可以假設分配的gpu的索引總是0、1、2和3。如果您確實需要指定gpu的物理索引,您可以從CUDA_VISIBLE_DEVICES
環境變量。
如果您使用Scala,您可以獲得分配給任務的gpu的索引TaskContext.resources () . get (gpu)
.
對於7.0以下的Databricks Runtime版本,為了避免多個Spark任務試圖使用相同的GPU發生衝突,Databricks會自動配置GPU集群,以便每個節點最多有一個正在運行的任務。這樣,任務就可以使用節點上的所有gpu,而不會與其他任務發生衝突。
NVIDIA GPU驅動,CUDA和cuDNN
Databricks安裝在Spark驅動程序和工作實例上使用gpu所需的NVIDIA驅動程序和庫:
包含的NVIDIA驅動版本為470.57.02,支持CUDA 11.0。
有關所包含的庫的版本,請參閱發布說明您正在使用的特定Databricks運行時版本。
請注意
本軟件包含NVIDIA公司提供的源代碼。具體來說,為了支持gpu, Databricks包含了來自CUDA樣品.
NVIDIA最終用戶許可協議(EULA)
當您在Databricks中選擇啟用gpu的“Databricks運行時版本”時,您即默認同意英偉達EULA關於CUDA、cuDNN和Tesla庫,以及NVIDIA最終用戶許可協議(附NCCL附錄)NCCL圖書館。
GPU集群上的Databricks Container服務
預覽
此功能已在公共預覽.
您可以使用磚容器服務在帶有gpu的集群上創建具有定製庫的便攜式深度學習環境。看到使用Databricks容器服務定製容器的指令。
要為GPU集群創建自定義映像,必須為GPU選擇標準運行時版本,而不是Databricks runtime ML。當您選擇使用您自己的Docker容器,可以選擇標準運行時版本的GPU集群。GPU集群的自定義鏡像是基於官方CUDA容器,與GPU的Databricks Runtime ML不同。
在為GPU集群創建自定義映像時,不能更改NVIDIA驅動程序版本,因為它必須與主機上的驅動程序版本匹配。
的databricksruntime
碼頭工人中心包含具有GPU功能的基本圖像示例。用於生成這些圖像的dockerfile位於示例容器GitHub倉庫,其中還詳細介紹了示例圖像提供了什麼以及如何自定義它們。
錯誤消息
以下錯誤表明AWS雲提供商沒有足夠的容量用於請求的計算資源。
錯誤:集群終止。原因:AWS不足實例能力失敗
要解決這個問題,可以嚐試在不同的可用分區中創建集群。可用分區位於集群配置下,高級選項.你也可以複習AWS保留實例定價購買額外配額。
如果您的集群使用P4d或G5實例類型和Databricks Runtime 7.3 LTS ML,則7.3中的CUDA包版本與較新的GPU實例不兼容。在這些情況下,像TensorFlow Keras和PyTorch這樣的ML包會產生如下錯誤:
TensorFlow Keras:
InternalError:CUDA運行時隱式的初始化在GPU: x失敗了。狀態:設備內核圖像是無效的
PyTorch:
UserWarning:英偉達A100-SXM4-40GB與CUDA能力sm_80是不兼容的與的當前的PyTorch安裝。
您可以通過升級到Databricks Runtime 10.4 LTS ML或更高版本來解決這些錯誤。