Dela via


GPU-aktiverad beräkning

Kommentar

Vissa GPU-aktiverade instanstyper finns i Beta- och markeras som sådana i listrutan list när du select drivrutins- och arbetstyperna när beräkning skapas.

Översikt

Azure Databricks stöder beräkningsaccelererad 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 kommer att avveckla och kommer inte längre att stödja uppstart av datorresurser med hjälp av NC v3-instanstypserier, 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

ND_H100_v5

  • GPU-typ: NVIDIA H100 Tensor Core GPU
Instansnamn Antal GPU:er GPU-minne vCPU:er CPU-minne
Standard_ND96isr_H100_v5 8 80 GB x 8 96 1900 GB

NC_A100_v4

  • GPU-typ: NVIDIA A100 PCIe GPU
Instansnamn Antal GPU:er GPU-minne vCPU:er 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 vCPU:er 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 for a up-to-date list of supported GPU instance types and their availability regions (Azure Databricks Pricing for a up-to-date list of supported GPU instance types and their availability regions(Azure Databricks Pricing for a up-to-date list of supported GPU instance types and their availability regions. 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 setspark.task.resource.gpu.amount till bråk values till exempel 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 setspark.task.resource.gpu.amount till 0.5, 0.33eller 0.25kommer de tillgängliga GPU:erna att delas upp för att hantera dubbelt, tredubbelt eller fyrdubbelt antal uppgifter.

GPU-index

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 set flera GPU:er per uppgift, 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 get dem från miljövariabeln CUDA_VISIBLE_DEVICES.

Om du använder Scala kan du get indexen för de 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 är 535.154.05den version av NVIDIA-drivrutinen som ingår .

De versioner av biblioteken som ingår finns i viktig information 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 select 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 End User License Agreement (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 select en standardversion av körningen i stället för Databricks Runtime ML för GPU. När du selectanvänder din egen Docker-containerkan du välja GPU-beräkningskapacitet med en standard runtime-version. 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 generate dessa avbildningar finns i exempelcontainrar GitHub-lagringsplatsen, som också innehåller information om vad exempelbilderna tillhandahåller och hur du anpassar dem.