Výpočetní prostředky s podporou GPU
Poznámka:
Některé typy instancí s podporou GPU jsou v beta verzi a jsou při vytváření výpočetních prostředků označené jako takové v rozevíracím seznamu.
Přehled
Azure Databricks podporuje akcelerované výpočetní prostředky pomocí grafických procesorů (GPU). Tento článek popisuje, jak vytvořit výpočetní prostředky s instancemi s podporou GPU a popisuje ovladače a knihovny GPU nainstalované v těchto instancích.
Další informace o hlubokém učení na výpočetních prostředcích s podporou GPU najdete v tématu Hluboké učení.
Vytvoření výpočetních prostředků GPU
Vytvoření výpočetního objektu GPU se podobá vytvoření libovolného výpočetního prostředí. Měli byste mít na paměti následující:
- Verze modulu Runtime Databricks musí být verze s podporou GPU, například Runtime 13.3 LTS ML (GPU, Scala 2.12.15, Spark 3.4.1).).
- Typ pracovního procesu a typ ovladače musí být typy instancí GPU.
Podporované typy instancí
Azure Databricks podporuje následující typy instancí:
- Řada typů instancí NC: Standard_NC12, Standard_NC24
- Řada typů instancí NC v3: Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3
- Řada typů instancí NC T4 v3: Standard_NC4as_T4_v3, Standard_NC8as_T4_v3, Standard_NC16as_T4_v3, Standard_NC64as_T4_v3
- Řada typů instancí NC A100 v4: Standard_NC24ads_A100_v4, Standard_NC48ads_A100_v4, Standard_NC96ads_A100_v4
- Řada typů instancí NCads H100 v5: Standard_NC40ads_H100_v5, Standard_NC80adis_H100_v5
- Řada typů instancí ND A100 v4: Standard_ND96asr_v4
- Řada typů instancí NV A10 v5: Standard_NV36ads_A10_v5, Standard_NV36adms_A10_v5, Standard_NV72ads_A10_v5
Aktuální seznam podporovaných typů instancí GPU a jejich oblastí dostupnosti najdete v tématu Ceny Azure Databricks. Vaše nasazení Azure Databricks se musí nacházet v podporované oblasti, aby bylo možné spouštět výpočetní prostředky s podporou GPU.
Plánování GPU
Plánování GPU efektivně distribuuje úlohy Sparku napříč velkým počtem GPU.
Databricks Runtime podporuje plánování s podporou GPU z Apache Sparku 3.0. Azure Databricks ho předem nakonfiguruje na výpočetních prostředcích GPU.
Poznámka:
Plánování GPU není na výpočetních prostředcích s jedním uzlem povolené.
Plánování GPU definované uživatelem je k dispozici pouze pro Databricks Runtime 7.1 a vyšší. V předchozích verzích Databricks Runtime databricks automaticky konfiguruje výpočetní výkon GPU tak, aby na každém uzlu běžel maximálně jeden spuštěný úkol. Tímto způsobem může úloha používat všechny GPU na uzlu, aniž by došlo ke konfliktům s jinými úlohami.
Plánování GPU pro AI a ML
spark.task.resource.gpu.amount
je jediná konfigurace Sparku související s plánováním podporujícím GPU, kterou možná budete muset nakonfigurovat.
Výchozí konfigurace používá jeden GPU na úlohu, což je vhodný směrný plán pro distribuované úlohy odvozování a distribuované trénování, pokud používáte všechny uzly GPU.
Kvůli snížení komunikační režie během distribuovaného trénování doporučuje Databricks nastavit spark.task.resource.gpu.amount
počet GPU na pracovní uzel ve výpočetní konfiguraci Sparku. Tím se vytvoří pouze jeden úkol Sparku pro každý pracovní proces Sparku a přiřadí se všechny GPU v tomto pracovním uzlu ke stejné úloze.
Pokud chcete zvýšit paralelizaci pro distribuované odvozování hlubokého učení, můžete nastavit spark.task.resource.gpu.amount
zlomkové hodnoty, jako jsou 1/2, 1/3, 1/4, ... 1/N. Tím se vytvoří více úloh Sparku, než jsou gpu, což umožňuje více souběžných úloh zpracovávat žádosti o odvozování paralelně. Pokud například nastavíte hodnotu spark.task.resource.gpu.amount
0.5
, 0.33
nebo 0.25
, budou dostupné GPU rozděleny mezi dvojité, trojité nebo čtyřnásobné počet úkolů.
Indexy GPU
V případě úloh PySpark Azure Databricks automaticky mapuje přiřazené GPU na indexy založené na nule. Pro výchozí konfiguraci, která používá jeden GPU na úlohu, můžete použít výchozí GPU bez kontroly, který GPU je přiřazen k úkolu.
Pokud nastavíte více GPU na úkol, například 4, indexy přiřazených GPU jsou vždy 0, 1, 2 a 3. Pokud potřebujete fyzické indexy přiřazených gpu, můžete je získat z CUDA_VISIBLE_DEVICES
proměnné prostředí.
Pokud používáte Scala, můžete získat indexy grafických procesorů přiřazených k úkolu z TaskContext.resources().get("gpu")
.
Ovladač NVIDIA GPU, CUDA a cuDNN
Azure Databricks nainstaluje ovladač a knihovny NVIDIA potřebné k používání grafických procesorů na ovladači Sparku a instancích pracovních procesů:
- CUDA Toolkit, nainstalovaný v části
/usr/local/cuda
. - cuDNN: NVIDIA CUDA Deep Neural Network Library.
- NCCL: NVIDIA Collective Communications Library.
Verze ovladače NVIDIA je 535.54.03, která podporuje CUDA 11.0. Pro řadu instancí NV A10 v5 je 535.154.05
součástí verze ovladače NVIDIA .
Informace o verzích zahrnutých knihoven najdete v poznámkách k verzi konkrétní verze Databricks Runtime, kterou používáte.
Poznámka:
Tento software obsahuje zdrojový kód poskytovaný společností NVIDIA Corporation. Konkrétně pro podporu GPU zahrnuje Azure Databricks kód z ukázek CUDA.
Licenční smlouva s koncovým uživatelem NVIDIA (EULA)
Když v Azure Databricks Vyberete verzi modulu runtime Databricks s podporou GPU, implicitně souhlasíte s podmínkami a ujednáními uvedenými ve smlouvě NVIDIA EULA s ohledem na knihovny CUDA, cuDNN a Tesla a licenční smlouvy NVIDIA End User License Agreement (s dodatkem NCCL) pro knihovnu NCCL.
Databricks Container Services na výpočetních prostředcích GPU
Důležité
Tato funkce je ve verzi Public Preview.
Pomocí služby Databricks Container Services na výpočetních prostředcích s grafickými procesory můžete vytvářet přenosná prostředí hlubokého učení s přizpůsobenými knihovnami. Pokyny najdete v tématu Přizpůsobení kontejnerů pomocí služby Databricks Container Service .
Pokud chcete vytvořit vlastní image pro výpočetní prostředky GPU, musíte místo Databricks Runtime ML pro GPU vybrat standardní verzi modulu runtime. Když vyberete Možnost Použít vlastní kontejner Dockeru, můžete zvolit výpočetní prostředí GPU se standardní verzí modulu runtime. Vlastní image pro GPU jsou založené na oficiálních kontejnerech CUDA, které se liší od Databricks Runtime ML pro GPU.
Při vytváření vlastních imagí pro výpočetní výkon GPU nemůžete změnit verzi ovladače NVIDIA, protože se musí shodovat s verzí ovladače na hostitelském počítači.
Docker databricksruntime
Hub obsahuje ukázkové základní image s funkcí GPU. Soubory Dockerfile použité k vygenerování těchto imagí se nacházejí v ukázkovém úložišti GitHubu kontejnerů, kde najdete také podrobnosti o tom, jaké ukázkové image poskytují a jak je přizpůsobit.