Freigeben über


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.05die 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.