GPU-fähige Compute
Hinweis
Einige GPU-fähige Instanztypen befinden sich in der Beta-Phase und sind als solche in der Dropdown-Liste gekennzeichnet, wenn Sie den Treiber und die Worker-Typen während der Compute-Erstellung auswählen.
Übersicht
Azure Databricks unterstützt mit Grafikprozessoren (GPUs) beschleunigte Berechnungen. Dieser Artikel beschreibt, wie Sie Compute mit GPU-fähigen Instanzen erstellen und beschreibt die GPU-Treiber und -Bibliotheken, die auf diesen Instanzen installiert werden.
Um mehr über Deep Learning auf GPU-fähigen Rechnern zu erfahren, lesen Sie Deep Learning.
Erstellen eines GPU-Computes
Das Erstellen eines GPU-Computes ähnelt dem Erstellen eines Compute. Berücksichtigen Sie dabei Folgendes:
- Die Databricks Runtime-Versionmuss eine GPU-fähige Version sein, z. B. Runtime 13.3 LTS ML (GPU, Scala 2.12.15, Spark 3.4.1).
- Der Workertyp und der Treibertyp müssen GPU-Instanztypen sein.
Unterstützte Instanztypen
Warnung
Azure Databricks bietet keine Unterstützung mehr für das Ausbauen von Compute mithilfe der NC v3-Instanzserie, weil folgende Instanzen in Azure als veraltet markiert werden: Nc24rs bis zum 31. März 2025 und NC6s_v3, NC12s_v3 sowie NC24s_v3 bis zum 30. September 2025.
Azure Databricks unterstützt die folgenden Instanzypen:
NCads_H100_v5
- GPU-Typ: NVIDIA H100 NVL GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs (virtuelle CPUs) | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_NC40ads_H100_v5 | 1 | 94 GB | 40 | 320 GB |
Standard_NC80adis_H100_v5 | 2 | 94 GB x 2 | 80 | 640 GB |
ND_H100_v5
- GPU-Typ: NVIDIA H100 Tensor Core GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_ND96isr_H100_v5 | 8 | 80 GB x 8 | 96 | 1900 GB |
NC_A100_v4
- GPU-Typ: NVIDIA A100 PCIe GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs (virtuelle CPUs) | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_NC24ads_A100_v4 | 1 | 80 GB | 24 | 220 GB |
Standard_NC48ads_A100_v4 | 1 | 80 GB x 2 | 48 | 440 GB |
Standard_NC96ads_A100_v4 | 1 | 80 GB x 4 | 96 | 880 GB |
NDasrA100_v4
- GPU-Typ: NVIDIA Ampere A100 40 GB Tensor Core GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_ND96asr_v4 | 8 | 40 GB x 8 | 96 | 900 GB |
NVadsA10_v5
- GPU-Typ: NVIDIA A10 GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_NV36ads_A10_v5 | 1 | 24 GB | 36 | 440 GB |
Standard_NV36adms_A10_v5 | 1 | 24 GB | 36 | 880 GB |
Standard_NV72ads_A10_v5 | 2 | 24 GB x 2 | 72 | 880 GB |
NCasT4_v3
- GPU-Typ: NVIDIA T4 GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_NC4as_T4_v3 | 1 | 16 GB | 4 | 28 GB |
Standard_NC8as_T4_v3 | 1 | 16 GB | 8 | 56 GB |
Standard_NC16as_T4_v3 | 1 | 16 GB | 16 | 110 GB |
Standard_NC64as_T4_v3 | 4 | 16 GB x 4 | 64 | 440 GB |
NC_v3
- GPU-Typ: NVIDIA Tesla V100 GPU
Instanzname | Anzahl der GPUs | GPU-Speicher | vCPUs | CPU-Arbeitsspeicher |
---|---|---|---|---|
Standard_NC6s_v3 | 1 | 16 GB | 6 | 112 GB |
Standard_NC12s_v3 | 2 | 16 GB x 2 | 12 | 224 GB |
Standard_NC24s_v3 | 4 | 16 GB x 4 | 24 | 448 GB |
Standard_NC24rs_v3 | 4 | 16 GB x 4 | 24 | 448 GB |
Unter Preise für Azure Databricks finden Sie eine aktuelle Liste der unterstützten GPU-Instanztypen und deren Verfügbarkeitsregionen. Ihre Azure Databricks-Bereitstellung muss sich in einer unterstützten Region befinden, um GPU-fähige Berechnungen zu starten.
GPU-Zeitplanung
Die GPU-Zeitplanung verteilt Spark-Aufgaben effizient über eine große Anzahl von GPUs.
Databricks Runtime unterstützt die GPU-bezogene Planung von Apache Spark 3.0. Azure Databricks konfiguriert es auf GPU-Rechenleistung vor.
Hinweis
Die GPU-Planung ist bei Einzelknotenrechnern nicht aktiviert.
GPU-Zeitplanung für KI und ML
spark.task.resource.gpu.amount
ist die einzige Spark-Konfiguration im Zusammenhang mit GPU-bezogener Planung, die Sie gegebenenfalls konfigurieren müssen.
Die Standardkonfiguration verwendet eine GPU pro Aufgabe, was eine gute Baseline für Workloads mit verteiltem Rückschluss und verteiltes Training ist, wenn Sie alle GPU-Knoten verwenden.
Zum Verringern des Kommunikationsaufwand während des verteilten Trainings empfiehlt Databricks, spark.task.resource.gpu.amount
auf die Anzahl von GPUs pro Workerknoten in der Spark-Compute-Konfiguration festzulegen. Dadurch wird für jeden Spark-Worker nur eine Spark-Aufgabe erstellt, und alle GPUs in diesem Workerknoten werden derselben Aufgabe zugewiesen.
Für eine höhere Parallelisierung bei verteilten Deep Learning-Rückschlüssen können Sie spark.task.resource.gpu.amount
auf Bruchwerte wie 1/2, 1/3, 1/4, ... festlegen. 1/N. Dadurch werden mehr Spark-Aufgaben erstellt, als GPUs vorhanden sind, sodass mehr gleichzeitige Aufgaben Rückschlussanforderungen parallel verarbeiten können. Wenn Sie z. B. spark.task.resource.gpu.amount
auf 0.5
, 0.33
oder 0.25
festlegen, werden die verfügbaren GPUs auf die doppelte, dreifache oder vierfache Anzahl von Aufgaben aufgeteilt.
GPU-Indizes
Bei PySpark-Aufgaben ordnet Azure Databricks zugewiesene GPUs automatisch den nullbasierten Indizes neu zu. Für die Standardkonfiguration, die eine GPU pro Aufgabe verwendet, können Sie die Standard-GPU verwenden, ohne zu überprüfen, welche GPU der Aufgabe zugewiesen ist.
Wenn Sie mehrere GPUs pro Aufgabe festlegen, z. B. 4, sind die Indizes der zugewiesenen GPUs immer 0, 1, 2 und 3. Wenn Sie die physischen Indizes der zugewiesenen GPUs benötigen, können Sie sie aus der Umgebungsvariablen CUDA_VISIBLE_DEVICES
abrufen.
Wenn Sie Scala verwenden, können Sie die Indizes der GPUs, die der Aufgabe zugewiesen sind, von TaskContext.resources().get("gpu")
abrufen.
NVIDIA-GPU-Treiber, CUDA und cuDNN
Azure Databricks installiert den NVIDIA-Treiber und die Bibliotheken, die für die Verwendung von GPUs in Spark-Treiber- und -Workerinstanzen erforderlich sind:
- CUDA Toolkit, installiert unter
/usr/local/cuda
. - cuDNN: NVIDIA CUDA Deep Neural Network Library.
- NCCL: NVIDIA Collective Communications Library.
Die enthaltene Version des NVIDIA-Treibers ist 535.54.03, die CUDA 11.0 unterstützt. Für die NV A10 v5-Instanztypserien ist 535.154.05
die Version des enthaltenen NVIDIA-Treibers.
Informationen zu den Versionen der enthaltenen Bibliotheken finden Sie in den Versionshinweisen für die spezifische Databricks Runtime-Version, die Sie verwenden.
Hinweis
Diese Software enthält Quellcode, der von der NVIDIA Corporation bereitgestellt wird. Insbesondere zur Unterstützung von GPUs schließt Azure Databricks Code aus CUDA-Beispielen ein.
Software-Lizenzbedingungen von NVIDIA
Wenn Sie eine GPU-fähige „Databricks Runtime-Version“ in Azure Databricks auswählen, stimmen Sie implizit den Geschäftsbedingungen zu, die im NVIDIA-Lizenzvertrag hinsichtlich der CUDA-, cuDNN- und Tesla-Bibliotheken beschrieben sind, sowie den Bedingungen im NVIDIA-Endbenutzer-Lizenzvertrag (mit NCCL-Ergänzung) für die NCCL-Bibliothek.
Databricks-Containerdienste in GPU-Compute
Wichtig
Dieses Feature befindet sich in der Public Preview.
Sie können Databricks-Containerdienste in Compute mit GPUs verwenden, um portable Deep Learning-Umgebungen mit angepassten Bibliotheken zu erstellen. Anweisungen finden Sie unter Anpassen von Containern mit dem Databricks-Containerdienst.
Um benutzerdefinierte Images für GPU-Compute zu erstellen, müssen Sie eine Standardlaufzeitversion anstelle der Databricks Runtime ML für GPU auswählen. Wenn Sie Eigenen Docker-Container verwenden auswählen, können Sie GPU-Compute mit einer Standardlaufzeitversion auswählen. Die benutzerdefinierten Images für GPU basieren auf den offiziellen CUDA-Containern, die sich von der Databricks Runtime ML für GPU unterscheiden.
Wenn Sie benutzerdefinierte Images für GPU-Compute erstellen, können Sie die NVIDIA-Treiberversion nicht ändern, weil sie mit der Treiberversion auf dem Hostcomputer übereinstimmen muss.
Der databricksruntime
von enthält Beispielbasisimages mit GPU-Funktion. Die Dockerfiles, die zum Generieren dieser Images verwendet werden, befinden sich in dem GitHub-Repository mit Beispielcontainern, das auch Details dazu enthält, was die Beispielbilder bereitstellen und wie sie angepasst werden können.