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í ND A100 v4: Standard_ND96asr_v4
  • Řada typů instancí NV A10 v5: Standard_NV36ads_A10_v5, Standard_NV36adms_A10_v5, Standard_NV72ads_A10_v5
    • Standard_NV72ads_A10_v5 není kompatibilní s PyTorchem 2.0 nebo novějším a při spouštění úloh s více GPU vyvolá chybu CUDA. Vzhledem k tomu, že Databricks Runtime ML 14.0 a novější předinstaluje PyTorch 2.0+, doporučujeme použít Databricks Runtime ML 13.x nebo ručně spustit pip install torch==1.13.1 , pokud používáte PyTorch na úlohách s více GPU.

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

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.

Plánování GPU není na výpočetních prostředcích s jedním uzlem povolené.

spark.task.resource.gpu.amount je jediná konfigurace Sparku související s plánováním pracujícím s GPU, kterou možná budete muset změnit. Výchozí konfigurace používá jeden GPU na úlohu, která je ideální pro distribuované úlohy odvozování a distribuované trénování, pokud používáte všechny uzly GPU. Aby bylo možné provádět distribuované trénování na podmnožině uzlů, což pomáhá snížit komunikační režii 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.

V případě úloh PySpark Azure Databricks automaticky mapuje přiřazené GPU na indexy 0, 1, .... V rámci výchozí konfigurace, která používá jeden GPU na úlohu, může váš kód jednoduše použít výchozí GPU bez kontroly toho, který GPU je přiřazen k úkolu. Pokud nastavíte více GPU na úkol, například 4, kód může předpokládat, že 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").

V případě verzí Databricks Runtime nižších než 7.0 se vyhnete konfliktům mezi několika úlohami Sparku, které se pokoušejí použít stejný GPU, Azure Databricks automaticky nakonfiguruje výpočetní výkon GPU tak, aby na 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 úkoly.

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 525.105.17součá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 databricksruntimeHub 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.