Udostępnij za pośrednictwem


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 w list listy rozwijanej podczas select sterowników 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.

Tworzenie obliczeń procesora 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 wycofa obsługę tworzenia zasobów obliczeniowych przy użyciu serii wystąpień typu NC v3, ponieważ platforma Azure planuje wycofanie Nc24rs do 31 marca 2025 r., a także NC6s_v3, NC12s_v3 i 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

ND_H100_v5

  • Typ GPU: NVIDIA H100 Tensor Core GPU
Nazwa wystąpienia Liczba procesorów GPU Pamięć procesora GPU Procesory wirtualne Pamięć procesora CPU
Standard_ND96isr_H100_v5 8 80 GB x 8 96 1900 GB

NC_A100_v4

  • Typ GPU: NVIDIA A100 PCIe
Nazwa wystąpienia Liczba procesorów GPU Pamięć procesora GPU Procesory wirtualne 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 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 (wCPU) 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 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 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 uzyskać list up-toobsługiwanych typów wystąpień procesora 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 procesora GPU efektywnie dystrybuuje zadania platformy Spark na dużą liczbę procesorów GPU.

Środowisko Databricks Runtime obsługuje planowanie obsługujące procesor GPU z platformy Apache Spark 3.0. Usługa Azure Databricks wstępnie konfiguruje ją na obliczeniach procesora GPU.

Uwaga

Planowanie procesora GPU nie jest włączone w obliczeniach z jednym węzłem.

Planowanie procesora GPU dla sztucznej inteligencji i uczenia maszynowego

spark.task.resource.gpu.amount to jedyna konfiguracja platformy Spark związana z planowaniem obsługującym procesor GPU, które może być konieczne do skonfigurowania. 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 setspark.task.resource.gpu.amount do values ułamkowych, takich jak 1/2, 1/3, 1/4, ... 1/N. Spowoduje to utworzenie większej liczby zadań platformy Spark niż procesory GPU, co umożliwia wykonywanie bardziej współbieżnych zadań w celu równoległego obsługi żądań wnioskowania. Jeśli na przykład setspark.task.resource.gpu.amount do 0.5, 0.33lub 0.25, dostępne GPU zostaną podzielone na podwójną, potrójną lub czterokrotną 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 set używasz wielu GPU na zadanie, na przykład 4, to indeksy przypisanych GPU to zawsze 0, 1, 2 i 3. Jeśli potrzebujesz fizycznych indeksów przypisanych procesorów GPU, możesz get je ze zmiennej środowiskowej CUDA_VISIBLE_DEVICES.

Jeśli używasz języka Scala, możesz get indeksy procesorów GPU przypisanych do zadania z TaskContext.resources().get("gpu").

Sterownik procesora GPU FIRMY NVIDIA, CUDA i cuDNN

Usługa Azure Databricks instaluje sterownik i biblioteki NVIDIA wymagane do używania procesorów GPU w wystąpieniach sterowników i procesów roboczych platformy 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 typów wystąpień NV A10 v5 wersja zawiera wersja sterownika NVIDIA to 535.154.05.

Aby zapoznać się z dołączonymi wersjami bibliotek, zobacz informacje o wersji dla określonej używanej wersji środowiska 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)

W przypadku select wersji środowiska uruchomieniowego usługi Databricks z obsługą procesora GPU w usłudze Azure Databricks niejawnie zgadzasz się na warunki i postanowienia opisane w umowie EULA firmy NVIDIA w odniesieniu do bibliotek CUDA, cuDNN i Tesli oraz umowy licencyjnej użytkownika końcowego firmy NVIDIA (z uzupełnieniem NCCL) dla biblioteki NCCL.

Usługi kontenerów usługi Databricks na obliczeniach procesora GPU

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Usługi Kontenerów Databricks można używać w obliczeniach z procesorami GPU, aby tworzyć przenośne środowiska uczenia głębokiego z dostosowanymi bibliotekami. Aby uzyskać instrukcje, zobacz Dostosowywanie kontenerów za pomocą usługi Kontenera usługi Databricks.

Aby utworzyć niestandardowe obrazy dla obliczeń procesora GPU, musisz select standardową wersję środowiska uruchomieniowego zamiast środowiska Databricks Runtime ML dla procesora GPU. Jeśli selectUżyj własnego kontenera platformy Docker, możesz wybrać środowisko obliczeniowe procesora GPU ze standardową wersją środowiska uruchomieniowego. Obrazy niestandardowe dla procesora GPU są oparte na oficjalnych kontenerach CUDA, które różnią się od środowiska Databricks Runtime ML dla procesora 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 databricksruntimeDocker Hub zawiera przykładowe obrazy podstawowe z możliwością procesora GPU. Pliki Dockerfile używane do generate tych obrazów znajdują się w przykładowym repozytorium GitHub, które zawiera również szczegółowe informacje na temat tego, co udostępnia przykładowe obrazy i jak je dostosować.