GPU-aktiverade kluster

Anteckning

Vissa GPU-aktiverade instans typer är i beta och markeras som sådana i list rutan när du väljer driv rutins-och arbets typ när klustret skapas.

Översikt

Azure Databricks stöder kluster accelererade med GPU: er (Graphics Processing Unit). Den här artikeln beskriver hur du skapar kluster med GPU-aktiverade instanser och beskriver de GPU-drivrutiner och-bibliotek som är installerade på dessa instanser.

Mer information om djup inlärning på GPU-aktiverade kluster finns i djup inlärning.

Skapa ett GPU-kluster

Att skapa ett GPU-kluster liknar att skapa alla Spark-kluster (se kluster). Tänk på följande:

  • Den Databricks runtime versionen måste vara en GPU-aktiverad version, till exempel runtime 6,6 ml (GPU, Scala 2,11, Spark 2.4.5).
  • Typ av arbets typ och driv rutins typ måste vara GPU-instanser.
  • För arbets flöden med en dator utan Spark kan du ange antalet arbetare som noll.

Azure Databricks stöder NC-instansens typ serie: för NC12 och NC24 och NCv3 instans typ serien: NC6s_v3, NC12s_v3 och NC24s_v3. Se Azure Databricks priser för en uppdaterad lista över typer av GPU-instanser som stöds och deras tillgänglighets regioner. Din Azure Databricks-distribution måste finnas i en region som stöds för att starta GPU-aktiverade kluster.

GPU-schemaläggning

Databricks Runtime 7,0 ML och senare stöder GPU-medveten schemaläggning från Apache Spark 3,0. Azure Databricks förkonfigureras i GPU-kluster åt dig.

spark.task.resource.gpu.amount är den enda Spark-konfigurationen som är relaterad till GPU-medveten schemaläggning som du kan behöva ändra. Standard konfigurationen använder en GPU per aktivitet, vilket är perfekt för distribuerade härlednings arbets belastningar och distribuerad utbildning, om du använder alla GPU-noder. Om du vill göra en distribuerad utbildning på en delmängd av noder, vilket bidrar till att minska kommunikations kostnaderna under den distribuerade utbildningen, rekommenderar Databricks spark.task.resource.gpu.amount att du ställer in på antalet GPU per arbets nod i klustret Spark-konfigurationen.

Azure Databricks mappar automatiskt om tilldelade GPU: er till indexen 0, 1, för PySpark uppgifter. Under standard konfigurationen som använder en GPU per aktivitet, kan din kod bara använda standard-GPU utan att kontrol lera vilken GPU som är tilldelad till aktiviteten. Om du anger flera GPU: er per uppgift, till exempel 4, kan din kod anta att indexen för de tilldelade GPU: erna alltid är 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 index för de GPU: er som tilldelats uppgiften från TaskContext.resources().get("gpu") .

För att undvika konflikter mellan flera Spark-uppgifter som försöker använda samma GPU, i Databricks Runtime versioner under 7,0, konfigurerar Azure Databricks automatiskt GPU-kluster, så att det finns högst en aktivitet som körs per nod. I det här fallet kan aktiviteten använda alla GPU: er på noden utan att det går att köra konflikter med andra aktiviteter.

NVidia GPU-drivrutin, CUDA och cuDNN

Azure Databricks installerar den NVIDIA-drivrutin och de bibliotek som krävs för att använda GPU: er på Spark-drivrutinen och arbets instanser:

  • CUDA Toolkitinstallerat under /usr/local/cuda .
  • cuDNN: nätverks bibliotek med NVIDIA CUDA djup neurala.
  • NCCL: ett NVIDIA-bibliotek för samlings kommunikation.

Den version av NVIDIA-drivrutinen som ingår är 440,64. De versioner av biblioteken som ingår finns i versions anteckningar för den aktuella Databricks runtime-versionen som du använder.

Anteckning

Den här program varan innehåller käll koden från NVIDIA Corporation. För att stödja GPU: er Azure Databricks innehåller kod från CUDA-exempel.

NVIDIA slut användar licens avtal (EULA)

När du väljer en GPU-aktiverad "Databricks Runtime version" i Azure Databricks, samtycker du implicit med de villkor som beskrivs i NVIDIA-licensavtalet med avseende på CUDA-, cuDNN-och Tesla-biblioteken, och NVIDIA- slutanvändarens licens avtal (med NCCL-tillägget) för NCCL-biblioteket.

Databricks-containertjänster på GPU-kluster

Viktigt

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Du kan använda Databricks Container Services på kluster med GPU: er för att skapa bärbara djup inlärnings miljöer med anpassade bibliotek. Mer information hittar du i Anpassa behållare med Databricks Container Services .

Databricks Runtime Docker-hubben innehåller exempel bas avbildningar med GPU-funktioner. Dockerfiles som används för att generera dessa avbildningar finns i exempel behållare GitHub-lagringsplatsen, som också innehåller information om vad exempel avbildningarna ger och hur du anpassar dem.

När du skapar anpassade avbildningar för GPU-kluster kan du inte ändra versionen för NVIDIA-drivrutinen. Versionen av NVIDIA-drivrutinen måste matcha driv rutins versionen på värddatorn, som är 440,64. Den här versionen stöder inte CUDA 11.