Megosztás a következőn keresztül:


GPU-kompatibilis számítás

Feljegyzés

Egyes GPU-kompatibilis példánytípusok a bétaverzióban találhatók, és a legördülő listában ilyenként vannak megjelölve, amikor kiválasztja az illesztőprogram- és feldolgozótípusokat a számítás létrehozása során.

Áttekintés

Az Azure Databricks grafikus feldolgozási egységek (GPU-k) segítségével támogatja a gyorsított számítást. Ez a cikk bemutatja, hogyan hozhat létre számítást GPU-kompatibilis példányokkal, és ismerteti az ezeken a példányokon telepített GPU-illesztőprogramokat és kódtárakat.

A GPU-kompatibilis számításokkal kapcsolatos mély tanulásról további információt a Mély tanulás című témakörben talál.

GPU-számítás létrehozása

A GPU-számítás létrehozása hasonló bármely számítás létrehozásához. Tartsa szem előtt a következőket:

  • A Databricks Runtime-verziónak GPU-kompatibilis verziónak kell lennie, például Runtime 13.3 LTS ML-nek (GPU, Scala 2.12.15, Spark 3.4.1).
  • A feldolgozótípusnak és az illesztőprogram-típusnak GPU-példánytípusoknak kell lennie.

Támogatott példánytípusok

Az Azure Databricks a következő példánytípusokat támogatja:

A támogatott GPU-példánytípusok és azok rendelkezésre állási régióinak naprakész listáját az Azure Databricks díjszabásában találja. Az Azure Databricks üzembe helyezésének egy támogatott régióban kell lennie a GPU-kompatibilis számítás elindításához.

GPU-ütemezés

A GPU-ütemezés nagy számú GPU-ban hatékonyan osztja el a Spark-feladatokat.

A Databricks Runtime támogatja az Apache Spark 3.0 GPU-kompatibilis ütemezését. Az Azure Databricks előre konfigurálja a GPU-számításhoz.

Feljegyzés

A GPU-ütemezés nincs engedélyezve az egycsomópontos számításban.

A felhasználó által definiált GPU-ütemezés csak a Databricks Runtime 7.1-hez és újabb verziókhoz érhető el. A Databricks Runtime korábbi verziói esetében a Databricks automatikusan konfigurálja a GPU-számítást, hogy csomópontonként legfeljebb egy futó feladat legyen. Így a feladat anélkül használhatja a csomópont összes GPU-jának használatát, hogy ütközésekbe ütközik más tevékenységekkel.

GPU-ütemezés az AI-hez és az ML-hez

spark.task.resource.gpu.amount A GPU-kompatibilis ütemezéshez kapcsolódó egyetlen Spark-konfiguráció, amelyet esetleg konfigurálni kell. Az alapértelmezett konfiguráció tevékenységenként egy GPU-t használ, ami jó alapkonfiguráció az elosztott következtetési számítási feladatokhoz és az elosztott betanításhoz, ha az összes GPU-csomópontot használja.

Az elosztott betanítás során felmerülő kommunikációs többletterhelés csökkentése érdekében a Databricks azt javasolja, hogy a számítási Spark-konfigurációban állítsa be spark.task.resource.gpu.amount a feldolgozó csomópontonkénti GPU-k számát. Ez csak egy Spark-feladatot hoz létre minden Spark-feldolgozóhoz, és az adott munkavégző csomópontban lévő összes GPU-t ugyanahhoz a tevékenységhez rendeli hozzá.

Az elosztott mélytanulási következtetés párhuzamosításának növeléséhez a törtértékeket állíthatja be spark.task.resource.gpu.amount , például 1/2, 1/3, 1/4, ... 1/N. Ez több Spark-tevékenységet hoz létre, mint a GPU-k, így több egyidejű tevékenység képes párhuzamosan kezelni a következtetési kérelmeket. Ha például a ( vagy 0.330.25) értékre 0.5van állítvaspark.task.resource.gpu.amount, akkor a rendelkezésre álló GPU-k fel lesznek osztva a tevékenységek számának dupla, háromszoros vagy négyszeresére.

GPU-indexek

PySpark-feladatok esetén az Azure Databricks automatikusan újraképezi a hozzárendelt GPU-kat nulla alapú indexekbe. Az alapértelmezett konfiguráció esetében, amely tevékenységenként egy GPU-t használ, az alapértelmezett GPU-t anélkül használhatja, hogy ellenőriznie kell, hogy melyik GPU van hozzárendelve a feladathoz. Ha tevékenységenként több GPU-t állít be, például 4, akkor a hozzárendelt GPU-k indexei mindig 0, 1, 2 és 3. Ha szüksége van a hozzárendelt GPU-k fizikai indexére, lekérheti őket a CUDA_VISIBLE_DEVICES környezeti változóból.

Ha Scala-t használ, a tevékenységhez TaskContext.resources().get("gpu")rendelt GPU-k indexeit innen szerezheti be.

NVIDIA GPU-illesztő, CUDA és cuDNN

Az Azure Databricks telepíti az NVIDIA-illesztőprogramot és a GPU-k Spark-illesztőprogramokon és feldolgozópéldányokon való használatához szükséges kódtárakat:

  • CUDA Toolkit, telepítve a /usr/local/cuda.
  • cuDNN: NVIDIA CUDA mély neurális hálózati könyvtár.
  • NCCL: NVIDIA Collective Communications Library.

A mellékelt NVIDIA-illesztő verziója az 535.54.03, amely támogatja a CUDA 11.0-t. Az NV A10 v5-ös példánytípus-sorozat esetében a mellékelt NVIDIA-illesztőprogram verziója.535.154.05

A kódtárak verzióit a használt Databricks Runtime-verzió kibocsátási megjegyzéseiben találhatja meg.

Feljegyzés

Ez a szoftver az NVIDIA Corporation által biztosított forráskódot tartalmazza. A GPU-k támogatásához az Azure Databricks cUDA-mintákból származó kódot tartalmaz.

NVIDIA végfelhasználói licencszerződés (EULA)

Amikor kiválaszt egy GPU-kompatibilis "Databricks Runtime-verziót" az Azure Databricksben, implicit módon elfogadja az NVIDIA EULA-ban a CUDA, a cuDNN és a Tesla kódtárak, valamint az NVIDIA végfelhasználói licencszerződését (NCCL-kiegészítéssel) az NCCL-kódtárhoz.

Databricks Container Services GPU-számításon

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

A Databricks Container Services gpu-kkal végzett számítással hordozható mélytanulási környezeteket hozhat létre testre szabott kódtárakkal. Útmutatásért tekintse meg a Tárolók testreszabása a Databricks Container Service szolgáltatással című témakört.

A GPU-számításhoz egyéni rendszerképek létrehozásához a GPU-hoz készült Databricks Runtime ML helyett egy standard futtatókörnyezeti verziót kell választania. Ha a Saját Docker-tároló használata lehetőséget választja, választhatja a GPU-számítást egy standard futtatókörnyezeti verzióval. A GPU egyéni rendszerképei a hivatalos CUDA-tárolókon alapulnak, ami eltér a GPU-hoz készült Databricks Runtime ML-től.

Amikor egyéni rendszerképeket hoz létre a GPU-számításhoz, nem módosíthatja az NVIDIA-illesztő verzióját, mert annak meg kell egyeznie a gazdagép illesztőprogram-verziójával.

A databricksruntime Docker Hub gpu-képességgel rendelkező minta alaprendszerképeket tartalmaz. A rendszerképek létrehozásához használt Dockerfile-fájlok a GitHub példatárolóiban találhatók, amelyek részletesen ismertetik, hogy a példaképek mit nyújtanak, és hogyan szabhatók testre.