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:
- NC-példány típussorozata: Standard_NC12, Standard_NC24
- NC v3-példánytípus-sorozat: Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3
- NC T4 v3-példánytípus-sorozat: Standard_NC4as_T4_v3, Standard_NC8as_T4_v3, Standard_NC16as_T4_v3, Standard_NC64as_T4_v3
- NC A100 v4-es példánytípus-sorozat: Standard_NC24ads_A100_v4, Standard_NC48ads_A100_v4, Standard_NC96ads_A100_v4
- ND A100 v4-példánytípus-sorozat: Standard_ND96asr_v4
- NV A10 v5-ös példánytípus-sorozat: Standard_NV36ads_A10_v5, Standard_NV36adms_A10_v5, Standard_NV72ads_A10_v5
- Standard_NV72ads_A10_v5 nem kompatibilis a PyTorch 2.0+-val, és CUDA-hibát okoz több GPU-alapú számítási feladatok futtatásakor. Mivel a Databricks Runtime ML 14.0-s vagy újabb verziója előre telepíti a PyTorch 2.0+-ot, javasoljuk, hogy a Databricks Runtime ML 13.x vagy manuálisan futtassa
pip install torch==1.13.1
a PyTorchot több GPU-s számítási feladatokon.
- Standard_NV72ads_A10_v5 nem kompatibilis a PyTorch 2.0+-val, és CUDA-hibát okoz több GPU-alapú számítási feladatok futtatásakor. Mivel a Databricks Runtime ML 14.0-s vagy újabb verziója előre telepíti a PyTorch 2.0+-ot, javasoljuk, hogy a Databricks Runtime ML 13.x vagy manuálisan futtassa
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 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.
A GPU-ütemezés nincs engedélyezve az egycsomópontos számításban.
spark.task.resource.gpu.amount
A GPU-kompatibilis ütemezéshez kapcsolódó egyetlen Spark-konfiguráció, amelyet esetleg módosítania kell.
Az alapértelmezett konfiguráció feladatonként egy GPU-t használ, amely ideális elosztott következtetési számítási feladatokhoz és elosztott betanításhoz, ha az összes GPU-csomópontot használja.
Ha elosztott betanítást szeretne végezni a csomópontok egy részhalmazán, amely segít csökkenteni a kommunikációs többletterhelést az elosztott betanítás során, 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.
PySpark-feladatok esetén az Azure Databricks automatikusan újraképezi a hozzárendelt GPU(ka)t a 0, 1, ....
Az alapértelmezett konfigurációban, amely tevékenységenként egy GPU-t használ, a kód egyszerűen használhatja az alapértelmezett GPU-t anélkül, hogy ellenőrizned kéne, hogy melyik GPU van hozzárendelve a feladathoz.
Ha tevékenységenként több GPU-t állít be( például 4), a kód feltételezheti, hogy 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.
A Databricks Runtime 7.0 alatti kiadásai esetén az Azure Databricks automatikusan úgy konfigurálja a GPU-számítást, hogy csomópontonként legfeljebb egy futó feladat legyen. Így a tevékenység anélkül használhatja a csomópont összes GPU-jának használatát, hogy ütközések ütköznek más tevékenységekkel.
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.525.105.17
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őprogram verzióját, mert annak meg kell egyeznie a gazdaszámítógé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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: