Obliczenia z obsługą procesora GPU
Uwaga
Niektóre typy wystąpień z obsługą procesora GPU znajdują się w beta i są oznaczone jako takie na liście rozwijanej po wybraniu sterownika i typów procesów roboczych podczas tworzenia obliczeń.
Omówienie
Usługa Azure Databricks obsługuje przyspieszone obliczenia przy użyciu procesorów graficznych (GPU). W tym artykule opisano sposób tworzenia obliczeń przy użyciu wystąpień z obsługą procesora GPU oraz opisano sterowniki i biblioteki procesora GPU zainstalowane w tych wystąpieniach.
Aby dowiedzieć się więcej na temat uczenia głębokiego na obliczeniach z obsługą procesora GPU, zobacz Uczenie głębokie.
Utwórz obliczenia na GPU
Tworzenie obliczeń procesora GPU jest podobne do tworzenia dowolnych obliczeń. Należy pamiętać o następujących kwestiach:
- Wersja środowiska uruchomieniowego usługi Databricks musi być wersją z obsługą procesora GPU, taką jak Runtime 13.3 LTS ML (GPU, Scala 2.12.15, Spark 3.4.1).
- Typ procesu roboczego i typ sterownika muszą być typami wystąpień procesora GPU.
Obsługiwane typy wystąpień
Ostrzeżenie
Usługa Azure Databricks przestaje wspierać uruchamianie zasobów obliczeniowych przy użyciu serii wystąpień NC v3, ponieważ platforma Azure planuje wycofanie instancji Nc24rs do 31 marca 2025 r. i NC6s_v3, NC12s_v3 oraz NC24s_v3 do 30 września 2025 r..
Usługa Azure Databricks obsługuje następujące typy wystąpień:
NCads_H100_v5
- Typ GPU: NVIDIA H100 NVL
Nazwa wystąpienia | Liczba procesorów GPU | Pamięć procesora GPU | Procesory wirtualne (vCPU) | Pamięć procesora CPU |
---|---|---|---|---|
Standard_NC40ads_H100_v5 | 1 | 94 GB | 40 | 320 GB |
Standard_NC80adis_H100_v5 | 2 | 94 GB x 2 | 80 | 640 GB |
NC_A100_v4
- Typ GPU: NVIDIA A100 PCIe
Nazwa wystąpienia | Liczba procesorów GPU | Pamięć procesora GPU | Procesory wirtualne (vCPU) | Pamięć procesora CPU |
---|---|---|---|---|
Standard_NC24ads_A100_v4 | 1 | 80 GB | 24 | 220 GB |
Standard_NC48ads_A100_v4 | 1 | 80 GB x 2 | 48 | 440 GB |
Standard_NC96ads_A100_v4 | 1 | 80 GB x 4 | 96 | 880 GB |
NDasrA100_v4
- Typ GPU: NVIDIA Ampere A100 40 GB Tensor Core GPU
Nazwa wystąpienia | Liczba procesorów GPU | Pamięć procesora GPU | Procesory wirtualne (vCPU) | Pamięć procesora CPU |
---|---|---|---|---|
Standard_ND96asr_v4 | 8 | 40 GB x 8 | 96 | 900 GB |
NVadsA10_v5
- Typ GPU: NVIDIA A10 GPU
Nazwa wystąpienia | Liczba procesorów GPU | Pamięć procesora GPU | Procesory wirtualne (vCPU) | Pamięć procesora CPU |
---|---|---|---|---|
Standard_NV36ads_A10_v5 | 1 | 24 GB | 36 | 440 GB |
Standard_NV36adms_A10_v5 | 1 | 24 GB | 36 | 880 GB |
Standard_NV72ads_A10_v5 | 2 | 24 GB x 2 | 72 | 880 GB |
NCasT4_v3
- Typ GPU: NVIDIA T4
Nazwa wystąpienia | Liczba procesorów GPU | Pamięć procesora GPU | Procesory wirtualne (vCPU) | Pamięć procesora CPU |
---|---|---|---|---|
Standard_NC4as_T4_v3 | 1 | 16 GB | 4 | 28 GB |
Standard_NC8as_T4_v3 | 1 | 16 GB | 8 | 56 GB |
Standard_NC16as_T4_v3 | 1 | 16 GB | 16 | 110 GB |
Standard_NC64as_T4_v3 | 4 | 16 GB x 4 | 64 | 440 GB |
NC_v3
- Typ procesora GPU: NVIDIA Tesla V100 GPU
Nazwa wystąpienia | Liczba procesorów GPU | Pamięć procesora GPU | Procesory wirtualne (vCPU) | Pamięć procesora CPU |
---|---|---|---|---|
Standard_NC6s_v3 | 1 | 16 GB | 6 | 112 GB |
Standard_NC12s_v3 | 2 | 16 GB x 2 | 12 | 224 GB |
Standard_NC24s_v3 | 4 | 16 GB x 4 | 24 | 448 GB |
Standard_NC24rs_v3 | 4 | 16 GB x 4 | 24 | 448 GB |
Zobacz Cennik usługi Azure Databricks, aby zapoznać się z aktualną listą obsługiwanych typów wystąpień GPU i ich regionów dostępności. Wdrożenie usługi Azure Databricks musi znajdować się w obsługiwanym regionie w celu uruchomienia obliczeń z obsługą procesora GPU.
Planowanie harmonogramu GPU
Planowanie GPU efektywnie rozmieszcza zadania Spark na dużą liczbę GPU.
Środowisko Databricks Runtime obsługuje planowanie świadome GPU od Apache Spark 3.0. Usługa Azure Databricks wstępnie konfiguruje go na obliczeniach GPU.
Uwaga
Planowanie GPU nie jest aktywne na komputerze jednowęzłowym.
Planowanie procesora GPU dla sztucznej inteligencji i uczenia maszynowego
spark.task.resource.gpu.amount
to jedyna konfiguracja platformy Spark związana z planowaniem przeznaczonym dla procesorów GPU, które może być konieczne do konfiguracji.
Domyślna konfiguracja używa jednego procesora GPU na zadanie, co jest dobrym punktem odniesienia dla obciążeń wnioskowania rozproszonego i trenowania rozproszonego, jeśli używasz wszystkich węzłów procesora GPU.
Aby zmniejszyć obciążenie komunikacji podczas trenowania rozproszonego, usługa Databricks zaleca ustawienie spark.task.resource.gpu.amount
liczby procesorów GPU na węzeł procesu roboczego w konfiguracji obliczeniowej platformy Spark. Spowoduje to utworzenie tylko jednego zadania platformy Spark dla każdego procesu roboczego platformy Spark i przypisanie wszystkich procesorów GPU w tym węźle roboczym do tego samego zadania.
Aby zwiększyć równoległość w przypadku wnioskowania rozproszonego uczenia głębokiego, można ustawić spark.task.resource.gpu.amount
na wartości ułamkowe, takie jak 1/2, 1/3, 1/4, ... 1/N. Spowoduje to utworzenie większej liczby zadań platformy Spark niż liczba procesorów GPU, co umożliwia wykonywanie większej liczby współbieżnych zadań w celu równoległej obsługi żądań wnioskowania. Jeśli na przykład ustawisz spark.task.resource.gpu.amount
na 0.5
, 0.33
lub 0.25
, dostępne jednostki GPU zostaną podzielone między podwójną, potrójną lub czterokrotnie większą liczbę zadań.
Indeksy procesora GPU
W przypadku zadań PySpark usługa Azure Databricks automatycznie ponownie mapuje przypisane procesory GPU do indeksów opartych na zera. W przypadku domyślnej konfiguracji, która używa jednego procesora GPU na zadanie, można użyć domyślnego procesora GPU bez sprawdzania, który procesor GPU jest przypisany do zadania.
Jeśli ustawisz wiele procesorów GPU na zadanie, na przykład 4, indeksy przypisanych procesorów GPU są zawsze 0, 1, 2 i 3. Jeśli potrzebujesz fizycznych indeksów przypisanych procesorów GPU, możesz je pobrać ze zmiennej środowiskowej CUDA_VISIBLE_DEVICES
.
Jeśli używasz języka Scala, możesz pobrać indeksy procesorów GPU przypisanych do zadania z TaskContext.resources().get("gpu")
.
Sterownik GPU NVIDIA, CUDA i cuDNN
Usługa Azure Databricks instaluje sterownik i biblioteki NVIDIA wymagane do używania GPU w instancjach sterownika i instancjach roboczych Spark.
-
Zestaw narzędzi CUDA, zainstalowany w obszarze
/usr/local/cuda
. - cuDNN: biblioteka sieci neuronowych NVIDIA CUDA Deep Neural Network.
- NCCL: Biblioteka komunikacji zbiorowej FIRMY NVIDIA.
Wersja dołączonego sterownika NVIDIA to 535.54.03, który obsługuje cuda 11.0.
W przypadku serii instancji NV A10 v5 dołączona jest wersja sterownika NVIDIA 535.154.05
.
Aby zapoznać się z dołączonymi wersjami bibliotek, zobacz notatki o wersji dla używanej wersji Databricks Runtime.
Uwaga
To oprogramowanie zawiera kod źródłowy dostarczony przez firmę NVIDIA Corporation. W szczególności w celu obsługi procesorów GPU usługa Azure Databricks zawiera kod z przykładów CUDA.
Umowa licencyjna użytkownika oprogramowania NVIDIA (EULA)
Po wybraniu wersji Databricks Runtime z obsługą GPU w usłudze Azure Databricks automatycznie zgadzasz się na warunki i postanowienia opisane w umowie EULA firmy NVIDIA dotyczącej bibliotek CUDA, cuDNN i Tesla oraz na umowę licencyjną użytkownika końcowego firmy NVIDIA (z uzupełnieniem NCCL) dla biblioteki NCCL.
Usługi kontenerów Databricks na obliczeniach GPU
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Możesz korzystać z Usług Kontenerów Databricks na sprzęcie z procesorami GPU, aby tworzyć przenośne środowiska do uczenia się głębokiego z dostosowanymi bibliotekami. Aby uzyskać instrukcje, zobacz Dostosowywanie kontenerów za pomocą usługi Databricks Container Service.
Aby utworzyć niestandardowe obrazy dla obliczeń procesora GPU, musisz wybrać standardową wersję środowiska uruchomieniowego zamiast środowiska Databricks Runtime ML dla procesora GPU. Po wybraniu Użyj własnego kontenera platformy Docker, możesz wybrać obliczenia GPU w standardowej wersji środowiska uruchomieniowego. Niestandardowe obrazy GPU są oparte na oficjalnych kontenerach CUDA, które różnią się od Databricks Runtime ML dla GPU.
Podczas tworzenia obrazów niestandardowych dla obliczeń procesora GPU nie można zmienić wersji sterownika NVIDIA, ponieważ musi być zgodna z wersją sterownika na maszynie hosta.
Usługa databricksruntime
Docker Hub zawiera przykładowe obrazy bazowe z obsługą GPU. Pliki Dockerfile używane do generowania tych obrazów znajdują się w repozytorium GitHub przykładowych kontenerów, które zawiera także szczegółowe informacje o tym, co oferują te przykładowe obrazy i jak je dostosować.