Rekenkracht met GPU

Notitie

Sommige instantietypen met GPU zijn in bèta en worden als zodanig gemarkeerd in de vervolgkeuzelijst wanneer u het stuurprogramma en de werkroltypen selecteert tijdens het maken van het rekenproces.

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

Azure Databricks ondersteunt de volgende exemplaartypen:

  • NC-exemplaartypereeks: Standard_NC12, Standard_NC24
  • NC v3-exemplaartypereeks: Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3
  • NC T4 v3-exemplaartypereeks: Standard_NC4as_T4_v3, Standard_NC8as_T4_v3, Standard_NC16as_T4_v3, Standard_NC64as_T4_v3
  • NC A100 v4-exemplaartypereeks: Standard_NC24ads_A100_v4, Standard_NC48ads_A100_v4, Standard_NC96ads_A100_v4
  • Typereeks ND A100 v4-exemplaar: Standard_ND96asr_v4
  • Type reeks type NV A10 v5-exemplaren: Standard_NV36ads_A10_v5, Standard_NV36adms_A10_v5, Standard_NV72ads_A10_v5
    • Standard_NV72ads_A10_v5 is niet compatibel met PyTorch 2.0+ en genereert een CUDA-fout bij het uitvoeren van workloads met meerdere GPU's. Omdat Databricks Runtime ML 14.0 en hoger PyTorch 2.0+ vooraf installeert, raden we u aan Om Databricks Runtime ML 13.x te gebruiken of handmatig uit te voeren pip install torch==1.13.1 als u PyTorch uitvoert op workloads met meerdere GPU's.

Zie prijzen voor Azure Databricks voor een actuele lijst 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

Databricks Runtime biedt ondersteuning voor GPU-compatibele planning van Apache Spark 3.0. Azure Databricks configureert deze vooraf op GPU-rekenkracht.

GPU-planning is niet ingeschakeld voor rekenkracht met één knooppunt.

spark.task.resource.gpu.amount is de enige Spark-configuratie die betrekking heeft op GPU-compatibele planning die u mogelijk moet wijzigen. De standaardconfiguratie maakt gebruik van één GPU per taak, wat ideaal is voor gedistribueerde deductieworkloads en gedistribueerde training als u alle GPU-knooppunten gebruikt. Om gedistribueerde training uit te voeren op een subset van knooppunten, wat helpt de communicatieoverhead tijdens gedistribueerde training te verminderen, raadt Databricks aan de instelling in te stellen spark.task.resource.gpu.amount op het aantal GPU's per werkknooppunt in de compute Spark-configuratie.

Voor PySpark-taken wijst Azure Databricks toegewezen GPU('s) automatisch opnieuw toe aan indexen 0, 1, .... Onder de standaardconfiguratie die één GPU per taak gebruikt, kan uw code gewoon de standaard GPU gebruiken zonder te controleren welke GPU aan de taak is toegewezen. Als u meerdere GPU's per taak instelt, bijvoorbeeld 4, kan uw code ervan uitgaan dat de indexen van de toegewezen GPU's altijd 0, 1, 2 en 3 zijn. Als u de fysieke indexen van de toegewezen GPU's nodig hebt, kunt u deze ophalen uit de CUDA_VISIBLE_DEVICES omgevingsvariabele.

Als u Scala gebruikt, kunt u de indexen ophalen van de GPU's die aan de taak TaskContext.resources().get("gpu")zijn toegewezen.

Voor Databricks Runtime-releases die lager zijn dan 7.0, om conflicten tussen meerdere Spark-taken te voorkomen die dezelfde GPU proberen te gebruiken, configureert Azure Databricks automatisch GPU-rekenkracht, zodat er maximaal één actieve taak per knooppunt is. Op die manier kan de taak alle GPU's op het knooppunt gebruiken zonder conflicten met andere taken te veroorzaken.

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 525.105.17de 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 in Azure Databricks Runtime-versie een GPU-versie selecteert, gaat u impliciet akkoord met de voorwaarden die worden beschreven in de NVIDIA-gebruiksrechtovereenkomst met betrekking tot de CUDA-, cuDNN- en Tesla-bibliotheken en de NVIDIA-gebruiksrechtovereenkomst (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 installatiekopieën voor GPU-rekenkracht wilt maken, moet u een standaardruntimeversie selecteren in plaats van Databricks Runtime ML voor GPU. Wanneer u Uw eigen Docker-container gebruiken 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 databricksruntimeDocker Hub bevat voorbeelden van basisinstallatiekopieën met GPU-functionaliteit. De Dockerfiles die worden gebruikt om deze installatiekopieën te genereren, bevinden zich in de GitHub-opslagplaats voor voorbeeldcontainers, die ook details bevatten over wat de voorbeeldinstallatiekopieën bieden en hoe u deze kunt aanpassen.