GPU-aktiverad beräkning
Kommentar
Vissa GPU-aktiverade instanstyper finns i Beta- och markeras som sådana i listrutan när du väljer drivrutins- och arbetstyperna när beräkning skapas.
Översikt
Azure Databricks stöder beräkningar som accelereras med grafikprocessorer (GPU:er). Den här artikeln beskriver hur du skapar beräkning med GPU-aktiverade instanser och beskriver de GPU-drivrutiner och bibliotek som är installerade på dessa instanser.
Mer information om djupinlärning om GPU-aktiverad beräkning finns i Djupinlärning.
Skapa en GPU-beräkning
Att skapa en GPU-beräkning liknar att skapa en beräkning. Tänk på följande:
- Databricks Runtime-versionen måste vara en GPU-aktiverad version, till exempel Runtime 13.3 LTS ML (GPU, Scala 2.12.15, Spark 3.4.1).
- Arbetstyp och drivrutinstyp måste vara GPU-instanstyper.
Instanstyper som stöds
Varning
Azure Databricks avvecklar stödet för att starta datorresurser med hjälp av NC v3-instanstyper, eftersom Azure avvecklar Nc24rs senast den 31 mars 2025 och instanstyperna NC6s_v3, NC12s_v3 och NC24s_v3 senast den 30 september 2025.
Azure Databricks stöder följande instanstyper:
NCads_H100_v5
- GPU-typ: NVIDIA H100 NVL GPU
Instansnamn | Antal GPU:er | GPU-minne | vCPU:er | CPU-minne |
---|---|---|---|---|
Standard_NC40ads_H100_v5 | 1 | 94 GB | 40 | 320 GB |
Standard_NC80adis_H100_v5 | 2 | 94 GB x 2 | 80 | 640 GB |
NC_A100_v4
- GPU-typ: NVIDIA A100 PCIe GPU
Instansnamn | Antal GPU:er | GPU-minne | vCPUs | CPU-minne |
---|---|---|---|---|
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 40GB Tensor Core GPU
Instansnamn | Antal GPU:er | GPU-minne | vCPU(er) | CPU-minne |
---|---|---|---|---|
Standard_ND96asr_v4 | 8 | 40 GB x 8 | 96 | 900 GB |
NVadsA10_v5
- GPU-typ: NVIDIA A10 GPU
Instansnamn | Antal GPU:er | GPU-minne | vCPUs | CPU-minne |
---|---|---|---|---|
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
Instansnamn | Antal GPU:er | GPU-minne | vCPU:er | CPU-minne |
---|---|---|---|---|
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
Instansnamn | Antal GPU:er | GPU-minne | vCPU:er | CPU-minne |
---|---|---|---|---|
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 |
Se Azure Databricks Pricing för en up-to-date-lista över GPU-instanstyper som stöds och deras tillgänglighetsregioner. Azure Databricks-distributionen måste finnas i en region som stöds för att starta GPU-aktiverad beräkning.
GPU-schemaläggning
GPU-schemaläggning distribuerar Spark-uppgifter effektivt över ett stort antal GPU:er.
Databricks Runtime stöder GPU-medveten schemaläggning från Apache Spark 3.0. Azure Databricks förkonfigurerar det på GPU-beräkning.
Kommentar
GPU-schemaläggning är inte aktiverat vid beräkning med en nod.
GPU-schemaläggning för AI och ML
spark.task.resource.gpu.amount
är den enda Spark-konfigurationen som är relaterad till GPU-medveten schemaläggning som du kan behöva konfigurera.
Standardkonfigurationen använder en GPU per uppgift, vilket är en bra baslinje för distribuerade slutsatsdragningsarbetsbelastningar och distribuerad träning om du använder alla GPU-noder.
För att minska kommunikationskostnaderna under distribuerad träning rekommenderar Databricks att du anger spark.task.resource.gpu.amount
antalet GPU:er per arbetsnod i spark-konfigurationen för beräkning. Detta skapar bara en Spark-uppgift för varje Spark-arbetare och tilldelar alla GPU:er i den arbetsnoden till samma uppgift.
Om du vill öka parallelliseringen för distribuerad djupinlärning kan du ange spark.task.resource.gpu.amount
till bråkvärden som 1/2, 1/3, 1/4, ... 1/N. Detta skapar fler Spark-uppgifter än det finns GPU:er, vilket gör att fler samtidiga uppgifter kan hantera slutsatsdragningsbegäranden parallellt. Om du till exempel anger spark.task.resource.gpu.amount
till 0.5
, 0.33
eller 0.25
delas de tillgängliga GPU:erna mellan dubbla, tredubbla eller fyrdubbla antalet aktiviteter.
GPU-indexer
För PySpark-uppgifter mappas Azure Databricks automatiskt om tilldelade GPU:er till nollbaserade index. För standardkonfigurationen som använder en GPU per aktivitet kan du använda standard-GPU:n utan att kontrollera vilken GPU som har tilldelats uppgiften.
Om du anger flera GPU:er per aktivitet, till exempel 4, är indexen för de tilldelade GPU:erna alltid 0, 1, 2 och 3. Om du behöver de fysiska indexen för de tilldelade GPU:erna kan du hämta dem från CUDA_VISIBLE_DEVICES
miljövariabeln.
Om du använder Scala kan du hämta indexen för GPU:er som tilldelats uppgiften från TaskContext.resources().get("gpu")
.
NVIDIA GPU-drivrutin, CUDA och cuDNN
Azure Databricks installerar NVIDIA-drivrutinen och biblioteken som krävs för att använda GPU:er på Spark-drivrutins- och arbetsinstanser:
-
CUDA Toolkit, installerat under
/usr/local/cuda
. - cuDNN: NVIDIA CUDA Deep Neural Network Library.
- NCCL: NVIDIA Collective Communications Library.
Den version av NVIDIA-drivrutinen som ingår är 535.54.03, som stöder CUDA 11.0.
För NV A10 v5-instanstypserien ingår version 535.154.05
av NVIDIA-drivrutinen.
De versioner av biblioteken som ingår finns i versionsanteckningarna för den specifika Databricks Runtime-version som du använder.
Kommentar
Den här programvaran innehåller källkod från NVIDIA Corporation. För att stödja GPU:er innehåller Azure Databricks kod från CUDA-exempel.
NVIDIA-licensavtal för slutanvändare (EULA)
När du väljer en GPU-aktiverad "Databricks Runtime-version" i Azure Databricks godkänner du implicit de villkor som beskrivs i NVIDIA EULA med avseende på biblioteken CUDA, cuDNN och Tesla samt NVIDIA-licensavtal (med NCCL-tillägg) för NCCL-biblioteket.
Databricks Container Services på GPU-beräkning
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Du kan använda Databricks Container Services vid beräkning med GPU:er för att skapa portabla djupinlärningsmiljöer med anpassade bibliotek. Anvisningar finns i Anpassa containrar med Databricks Container Service .
Om du vill skapa anpassade avbildningar för GPU-beräkning måste du välja en standardkörningsversion i stället för Databricks Runtime ML för GPU. När du väljer Använd din egen Docker-containerkan du välja GPU-beräkning med en standardversion av körningen. De anpassade avbildningarna för GPU baseras på de officiella CUDA-containrarna, som skiljer sig från Databricks Runtime ML för GPU.
När du skapar anpassade avbildningar för GPU-beräkning kan du inte ändra NVIDIA-drivrutinsversionen eftersom den måste matcha drivrutinsversionen på värddatorn.
databricksruntime
Docker Hub innehåller exempelbasavbildningar med GPU-kapacitet. Dockerfiles som används för att generera dessa avbildningar finns i GitHub-lagringsplatsen för exempelcontainrar , som också innehåller information om vad exempelbilderna erbjuder och hur de kan anpassas.