Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Kubernetes Service (AKS) obsługuje pule węzłów z obsługą procesora GPU firmy NVIDIA w celu uruchamiania obciążeń intensywnie korzystających z obliczeń, w tym trenowania sztucznej inteligencji/uczenia maszynowego, wnioskowania w czasie rzeczywistym i analizy danych na dużą skalę. Tradycyjnie układy GPU są przydzielane w modelu jeden do jednego, w którym pojedynczy zasobnik Kubernetes wykorzystuje cały układ GPU na maszynie wirtualnej platformy Azure (VM). Chociaż ten model zapewnia prostotę i silną izolację, może prowadzić do niedostatecznego wykorzystania w scenariuszach, w których obciążenia nie w pełni zużywają dostępnych zasobów procesora GPU w klastrze.
Aby zwiększyć wykorzystanie i obsługiwać współbieżne obciążenia, klienci mogą zintegrować różne strategie partycjonowania procesora GPU w pulach węzłów. Te podejścia umożliwiają wielu obciążeń współużytkowanie jednego fizycznego procesora GPU przez podzielenie go na mniejsze jednostki logiczne lub przez rozszerzenie dostępu na poziomie oprogramowania lub sterownika procesora GPU.
W tym artykule dowiesz się o trzech podstawowych strategiach partycjonowania węzłów dla procesorów GPU NVIDIA w usłudze AKS: wieloinstancyjny procesor GPU (MIG), podział czasu i usługa wieloprocesowa (MPS).
Omówienie strategii partycjonowania węzłów GPU w usłudze AKS
Trzy podstawowe strategie dostępne w środowiskach AKS to wieloinstancyjny procesor GPU (MIG), podział czasu i usługa wieloprocesowa (MPS). Każde podejście różni się pod względem zarządzania platformą AKS, typu izolacji i przypadków użycia wdrożeń.
| Strategy | Zarządzane lub dozwolone na platformie AKS | Typ udostępniania procesora GPU | Zalecane dla |
|---|---|---|---|
| Wieloinstancyjny procesor graficzny (MIG) | Zarządzane (lub zarządzane przez użytkownika za pomocą GPU Operatora) | Partycjonowanie sprzętu | Obciążenia produkcyjne |
| Fragmentowanie czasowe (za pośrednictwem operatora procesora GPU FIRMY NVIDIA) | Zarządzany przez użytkownika, AKS dozwolony | Planowanie oprogramowania | Eksperymentowanie ze zmiennymi obciążeniami procesora GPU |
| Usługa wieloprocesowa (MPS, operator procesora GPU FIRMY NVIDIA) | Zarządzane przez użytkownika, AKS dozwolone | Multipleksowanie procesów na poziomie CUDA | Obciążenia o małych opóźnieniach i wysokiej przepływności |
Zarządzany wieloinstancyjny procesor GPU (MIG) w usłudze AKS
Technologia Multi-Instance GPU (MIG) to sprzętowa funkcja partycjonowania dostępna w wybranych architekturach procesorów graficznych NVIDIA, takich jak serie A100, H100 i H200. MIG umożliwia podzielenie pojedynczego fizycznego GPU na wiele izolowanych instancji, z których każda ma dedykowane rdzenie obliczeniowe, pamięć i pamięć podręczną. Zapewnia to silną izolację obciążeń i przewidywalne parametry wydajności, dzięki czemu MIG dobrze nadaje się do środowisk produkcyjnych.
W usłudze AKS MIG jest zarządzaną funkcją. Gdy pula węzłów z obsługą MIG jest aprowizowana, Azure konfiguruje sprzęt procesora GPU, instaluje i utrzymuje wymagany stos sterowników oraz integruje wystąpienia MIG z usługą Kubernetes za pośrednictwem wtyczki urządzenia NVIDIA. Każda partycja MIG jest udostępniana planiście Kubernetes jako odrębny zasób możliwy do przydzielenia, co umożliwia zasobnikom żądanie zasobów GPU w precyzyjny i deterministyczny sposób.
Takie podejście oferuje kilka zalet wdrożeń w przedsiębiorstwie. Zapewnia izolację klasy produkcyjnej dzięki partycjonowaniu na poziomie sprzętu i zmniejsza obciążenie operacyjne poprzez delegowanie zarządzania cyklem życia, w tym aktualizacji sterowników i konfiguracji, do usługi AKS. Ponadto instancje MIG działają jako niezależne urządzenia GPU z perspektywy harmonogramu, umożliwiając przewidywalne rozmieszczanie i alokację zasobów.
Jednak MIG wprowadza również pewne ograniczenia: konfiguracje partycjonowania są statyczne na poziomie puli węzłów, co oznacza, że zmiany wymagają ponownego aprowizowania węzłów. Elastyczność jest ograniczona do predefiniowanych profili MIG obsługiwanych przez sprzęt GPU.
Fragmentowanie czasowe za pomocą operatora procesora GPU FIRMY NVIDIA (zarządzane przez użytkownika)
Fragmentowanie czasowe to oparty na oprogramowaniu mechanizm udostępniania procesora GPU, który umożliwia wielu zasobnikom Kubernetes współużytkowanie pojedynczego procesora GPU przez przeplatanie wykonywania w czasie. Takie podejście jest implementowane za pośrednictwem operatora procesora GPU FIRMY NVIDIA, który zarządza sterownikami procesora GPU, wtyczką urządzenia Kubernetes i konfiguracją środowiska uruchomieniowego kontenera.
Fragmentowanie czasowe można skonfigurować w pulach węzłów usługi AKS, ale nie jest zarządzane przez platformę. Operatorzy klastra są odpowiedzialni za wdrażanie i konfigurowanie operatora procesora GPU FIRMY NVIDIA, zazwyczaj za pośrednictwem programu Helm i włączanie fragmentowania czasu za pośrednictwem ustawień wtyczki urządzenia. Po skonfigurowaniu wiele zasobników może uzyskać dostęp do tego samego zasobu GPU, a ich obciążenia robocze są planowane w trybie współdzielenia czasu.
Podział czasu zapewnia elastyczność i szeroką kompatybilność, ponieważ nie zależy od konkretnych funkcji sprzętowych GPU i może być stosowany z większością układów GPU firmy NVIDIA obsługiwanych przez CUDA. Jest to przydatne w przypadku prac deweloperskich, testowania lub obciążeń o skokowym lub zmiennym wykorzystaniu GPU.
Pomimo elastyczności fragmentowanie czasu nie zapewnia izolacji na poziomie sprzętu. Wszystkie obciążenia współdzielą tę samą pamięć procesora GPU i zasoby obliczeniowe, co może spowodować rywalizację i nieprzewidywalną wydajność. Ponieważ zarządzanie konfiguracją i cyklem życia jest sterowane przez użytkownika, operatorzy muszą również obsługiwać aktualizacje sterowników, zgodność i dostrajanie. W związku z tym fragmentowanie czasu zwykle nie jest zalecane w przypadku obciążeń produkcyjnych, które wymagają rygorystycznych umów dotyczących poziomu usług (SLA).
Usługa wieloprocesowa (MPS) z operatorem procesora GPU firmy NVIDIA (zarządzanym przez użytkownika)
Usługa NVIDIA Multi-Process Service (MPS) to funkcja na poziomie sterownika, która umożliwia jednoczesne wykonywanie wielu aplikacji CUDA na jednym procesorze GPU. W przeciwieństwie do fragmentowania czasowego, które zmienia wykonywanie między obciążeniami, usługa MPS umożliwia jednoczesne uruchamianie jąder z różnych procesów, poprawiając ogólne wykorzystanie procesora GPU i zmniejszając opóźnienia w przypadku zgodnych obciążeń.
W usłudze AKS funkcję MPS można skonfigurować przez wdrożenie zarządzane przez użytkownika operatora NVIDIA GPU Operator. Operatorzy muszą skonfigurować środowisko sterownika GPU, aby włączyć obsługę MPS i zarządzać cyklem życia demona kontrolnego MPS. Obciążenia łączące się z tym samym serwerem MPS mogą współużytkować procesor GPU i korzystać z współbieżnego wykonywania jądra.
Usługa MPS jest przydatna w scenariuszach o wysokiej przepływności i małych opóźnieniach, takich jak zadania wsadowe lub ściśle powiązane obciążenia równoległe. Zapewnia precyzyjną kontrolę nad współdzieleniem GPU i może znacząco poprawić wykorzystanie zasobów, gdy obciążenia zaprojektowano tak, aby korzystały ze współbieżnego wykonywania.
Jednak mpS wprowadza dodatkową złożoność operacyjną. Konfiguracja jest ręczna, a rozwiązywanie problemów może być bardziej zaangażowane w porównaniu z innymi podejściami. Podobnie jak w przypadku podziału czasu, MPS nie zapewnia silnej izolacji, ponieważ wszystkie procesy współdzielą pamięć GPU i zasoby obliczeniowe. W związku z tym usługi MPS zazwyczaj nie są zalecane w przypadku obciążeń produkcyjnych, które wymagają rygorystycznych umów dotyczących poziomu usług (SLA).
Jak wybrać strategię partycjonowania procesora GPU
Wybór odpowiedniej strategii partycjonowania procesora GPU w usłudze AKS zależy od wymagań dotyczących obciążeń, preferencji operacyjnych i oczekiwań dotyczących wydajności. MIG jest zalecanym podejściem w środowiskach produkcyjnych, które wymagają silnej izolacji i przewidywalnej wydajności. Jako funkcja puli węzłów AKS, MIG upraszcza operacje i zmniejsza nakład pracy administracyjnej.
Fragmentowanie czasowe jest przydatne w środowiskach nieprodukcyjnych lub obciążeniach ze zmiennym zapotrzebowaniem na procesor GPU, gdzie maksymalizacja wykorzystania jest ważniejsza niż spójność. Zapewnia niezależne od sprzętu rozwiązanie, ale wymaga starannego zarządzania i nie gwarantuje izolacji wydajności.
Usługa MPS jest idealna w przypadku wyspecjalizowanych obciążeń, które korzystają z współbieżnego wykonywania procesora GPU i małych opóźnień. Oferuje najwyższą potencjalną efektywność wykorzystania, ale wiąże się z większą złożonością i minimalną izolacją, przez co najlepiej nadaje się dla zaawansowanych użytkowników korzystających z aplikacji świadomych CUDA.
W praktyce organizacje mogą wdrażać różne strategie w różnych środowiskach przy użyciu funkcji MIG dla klastrów produkcyjnych przy jednoczesnym wykorzystaniu fragmentowania czasu lub mpS w scenariuszach programistycznych lub eksperymentalnych. Staranna ocena charakterystyk obciążeń procesora GPU i ograniczeń operacyjnych jest niezbędna do wybrania najbardziej efektywnego długoterminowego podejścia partycjonowania.
Treści powiązane
- Rozpocznij pracę z wieloinstancyjnymi pulami węzłów GPU w AKS.
- Dowiedz się więcej o najlepszych rozwiązaniach dotyczących zarządzania cyklem życia węzłów z obsługą procesora GPU.
- Zoptymalizuj wykorzystanie i wydajność węzła procesora GPU, konfigurując pakowanie pojemników węzłów w klastrze.