Rekenkracht met GPU
Notitie
Sommige instance-typen met GPU-functionaliteit bevinden zich in Beta en worden als zodanig gemarkeerd in de vervolgkeuzelijst wanneer u het stuurprogramma en werkroltypen selecteert tijdens het aanmaken van de rekenomgeving.
Overzicht
Azure Databricks ondersteunt versnelde berekeningen met GPU's (Graphics Processing Units). In dit artikel wordt beschreven hoe u rekenkracht maakt met instanties met GPU en hoe u de GPU-stuurprogramma's en bibliotheken beschrijft die op deze exemplaren zijn geïnstalleerd.
Zie Deep Learning voor meer informatie over deep learning op gpu-rekenkracht.
Een GPU-rekenproces maken
Het maken van een GPU-rekenproces is vergelijkbaar met het maken van elke rekenkracht. Houd rekening met het volgende:
- De Databricks Runtime-versie moet een gpu-versie zijn, zoals Runtime 13.3 LTS ML (GPU, Scala 2.12.15, Spark 3.4.1).
- Het werkroltype en het stuurprogrammatype moeten GPU-exemplaartypen zijn.
Ondersteunde exemplaartypen
Waarschuwing
Azure Databricks ondersteunt niet langer het opstarten van rekenkracht met behulp van de NC v3-instance-type-reeks, aangezien Azure de ondersteuning voor NC24rs vanaf 31 maart 2025 en voor NC6s_v3, NC12s_v3 en NC24s_v3 tegen 30 september 2025beëindigt.
Azure Databricks ondersteunt de volgende exemplaartypen:
NCads_H100_v5
- GPU-type: NVIDIA H100 NVL GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
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-type: NVIDIA H100 Tensor Core GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
Standard_ND96isr_H100_v5 | 8 | 80 GB x 8 | 96 | 1900GB |
NC_A100_v4
- GPU-type: NVIDIA A100 PCIe GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
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-type: NVIDIA Ampere A100 40 GB Tensor Core GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
Standard_ND96asr_v4 | 8 | 40 GB x 8 | 96 | 900 GB |
NVadsA10_v5
- GPU-type: NVIDIA A10 GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
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-type: NVIDIA T4 GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
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-type: NVIDIA Tesla V100 GPU
Instantienaam | Aantal GPU's | GPU-geheugen | vCPU's | CPU-geheugen |
---|---|---|---|---|
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 |
Zie Prijzen van Azure Databricks voor een up-to-datumlijst met ondersteunde GPU-exemplaartypen en hun beschikbaarheidsregio's. Uw Azure Databricks-implementatie moet zich in een ondersteunde regio bevinden om rekenkracht met GPU te starten.
GPU-planning
GPU-planning verdeelt Spark-taken efficiënt over een groot aantal GPU's.
Databricks Runtime biedt ondersteuning voor GPU-compatibele planning van Apache Spark 3.0. Azure Databricks configureert deze vooraf op GPU-rekenkracht.
Notitie
GPU-planning is niet ingeschakeld voor rekenkracht met één knooppunt.
GPU-planning voor AI en ML
spark.task.resource.gpu.amount
is de enige Spark-configuratie die betrekking heeft op GPU-compatibele planning die u mogelijk moet configureren.
Voor de standaardconfiguratie wordt één GPU per taak gebruikt. Dit is een goede basislijn voor gedistribueerde deductieworkloads en gedistribueerde training als u alle GPU-knooppunten gebruikt.
Om de communicatieoverhead tijdens gedistribueerde training te verminderen, raadt Databricks aan om het aantal GPU's per werkknooppunt in de compute spark.task.resource.gpu.amount
in te stellen. Hiermee maakt u slechts één Spark-taak voor elke Spark-werkrol en wijst u alle GPU's in dat werkknooppunt toe aan dezelfde taak.
Als u de parallellisatie voor gedistribueerde deep learning-deductie wilt verhogen, kunt u spark.task.resource.gpu.amount
instellen op breukwaarden zoals 1/2, 1/3, 1/4, ... 1/N. Hierdoor worden meer Spark-taken gemaakt dan er GPU's zijn, zodat meer gelijktijdige taken deductieaanvragen parallel kunnen verwerken. Als u bijvoorbeeld spark.task.resource.gpu.amount
instelt op 0.5
, 0.33
of 0.25
, worden de beschikbare GPU's verdeeld over een tweevoudig, drievoudig of viervoudig aantal taken.
GPU-indexen
Voor PySpark-taken wijst Azure Databricks toegewezen GPU('s) automatisch opnieuw toe aan indexen op basis van nul. Voor de standaardconfiguratie die één GPU per taak gebruikt, kunt u de standaard-GPU gebruiken zonder te controleren welke GPU aan de taak is toegewezen.
Als u meerdere GPU's per taak instelt, bijvoorbeeld 4, zijn de indexen van de toegewezen GPU's altijd 0, 1, 2 en 3. Als u de fysieke indexen van de toegewezen GPU's nodig hebt, kunt u deze ophalen uit de omgevingsvariabele CUDA_VISIBLE_DEVICES
.
Als u Scala gebruikt, kunt u de indexen ophalen van de GPU's die aan de taak zijn toegewezen vanuit TaskContext.resources().get("gpu")
.
NVIDIA GPU-stuurprogramma, CUDA en cuDNN
Azure Databricks installeert het NVIDIA-stuurprogramma en de bibliotheken die zijn vereist voor het gebruik van GPU's op Spark-stuurprogramma's en werkrolexemplaren:
-
CUDA Toolkit, geïnstalleerd onder
/usr/local/cuda
. - cuDNN: NVIDIA CUDA Deep Neural Network Library.
- NCCL: NVIDIA Collective Communications Library.
De versie van het NVIDIA-stuurprogramma is 535.54.03, die CUDA 11.0 ondersteunt. Voor de NV A10 v5-exemplaartypereeks is 535.154.05
de versie van het NVIDIA-stuurprogramma opgenomen.
Zie de releaseopmerkingen voor de specifieke Databricks Runtime-versie die u gebruikt voor de versies van de bibliotheken die u gebruikt.
Notitie
Deze software bevat broncode die wordt geleverd door NVIDIA Corporation. Om GPU's te ondersteunen, bevat Azure Databricks code uit CUDA-voorbeelden.
NVIDIA-gebruiksrechtovereenkomst (EULA)
Wanneer u een GPU-compatibele "Databricks Runtime-versie" selecteert in Azure Databricks, gaat u impliciet akkoord met de voorwaarden en condities zoals uiteengezet in de NVIDIA-gebruiksrechtovereenkomst met betrekking tot de CUDA-, cuDNN- en Tesla-bibliotheken en de NVIDIA Eindgebruikerslicentieovereenkomst (met NCCL-supplement) voor de NCCL-bibliotheek.
Databricks Container Services op GPU-rekenkracht
Belangrijk
Deze functie is beschikbaar als openbare preview.
U kunt Databricks Container Services gebruiken voor berekening met GPU's om draagbare Deep Learning-omgevingen te maken met aangepaste bibliotheken. Zie Containers aanpassen met Databricks Container Service voor instructies.
Als u aangepaste afbeeldingen voor GPU-berekeningen wilt maken, moet u een standaardruntimeversie selecteren in plaats van Databricks Runtime ML voor GPU. Wanneer u Uw eigen Docker-containergebruiken selecteert, kunt u GPU-rekenkracht kiezen met een standaardruntimeversie. De aangepaste installatiekopieën voor GPU zijn gebaseerd op de officiële CUDA-containers, die afwijken van Databricks Runtime ML voor GPU.
Wanneer u aangepaste installatiekopieën voor GPU-rekenkracht maakt, kunt u de versie van het NVIDIA-stuurprogramma niet wijzigen omdat deze moet overeenkomen met de stuurprogrammaversie op de hostcomputer.
De databricksruntime
Docker Hub bevat voorbeelden van basisinstallatiekopieën met GPU-functionaliteit. De Dockerfiles die worden gebruikt om deze installatiekopieën te genereren, bevinden zich in de voorbeeldcontainers van GitHub, die ook details bevat over wat de voorbeeldinstallatiekopieën bieden en hoe ze kunnen worden aangepast.