Dobrze zaprojektowane zagadnienia dotyczące obciążeń sztucznej inteligencji w infrastrukturze platformy Azure (IaaS)
Dobrze zaprojektowane zagadnienia dotyczące sztucznej inteligencji w infrastrukturze platformy Azure obejmują najlepsze rozwiązania, które optymalizują niezawodność, bezpieczeństwo, wydajność operacyjną, zarządzanie kosztami i wydajność rozwiązań sztucznej inteligencji. Te zasady zapewniają niezawodne wdrażanie, bezpieczną obsługę danych, wydajną operację modelu i skalowalną infrastrukturę na platformie IaaS platformy Azure. Zastosowanie tych zasad umożliwia organizacjom tworzenie odpornych, bezpiecznych i ekonomicznych modeli sztucznej inteligencji spełniających potrzeby biznesowe.
Niezawodność
Niezawodność polega na zminimalizowaniu przestojów i zapewnieniu spójnej wydajności aplikacji sztucznej inteligencji w infrastrukturze platformy Azure. Zapewnianie niezawodnych operacji na rozproszonych maszynach wirtualnych i utrzymywanie wydajności podczas zmian infrastruktury zapobiega przerwom w działaniu usługi. Te rozwiązania są ważne, ponieważ gwarantują ciągłą dostępność modelu i usprawniają środowisko użytkownika.
Dystrybuuj maszyny wirtualne między Strefy dostępności. Zminimalizuj przestoje z powodu awarii sprzętu lub zdarzeń konserwacji przy użyciu Strefy dostępności. Dystrybuują maszyny wirtualne między domenami błędów i aktualizacji, aby zapewnić ciągłą operację aplikacji.
Konfigurowanie monitorowania kondycji za pomocą usługi Azure Monitor. Śledzenie wydajności procesora CPU, pamięci i sieci na maszynach wirtualnych przy użyciu usługi Azure Monitor i konfigurowanie alertów w celu powiadamiania o pogorszeniu wydajności lub awariach w infrastrukturze obsługującej modele. Aby uzyskać więcej informacji, zobacz Szczegółowe informacje o maszynie wirtualnej usługi Azure Monitor.
Automatyzowanie stosowania poprawek i aktualizacji za pomocą wystąpień stopniowych. Użyj usługi Azure Update Management, aby stosować poprawki w sposób kroczący, umożliwiając aktualizowanie jednego wystąpienia, podczas gdy inne nadal obsługują ruch, uniemożliwiając przestoje podczas konserwacji.
Projektowanie pod kątem łagodnego obniżenia wydajności podczas częściowych awarii. Upewnij się, że podstawowe funkcje pozostają dostępne, obsługując mniej złożone modele sztucznej inteligencji lub ograniczając określone funkcje, gdy niektóre maszyny wirtualne staną się niedostępne, umożliwiając użytkownikom dostęp do podstawowych usług nawet podczas przestojów.
Implementowanie regularnych kopii zapasowych dla kluczowych zasobów. Regularnie tworzyć kopie zapasowe danych modelu, trenować zestawy danych i konfiguracje, aby umożliwić szybkie przywracanie, jeśli wystąpił błąd, zabezpieczając cenny postęp i dane.
Zabezpieczenia
Zabezpieczenia obejmują środki ochronne w celu ochrony modeli sztucznej inteligencji, danych i infrastruktury przed nieautoryzowanym dostępem i zagrożeniami. Zaimplementuj aktualizacje, monitoruj integralność modelu i kontroluj dostęp, aby zapobiec lukom w zabezpieczeniach, które mogą naruszyć poufne informacje. Te kroki są niezbędne do zachowania prywatności danych i wiarygodności rozwiązań sztucznej inteligencji w środowiskach produkcyjnych.
Zaplanuj aktualizacje zasobów platformy Azure. Użyj konfiguracji konserwacji, aby ustawić określone harmonogramy aktualizacji dla maszyn wirtualnych i rozszerzeń, zmniejszając okna luk w zabezpieczeniach.
Regularnie poprawianie maszyn wirtualnych i obrazów kontenerów. Włącz automatyczne stosowanie poprawek gościa dla maszyn wirtualnych i zestawów skalowania, aby zachować bezpieczeństwo przed nowymi zagrożeniami. Aby uzyskać więcej informacji, zobacz Aktualizacje gościa i omówienie konserwacji hosta.
Monitorowanie dryfu modelu i zapewnianie integralności. Zapewnij integralność modelu, implementując mechanizmy zabezpieczeń, takie jak podpisy cyfrowe lub weryfikacje skrótów dla plików modelu, aby zapobiec nieautoryzowanym modyfikacjom. Użyj usługi Azure Monitor, aby śledzić kluczowe metryki wydajności i identyfikować dryf modelu, co może wskazywać na potencjalne luki w zabezpieczeniach lub zmiany danych. Metryki niestandardowe (dokładność, ocena F1 i dystrybucja danych na modelach) można zdefiniować w kodzie przy użyciu zestawu SDK metryk usługi Azure Monitor. Zestaw SDK metryk usługi Azure Monitor umożliwia wysyłanie statystyk wydajności i pomiarów dryfu danych modelu do usługi Azure Monitor. Monitorowanie zmian wydajności w czasie może pomóc wykryć, kiedy zachowanie modelu odbiega, potencjalnie sygnalizując atak lub konieczność ponownego trenowania. Takie proaktywne podejście pomaga chronić integralność modelu i zachować zgodność z zabezpieczeniami.
Zaimplementuj dzienniki inspekcji i dostępu. Użyj usług Azure Monitor i Log Analytics, aby rejestrować dostęp do modeli i maszyn wirtualnych, pomagając zidentyfikować nieautoryzowany dostęp lub nietypowe wzorce użycia. Aby uzyskać więcej informacji, zobacz Dzienniki aktywności w usłudze Azure Monitor.
Użyj kontroli wersji dla plików modelu. Przechowuj pliki modelu w usłudze Azure Storage (obiekt blob, plik lub dysk) z przechowywaniem wersji w celu śledzenia zmian, zapewniając jasny dziennik inspekcji na potrzeby identyfikowania i wycofywania szkodliwych modyfikacji. Korzystanie z usługi Azure DevOps na potrzeby kontroli wersji zwiększa bezpieczeństwo, zarządzając dostępem do zmian kodu i wymuszając najlepsze rozwiązania w przeglądach kodu. Takie podejście warstwowe ogranicza ryzyko nieautoryzowanych zmian i zapewnia odpowiedzialność. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji obiektów blob w usłudze Azure Storage.
Konfigurowanie wykrywania anomalii dla danych wyjściowych modelu. Użyj usługi Azure Monitor, aby śledzić metryki wyjściowe modeli i konfigurować alerty pod kątem nietypowego zachowania. Na przykład monitorowanie odpowiedzi interfejsu API z modelu może pomóc w wykrywaniu nietypowych danych wyjściowych. Możesz ustawić wykrywanie anomalii na metryce, takiej jak dokładność przewidywania, aby automatycznie wykrywać, kiedy spada poza oczekiwany zakres. Aby uzyskać więcej informacji, zobacz Tworzenie alertów metryk i zarządzanie nimi przy użyciu progów dynamicznych.
Wymuszanie zasad dostępu do modelu. Użyj kontroli dostępu opartej na rolach (RBAC) platformy Azure i identyfikatora entra firmy Microsoft, aby zabezpieczyć dostęp do maszyn wirtualnych i plików modelu, ograniczając dostęp tylko do autoryzowanych użytkowników.
Regularnie realiduj modele pod kątem zaktualizowanych danych. Implementowanie okresowego ponownego wdrażania modelu przy użyciu zautomatyzowanych skryptów lub przepływów pracy na maszynach wirtualnych zapewnia, że model pozostaje dokładny i skuteczny w stosunku do bieżących zestawów danych, ograniczając ryzyko związane z nieaktualnymi lub niedokładnymi przewidywaniami. Planując te zadania za pomocą usługi Azure Automation lub Azure Logic Apps, można zachować zgodność ze standardami danych i zwiększyć ogólne zabezpieczenia modelu. Takie proaktywne podejście pomaga wcześnie identyfikować luki w zabezpieczeniach, zapewniając ciągłe ulepszanie i ochronę przed potencjalnymi zagrożeniami. Przepływy pracy automatyzacji można zaplanować w celu okresowego wyzwalania zadań ponownej aktualizacji. Zacznij od elementu Runbook usługi Azure Automation, uruchom go na maszynie wirtualnej, utwórz odpowiedni harmonogram , aby uzyskać wyniki weryfikacji.
Śledzenie zmian pochodzenia danych i pliku modelu. Włącz przechowywanie wersji w usłudze Azure Blob Storage i śledź dane używane podczas trenowania i wnioskowania, zapewniając, że żadne nieautoryzowane dane nie wpływają na wyniki modelu.
Zastosuj limity przydziału zasobów i limity szybkości. Zaimplementuj limity szybkości i limity przydziału dla interfejsów API modelu za pośrednictwem usługi Azure API Management, aby zapobiec nadmiernemu wykorzystaniu lub nadużyciom, co może prowadzić do luk w zabezpieczeniach systemu lub awarii usług. Ta strategia zapewnia, że system pozostaje dynamiczny podczas dużego ruchu i ogranicza ryzyko związane z atakami typu "odmowa usługi". Kontrolując dostęp, można zachować wydajność i chronić poufne dane przed potencjalnymi limitami i limitami usługi API Management.
Przeprowadzaj regularne skanowania luk w zabezpieczeniach. Skanowanie luk w zabezpieczeniach w usłudze Microsoft Defender umożliwia przeprowadzanie ocen luk w zabezpieczeniach maszyn wirtualnych i powiązanych zasobów. Regularnie sprawdzaj wszelkie problemy z zabezpieczeniami lub błędy konfiguracji w konfiguracji maszyny wirtualnej, które mogą uwidaczniać modele. Skanowanie luk w zabezpieczeniach w usłudze Microsoft Defender.
Optymalizacja kosztów
Optymalizacja kosztów obejmuje dostosowanie użycia zasobów do wymagań dotyczących obciążeń, aby uniknąć niepotrzebnych wydatków. Odpowiednie ustalanie rozmiaru maszyn wirtualnych, zatwierdzanie wystąpień zarezerwowanych i konfigurowanie skalowania automatycznego pomaga zarządzać kosztami bez naruszania wydajności. Kontrolowanie kosztów w infrastrukturze platformy Azure ma kluczowe znaczenie dla długoterminowego zrównoważonego rozwoju i skalowalności wdrożeń sztucznej inteligencji.
Zatwierdź do wystąpień zarezerwowanych. Oszczędzaj na kosztach maszyn wirtualnych, zobowiązując się do okresu jednego lub trzech lat, który oferuje obniżone stawki.
Użyj zestawów skalowania maszyn wirtualnych platformy Azure do automatycznego skalowania. Automatyczne skalowanie Wystąpienia maszyn wirtualnych oparte na metrykach, takich jak użycie procesora CPU, płacą tylko za to, czego potrzebujesz i uniemożliwiają nadmierną aprowizację.
Ustaw automatyczne zamknięcia dla bezczynnych wystąpień. Unikaj kosztów z nieużywanych zasobów, włączając automatyczne zamykanie, zwłaszcza w środowiskach deweloperskich i testowych.
Użyj planów oszczędności platformy Azure, aby uzyskać przewidywalne użycie. Zmniejsz koszty w porównaniu z cennikiem płatności zgodnie z rzeczywistym użyciem, zobowiązując się do spójnego użycia w różnych rozmiarach maszyn wirtualnych i regionach.
Użyj wystąpień usługi Azure Spot dla obciążeń odpornych na błędy. Uzyskaj znaczne rabaty na oszczędzoną pojemność dla obciążeń, które mogą tolerować przerwy.
Wybierz odpowiednie rozwiązanie magazynu. Równoważenie kosztów i wydajności na podstawie potrzeb związanych z obciążeniem. Wybierz usługę Azure Managed Lustre (AMLFS) dla aplikacji o wysokiej przepływności, dużej skali i usługi Azure NetApp Files (ANF), aby uzyskać zaawansowane zarządzanie danymi i niezawodność.
Doskonałość operacyjna
Doskonałość operacyjna polega na optymalizacji konfiguracji zasobów platformy Azure i zarządzaniu nimi w celu poprawy funkcjonalności aplikacji sztucznej inteligencji. Wydajna alokacja zasobów, dostrajanie wydajności i rozproszone trenowanie obsługują bezproblemową operację i możliwość dostosowania do różnych wymagań. Ten nacisk na wydajność operacyjną zapewnia, że modele sztucznej inteligencji działają zgodnie z oczekiwaniami, bez nadmiernego użycia zasobów.
Optymalizowanie alokacji zasobów. Regularnie przeglądaj rozmiary i konfiguracje maszyn wirtualnych platformy Azure na podstawie rzeczywistego użycia zasobów w celu dopasowania ich do potrzeb związanych z obciążeniami. Skorzystaj z usługi Azure Advisor, aby uzyskać zalecenia dotyczące optymalnego rozmiaru i skalowania.
Skonfiguruj skalowanie automatyczne pod kątem wydajności. Skonfiguruj skalowanie automatyczne dla maszyn wirtualnych lub kontenerów, aby obsługiwać wymagania dotyczące obciążeń bez nadmiernej aprowizacji. Użyj usługi Azure Virtual Machine Scale Sets, aby dynamicznie dostosowywać zasoby na podstawie zapotrzebowania. Aby uzyskać więcej informacji, zobacz Zestawy skalowania maszyn wirtualnych platformy Azure.
Przeprowadzanie regularnego dostrajania wydajności. Ciągłe profilowanie aplikacji w celu identyfikowania i rozwiązywania wąskich gardeł wydajności. Użyj profilera usługi Application Insights do analizowania kodu modelu i użycia zasobów.
Zaimplementuj trenowanie rozproszone pod kątem wydajności. Użyj technik trenowania rozproszonego, jeśli ma to zastosowanie, aby skrócić czas trenowania przy użyciu wielu maszyn wirtualnych. Struktury takie jak Horovod i PyTorch obsługują trenowanie rozproszone na platformie Azure.
Zapisywanie punktów kontrolnych w usłudze Azure Blob Storage. Okresowe zapisywanie stanów, wag i konfiguracji modelu w usłudze Azure Blob Storage. Zestawy SDK platformy Azure lub biblioteki dostępne w języku programowania używanym w usłudze LLM. Przechowuj punkty kontrolne w formacie ustrukturyzowanym, na przykład Pliki punktów kontrolnych TensorFlow SavedModel lub PyTorch. Zmodyfikuj kod trenowania lub wnioskowania, aby uwzględnić logikę punktu kontrolnego. Zacznij od interwałów ustawiania (po każdej epoki lub niektórych iteracji), aby zapisać stan modelu. Użyj spójnej konwencji nazewnictwa dla plików punktów kontrolnych, aby łatwo śledzić najnowszy stan.
Projektowanie pod kątem odzyskiwania stanu. Upewnij się, że aplikacja może odzyskać dane z zapisanego punktu kontrolnego. Zaimplementuj logikę, aby załadować stan modelu z usługi Azure Blob Storage po uruchomieniu aplikacji. Obejmuje to sprawdzanie istniejących punktów kontrolnych i ładowanie najnowszego punktu kontrolnego, jeśli jest dostępne, dzięki czemu aplikacja może wznowić działanie bez utraty postępu.
Efektywność wydajności
Wydajność odnosi się do maksymalizacji mocy obliczeniowej infrastruktury platformy Azure w celu spełnienia wymagań modelu sztucznej inteligencji. Należy dostosować ustawienia procesora GPU, zoptymalizować procesy wejścia/wyjścia (we/wy) i uruchomić testy porównawcze, aby zwiększyć szybkość obliczeniową i czas odpowiedzi. Zapewnienie wysokiej wydajności obsługuje wykonywanie złożonych modeli sztucznej inteligencji na dużą skalę, co zwiększa zadowolenie użytkowników i zmniejsza opóźnienia.
Dostrajanie procesora GPU
Zwiększ częstotliwość zegara jednostki przetwarzania grafiki (GPU), aby zwiększyć wydajność, zwłaszcza w przypadku zadań wymagających wysokiego przetwarzania graficznego lub złożonych obliczeń. Wyższe szybkości zegara umożliwiają procesorowi GPU wykonywanie większej liczby operacji w danym okresie, zwiększając ogólną wydajność. Użyj tego skryptu optymalizacji procesora GPU, aby ustawić częstotliwości zegara procesora GPU na maksymalne wartości.
- Włącz przyspieszoną sieć. Przyspieszona sieć to technologia przyspieszania sprzętowego, która umożliwia maszynom wirtualnym korzystanie z wirtualizacji we/wy z jednym elementem głównym (SR-IOV) na obsługiwanych typach maszyn wirtualnych. Zapewnia mniejsze opóźnienia, mniejsze zakłócenia i mniejsze wykorzystanie procesora CPU. Włącz przyspieszoną sieć oferuje znaczne ulepszenia wydajności sieci frontonu.
Dostrajanie we/wy
Optymalizowanie magazynu tymczasowego. Podstawy muszą mieć wysoką przepływność i małe opóźnienia. Zadanie szkoleniowe wymaga odczytywania danych, przetwarzania ich i używania tej lokalizacji magazynu jako miejsca do zdrapania podczas uruchamiania zadania. Najlepiej, aby użyć lokalnego dysku SSD bezpośrednio na każdej maszynie wirtualnej. Jeśli potrzebujesz udostępnionego systemu plików do zera, połączenie wszystkich dysków SSD NVMe w celu utworzenia równoległego systemu plików (PFS) może być doskonałym rozwiązaniem pod względem kosztów i wydajności, zakładając, że ma wystarczającą pojemność. Jedną z metod jest użycie usługi Azure Managed Lustre. Jeśli usługa Azure Managed Lustre nie jest odpowiednia, możesz zapoznać się z opcjami magazynu, takimi jak Azure NetApp Files lub Azure Native Qumulo.
Zaimplementuj magazyn punktów kontrolnych. Duże zadania szkoleniowe uczenia głębokiego mogą być uruchamiane przez kilka tygodni, w zależności od liczby używanych maszyn wirtualnych. Podobnie jak w przypadku każdego klastra HPC, mogą wystąpić błędy, takie jak problemy z infiniBand, błędy dwuwierszowego modułu pamięci (DIMM), błędy korygowania błędu w pamięci procesora GPU. Kluczowe znaczenie ma strategia tworzenia punktów kontrolnych. Poznaj interwał punktu kontrolnego (gdy dane są zapisywane). Dowiedz się, ile danych jest przesyłanych za każdym razem. Masz rozwiązanie magazynu spełniające wymagania dotyczące pojemności i wydajności. Użyj usługi Blob Storage, jeśli spełnia wymagania dotyczące wydajności.
Testy porównawcze
Testy porównawcze pomagają ocenić i poprawić wydajność trenowania rozproszonego uczenia głębokiego na procesorach GPU, szczególnie w przypadku modeli na dużą skalę. Te testy mierzą wydajność komunikacji procesora GPU między węzłami, co ma na celu zmniejszenie wąskich gardeł transferu danych podczas trenowania rozproszonego. Omówione trzy testy obejmują:
- Struktura Megatron: obsługuje modele języków na dużą skalę przez zwiększenie wydajności trenowania rozproszonego.
- Testy bibliotekI ZBIOROWEj KOMUNIKACJI (NCCL) i ROCm Communication Collectives Library (RCCL) firmy NVIDIA: Ocena wydajności i dokładności komunikacji z wieloma procesorami GPU przy użyciu bibliotek NCCL lub RCCL, testowania wzorców, takich jak wszystkie redukcje i rozpraszanie.
Te testy zapewniają skalowalność i optymalną wydajność dla llMs, a Megatron koncentruje się na trenowaniu modelu i NCCL/RCCL w komunikacji z procesorem GPU.
Test NVIDIA Megatron-LM
NVIDIA Megatron-LM to platforma typu open source do trenowania dużych modeli językowych. Umożliwia deweloperom tworzenie ogromnych sieci neuronowych na potrzeby zadań NLP, z funkcjami, takimi jak:
- Równoległość: obsługuje równoległość modelu, danych i potoku dla modeli miliardów parametrów.
- Skalowalność: skaluje wiele procesorów GPU i węzłów w celu wydajnego trenowania dużych modeli.
- Elastyczność: umożliwia konfigurację architektury modelu, ładowania danych i strategii trenowania.
- Optymalizacje: używa optymalizacji procesora GPU FIRMY NVIDIA w celu zwiększenia wydajności.
Megatron-LM jest wdrażany w infrastrukturze hpc platformy Azure i korzysta ze skalowalności platformy Azure dla dużych modeli językowych bez konieczności używania sprzętu lokalnego.
Konfiguracja testu Megatron-LM
Wdrożenie megatron-LM wymaga określonego oprogramowania i sprzętu.
Wybierz odpowiednie opcje wdrażania. Użyj obszaru roboczego CycleCloud dla programu Slurm , aby uprościć wdrażanie. Wybierz jednostki SKU serii NC lub ND dla partycji procesora GPU. W przypadku trenowania wielu węzłów jednostki SKU serii ND są zalecane w przypadku obsługi funkcji RDMA. Obrazy platformy Handlowej HPC platformy Azure zwykle zawierają te sterowniki i biblioteki. W razie potrzeby dostosowanie repozytorium azhpc-images może zapewnić zgodność.
Użyj odpowiedniego obrazu. Wymagania dotyczące oprogramowania dla projektu obejmują system operacyjny Oparty na systemie Linux, zazwyczaj Ubuntu. W przypadku komunikacji z wieloma procesorami GPU i wieloma węzłami niezbędne jest posiadanie bibliotek komunikacyjnych, takich jak NCCL i MPI. Ponadto należy zainstalować odpowiednie sterowniki NVIDIA, aby zapewnić przyspieszenie procesora GPU. Obrazy platformy Handlowej HPC platformy Azure są dostarczane ze wstępnie zainstalowanymi sterownikami i bibliotekami. Jeśli jednak dostosowanie jest konieczne, repozytorium azhpc-images może służyć do zapewnienia zgodności.
Użycie testu Megatron-LM
Należy uruchomić aplikację Megatron-LM przy użyciu najnowszej wersji kontenera PyTorch firmy NGC. Aby uruchomić kontener względem tradycyjnego klastra HPC opartego na technologii Slurm, należy zainstalować i skonfigurować te inne składniki w klastrze:
- enroot: narzędzie, które umożliwia użytkownikom uruchamianie konteneryzowanych aplikacji w klastrach HPC bez konieczności posiadania uprawnień głównych lub modyfikowania systemu hosta.
- pyxis: wtyczka slurm, która umożliwia bezproblemową integrację enroot z slurm, umożliwiając użytkownikom przesyłanie konteneryzowanych zadań do kolejek Slurm i uruchamianie ich w węzłach HPC.
Oba te składniki są uwzględniane w obszarze roboczym CycleCloud dla programu Slurm, ale obecnie nie są uwzględniane w klastrach Slurm , które są tworzone za pośrednictwem usługi CycleCloud. Te dodatkowe składniki można wprowadzić za pomocą trybu cluster-init w projektach CycleCloud. Po spełnieniu tych wymagań można użyć megatron-LM do trenowania LLM, wykonując następujące czynności:
- Weryfikowanie wydajności klastra: zidentyfikuj wszelkie potencjalne problemy sprzętowe przed uruchomieniem obciążenia za pomocą kontroli kondycji węzła. Użyj testów listy NCCL, aby zweryfikować rozproszoną wydajność całego zmniejszenia wydajności klastra.
- Wybieranie danych treningowych: użyj modelu codeParrot jako punktu wyjścia, aby zweryfikować przepływ pracy.
- Wstępne przetwarzanie danych: użyj skryptu preprocess_data.py w repozytorium Megatron-LM, aby przekonwertować dane na format zgodny z Megatron-LM.
- Trenowanie za pomocą megatron-LM: użyj przykładów w megatron-LM jako odwołania do konfigurowania Megatron na potrzeby trenowania.
Ta konfiguracja zapewnia wydajne wdrażanie i szkolenie dużych modeli językowych w infrastrukturze platformy Azure.
Test przepustowości listy NCCL
Aby zweryfikować i zoptymalizować komunikację procesora GPU między węzłami, uruchom test przepustowości listy NCCL. Test przepustowości NCCL jest wyspecjalizowanym narzędziem w ramach listy NCCL, biblioteki, która ułatwia szybką komunikację między procesorami GPU. Lista NCCL obsługuje operacje zbiorowe, w tym wszystkie redukcje, zbieranie wszystkich, redukcję, emisję i redukcję punktów, w węzłach pojedynczego lub wieloprocesorowego procesora GPU oraz zapewnia optymalną wydajność na platformach przy użyciu konfiguracji PCIe, NVLink, NVswitch lub sieci, takich jak InfiniBand lub TCP/IP. Aby uzyskać więcej informacji, zobacz Testy NVIDIA/NCCL.
Metryki wydajności listy NCCL
Użyj testu przepustowości listy NCCL, aby ocenić kluczowe metryki, w tym czas i przepustowość. "Czas" (w milisekundach) mierzy obciążenie lub opóźnienie w operacjach, co ułatwia ocenę operacji z małymi rozmiarami danych. Wartość "Przepustowość" (w GB/s) ocenia wydajność operacji punkt-punkt, taką jak Wysyłanie/odbieranie. "Przepustowość magistrali" odzwierciedla wydajność użycia sprzętu przez uwzględnienie szybkości komunikacji między procesorami GPU i wąskich gardeł w składnikach, takich jak NVLink lub PCI. Dostępne są obliczenia dla różnych operacji zbiorczych, takich jak AllReduce, ReduceScatter, AllGather, Broadcast i Reduce.
Inicjowanie testu listy NCCL
Aby zainicjować te testy we wdrożeniu CycleCloud, połącz się z węzłem harmonogramu za pośrednictwem protokołu SSH i uzyskaj dostęp do węzła obliczeniowego wyposażonego w procesor GPU. Sklonuj repozytorium Git dla testów listy NCCL, przejdź do nccl-tests
katalogu i utwórz plik hosta zawierający listę węzłów do testowania. Uzyskaj adres IP węzła harmonogramu z aplikacji internetowej CycleCloud.
Argumenty testowe listy NCCL
Przed uruchomieniem testów określ różne argumenty, takie jak liczba procesorów GPU na wątek (-g
), zakres rozmiaru danych (-b
dla minimalnych bajtów i -e
maksymalnych bajtów), przyrost kroku (-i
lub -f
), typ operacji redukcji (), typ operacji redukcji (-o
), typ danych-d
(), urządzenie główne (-r
), liczba iteracji (-n
), liczba rozgrzewek (-w
) i ustawienia grafu CUDA (-G
). Zapoznaj się z dokumentacją testową NCCL, aby uzyskać pełną listę parametrów regulowanych.
Testy RCCL
RoCm Communication Collectives Library (RCCL) to wyspecjalizowana biblioteka przeznaczona do wydajnej komunikacji między procesorami GPU AMD. Zapewnia ona operacje zbiorowe, takie jak all-reduce, all-gather, emisji i redukcji, obsługujące komunikację między węzłami gpu wewnątrz i międzywęźle. Zoptymalizowane pod kątem platform przy użyciu technologii PCIe i sieci, takich jak InfiniBand, RCCL zapewnia skalowalny transfer danych w środowiskach z wieloma procesorami GPU. Obsługuje integrację zarówno z przepływami pracy jednoprocesowych, jak i wieloprocesowych, takich jak te korzystające z interfejsu MPI. Aby uzyskać więcej informacji, zobacz Biblioteka zbiorczych komunikacji ROCm
- Konfigurowanie środowiska. Zainstaluj narzędzie ROCm i upewnij się, że lista RCCL jest poprawnie zainstalowana na wszystkich węzłach.
- Kompilowanie testów RCCL. Sklonuj repozytorium, przejdź do katalogu rccl-tests i skompiluj testy.
- Uruchamianie testów przepustowości. Użyj udostępnionych plików wykonywalnych testowych (rccl-tests), określając operacje komunikacji, takie jak all-reduce.
- Analizowanie wydajności. Porównaj wyniki przepustowości i opóźnień między węzłami i procesorami GPU.