Cześć Habr! Zbiory danych dla Big Data i uczenia maszynowego rosną w wykładniczym tempie, a my musimy zdążyć je przetwarzać. Nasz post dotyczy jeszcze jednej innowacyjnej technologii w dziedzinie wysokowydajnego obliczeń (HPC, High Performance Computing), zaprezentowanej na stoisku Kingston na . To zastosowanie systemów przechowywania danych Hi-End (SSD) w serwerach z procesorami graficznymi (GPU) oraz technologią szybkiej magistrali GPUDirect Storage. Dzięki bezpośredniemu transferowi danych pomiędzy SSD a GPU, omijając CPU, znacznie przyspiesza się ładowanie danych do akceleratorów GPU, co pozwala na maksymalne wykorzystanie wydajności oferowanej przez GPU w aplikacjach Big Data. Z drugiej strony, deweloperzy systemów HPC interesują się osiągnięciami w dziedzinie SSD o najwyższej prędkości wejścia/wyjścia – takich, jakie produkuje Kingston.

Wydajność GPU wyprzedza ładowanie danych
Od momentu stworzenia CUDA w 2007 roku – architektury programowo-sprzętowej dla równoległych obliczeń opartych na GPU do programów ogólnego przeznaczenia, możliwości sprzętowe samych GPU znacząco się zwiększyły. Dziś GPU znajdują coraz szersze zastosowanie w aplikacjach HPC, takich jak big data (Big Data), uczenie maszynowe (ML, machine learning) i głębokie uczenie (DL, deep learning).
Zauważ, że mimo podobieństw terminów, dwa ostatnie to algorytmicznie różne zadania. ML uczy komputer na podstawie danych strukturalnych, podczas gdy DL na podstawie odpowiedzi z sieci neuronowej. Przykład, który pomoże zrozumieć różnice, jest dość prosty. Załóżmy, że komputer musi różnicować zdjęcia kotów i psów, które są przesyłane z magazynu danych. Dla ML należy wprowadzić zestaw obrazów z wieloma tagami, z których każdy definiuje jakąś jedną cechę zwierzęcia. Dla DL wystarczy przesłać znacznie większą liczbę obrazów, ale jedynie z jednym tagiem „to kot” lub „to pies”. DL jest bardzo podobne do tego, jak uczymy małe dzieci — po prostu pokazujemy im zdjęcia psów i kotów w książkach oraz w rzeczywistości (w większości przypadków, nawet nie wyjaśniając szczegółowej różnicy), a mózg dziecka zaczyna samodzielnie identyfikować typ zwierzęcia po pewnej krytycznej liczbie porównań obrazów (szacuje się, że chodzi o zaledwie setkę pokazów w całym wczesnym dzieciństwie). Algorytmy DL nie są jeszcze na tyle doskonałe: aby sieć neuronowa mogła tak skutecznie pracować nad rozpoznawaniem obrazów, konieczne jest przesłanie i przetworzenie na GPU milionów obrazów.
Podsumowując wstęp: na bazie GPU można zbudować aplikacje HPC w obszarze Big Data, ML i DL, ale istnieje problem — zbiory danych są na tyle duże, że czas poświęcony na załadunek danych z systemu przechowywania do GPU zaczyna wpływać na ogólną wydajność aplikacji. Innymi słowy, szybkie procesory graficzne pozostają niewykorzystane z powodu wolnego wprowadzania i wyprowadzania danych z innych podsystemów. Różnica w prędkości wprowadzania/wyprowadzania danych między GPU a magistralą CPU/magazyn danych może wynosić nawet jeden rząd wielkości.
Jak działa technologia GPUDirect Storage?
Proces wprowadzania i wyprowadzania danych jest kontrolowany przez CPU, podobnie jak proces załadunku danych z magazynu do procesorów graficznych do dalszego przetwarzania. Stąd pojawiła się potrzeba technologii, która zapewniłaby bezpośredni dostęp między GPU a dyskami NVMe w celu szybkiej wymiany danych. Pierwszą taką technologię zaproponowała firma NVIDIA i nazwała ją GPUDirect Storage. W zasadzie jest to odmiana wcześniej opracowanej technologii GPUDirect RDMA (Remote Direct Memory Address).

Jensen Huang, dyrektor generalny NVIDIA, prezentuje GPUDirect Storage jako odmianę GPUDirect RDMA na wystawie SC-19. Źródło: NVIDIA
Różnica między GPUDirect RDMA a GPUDirect Storage polega na urządzeniach, między którymi odbywa się adresowanie. Technologia GPUDirect RDMA jest przystosowana do bezpośredniego przesyłania danych pomiędzy kartą sieciową (NIC) a pamięcią GPU, podczas gdy GPUDirect Storage zapewnia bezpośrednią ścieżkę przesyłania danych między lokalnym lub zdalnym magazynem, takim jak NVMe lub NVMe przez Fabric (NVMe-oF) a pamięcią GPU.
Oba rozwiązania, GPUDirect RDMA i GPUDirect Storage, unikają zbędnych przesunięć danych przez bufor w pamięci CPU i pozwalają mechanizmowi bezpośredniego dostępu do pamięci (DMA) przesuwać dane z karty sieciowej lub magazynu bezpośrednio do pamięci GPU lub z niej — i to wszystko bez obciążenia procesora centralnego. Dla GPUDirect Storage lokalizacja magazynu nie ma znaczenia: może to być dysk NVMe wewnątrz jednostki z GPU, w szafie serwerowej lub podłączony przez sieć jako NVMe-oF.

Schemat działania GPUDirect Storage. Źródło: NVIDIA
Wysokiej klasy macierze dyskowe na NVMe są poszukiwane na rynku aplikacji HPC.
Rozumiejąc, że pojawienie się GPUDirect Storage przyciągnie uwagę dużych klientów na oferowane systemy przechowywania o prędkości we/wy odpowiadającej przepustowości GPU, na wystawie SC-19 firma Kingston zaprezentowała demonstracyjną system opartą na macierzy dyskowej z dysków NVMe i jednostki z GPU, w której analizowano tysiące zdjęć satelitarnych na sekundę. O tej macierzy złożonej z 10 dysków DC1000M U.2 NVMe już pisaliśmy. .

Macierz dyskowa oparta na 10 dyskach DC1000M U.2 NVMe doskonale uzupełnia serwer z akceleratorami graficznymi. Źródło: Kingston.
Taka macierz dyskowa jest realizowana w formie jednostki rackowej 1U lub większej i może być skalowana w zależności od liczby dysków DC1000M U.2 NVMe, gdzie każdy ma pojemność od 3.84 do 7.68 TB. DC1000M to pierwsza model NVMe SSD w formacie U.2 w linii dysków Kingston dla centrów danych. Oferuje on wskaźnik wytrzymałości (DWPD, Drive writes per day), który pozwala na zapisanie danych na pełnej pojemności raz dziennie przez gwarantowany okres trwałości dysku.
W teście fio v3.13 na systemie operacyjnym Ubuntu 18.04.3 LTS oraz jądrze Linux 5.0.0-31-generic, wystawiony prototyp macierzy dyskowej wykazał prędkość odczytu (Sustained Read) 5.8 mln IOPS przy stabilnej przepustowości (Sustained Bandwidth) 23.8 Gb/s.
Ariel Peres, menedżer biznesowy SSD w Kingston, scharakteryzował nowe systemy pamięci masowej: „Jesteśmy gotowi dostarczyć następne pokolenie serwerów rozwiązaniami SSD U.2 NVMe, aby usunąć wiele wąskich gardeł w przesyłaniu danych, które tradycyjnie były związane z systemem przechowywania. Połączenie dysków NVMe SSD i naszej premium pamięci RAM Server Premier DRAM czyni Kingston jednym z najbardziej kompletnych dostawców kompleksowych rozwiązań do przetwarzania danych w branży.”

Test gfio v3.13 wykazał przepustowość 23.8 Gb/s dla pokazowego systemu pamięci masowej na dyskach DC1000M U.2 NVMe. Źródło: Kingston
Jak będzie wyglądać typowy system dla aplikacji HPC, gdzie zastosowano technologię GPUDirect Storage lub podobną? To architektura z fizycznym podziałem bloków funkcjonalnych w obrębie stojaka: jeden lub dwa jednostki pamięci RAM, kilka jednostek węzłów obliczeniowych GPU i CPU oraz jedna lub więcej jednostek dla systemów pamięci masowej.
Z ogłoszeniem GPUDirect Storage i możliwym pojawieniem się podobnych technologii u innych producentów GPU, dla Kingston rośnie popyt na systemy pamięci masowej zaprojektowane do zastosowań w wysokowydajnych obliczeniach. Wyznacznikiem będzie prędkość odczytu danych z systemów pamięci masowej, porównywalna z przepustowością kart sieciowych 40- lub 100-Gbitowych na wejściu do jednostki obliczeniowej z GPU. W ten sposób ultra-szybkie systemy pamięci masowej, w tym zewnętrzne NVMe przez Fabric, z egzotyki staną się mainstreamem dla aplikacji HPC. Oprócz nauki i obliczeń finansowych, znajdą one zastosowanie w wielu innych praktycznych dziedzinach, takich jak systemy bezpieczeństwa na poziomie megamiasta Safe City czy centra nadzoru transportu, gdzie wymagana jest prędkość rozpoznawania i identyfikacji na poziomie milionów obrazów HD na sekundę,” – określił niszę rynku topowych systemów pamięci masowej.
Dodatkowe informacje o produktach Kingston można znaleźć na firmą.
Źródło: habr.com
