Prawie wszystkie współczesne procesory graficzne NVIDIA obsługują obliczenia wykonywane na GPU, ale nie wszystkie GPU oferują taką samą wydajność lub takie same funkcje. Linia konsumencka kart NVIDIA GeForce może wydawać się atrakcyjna dla tych, którzy korzystają z aplikacji wykonujących obliczenia na GPU. Warto jednak pamiętać o różnicach między produktami przeznaczonymi na rynek konsumencki lub profesjonalny. Istnieje wiele funkcji dostępnych jedynie dla profesjonalnych GPU i kart NVIDIA Data Center.
Wiele profesjonalnych aplikacji symulacyjnych, np. z dziedziny mechaniki płynów czy MES, wymaga bardziej dokładnych obliczeń matematycznych. W tych aplikacjach dane są reprezentowane przez wartości przy użyciu 64 bitów (liczby tzw. podwójnej precyzji) zamiast 32 bitów (liczby tzw. pojedynczej precyzji). Chociaż prawie wszystkie produkty NVIDIA GPU obsługują zarówno obliczenia pojedynczej, jak i podwójnej precyzji, wydajność dla wartości podwójnej precyzji jest znacznie niższa w przypadku większości procesorów graficznych GeForce klasy konsumenckiej. Oto porównanie wydajności obliczeń zmiennoprzecinkowych o podwójnej precyzji między procesorami graficznymi kart NVIDIA Data Center i NVIDIA GF RTX (GeForce):
NVIDIA GPU |
A100 |
A30 |
GF RTX 3090Ti3) |
GF RTX 3090 |
GF RTX 3080Ti |
GF RTX 3080 |
GF RTX 3070Ti |
GF RTX 3070 |
Wydajność FP64 w TFLOPS1) |
9,7 / 19,52) |
5,16 / 10,32) |
0,625 |
0,556 |
0,532 |
0,465 |
0,339 |
0,317 |
1) Teraflops – 1012 operacji zmiennoprzecinkowych na sekundę.
2) W przypadku użycia rdzeni tensorowych.
3) Karta zapowiadana.
Niektóre aplikacje nie wymagają wysokiej dokładności, np. uczenie (trenowanie) sieci neuronowych (ang. deep learning), wnioskowanie (ang. inferencing) i niektóre obliczenia wysokiej wydajności – HPC (ang. high performance computing). Obsługa operacji FP16 została wprowadzona w generacji procesorów graficznych NVIDIA Pascal. Był to wcześniej standard przy głębokim uczeniu, jednak obliczenia te przeszły do bardziej złożonych operacji z wykorzystaniem rdzeni tensorowych4) w GPU następnych generacji. Oto porównanie wydajności obliczeń zmiennoprzecinkowych FP16 między procesorami graficznymi kart NVIDIA Data Center i NVIDIA GF RTX z wykorzystaniem rdzeni tensorowych:
NVIDIA GPU |
A100 |
A30 |
GF RTX 3090Ti |
GF RTX 3090 |
GF RTX 3080Ti |
GF RTX 3080 |
GF RTX 3070Ti |
GF RTX 3070 |
Wydajność w TFLOPS |
312 / 6245) |
165 / 3305) |
? |
71 / 1425) |
68 / 1365) |
59,5 / 1195) |
43,5 / 875) |
40,6 / 81,35) |
W przypadku wykorzystania GPU do wnioskowania czyli praktycznego zastosowania rozwiązań sztucznej inteligencji często wykorzystuje się liczby całkowite.
NVIDIA GPU |
A100 |
A30 |
GF RTX 3090Ti |
GF RTX 3090 |
GF RTX 3080Ti |
GF RTX 3080 |
GF RTX 3070Ti |
GF RTX 3070 |
Wydajność w TOPS6) |
624 / 12485) |
330 / 6615) |
? |
284 / 5685) |
272 / 5445) |
238 / 4765) |
174 / 3485) |
162 / 3255) |
4) Rdzenie tensorowe to specjalizowane jednostki obliczeniowe wprowadzone wraz z generacją NVIDIA Volta wykonujące w jednym cyklu mnożenie dwóch liczb 16-bitowych z akumulacją 32-bitową.
5) Przy użyciu funkcji sparcity – kompresowania rzadkich macierzy.
6) Tera operation per second – 1012 operacji na sekundę.
Ogólnie rzecz biorąc, im więcej pamięci tym system będzie działał szybciej. W przypadku niektórych aplikacji HPC nawet nie można wykonać obliczeń, jeśli nie ma wystarczającej ilości pamięci. Dla niektórych aplikacji wierność wyników ulegnie zniekształceniu, chyba że dostępna jest wystarczająca ilość pamięci GPU. GPU NVIDIA Data Center oferują zazwyczaj dwukrotnie większą pamięć niż GeForce. Dodatkowo, w tych kartach funkcja Unified Memory umożliwia GPU dzielenie się pamięcią, aby załadować nawet większe zestawy danych.
NVIDIA GPU |
A100 |
A30 |
GF RTX 3090Ti |
GF RTX 3090 |
GF RTX 3080Ti |
GF RTX 3080 |
GF RTX 3070Ti |
GF RTX 3070 |
Wielkość pamięci w GB |
80 |
24 |
24 |
24 |
20 |
12 |
16 |
8 |
Szybki dostęp do danych ma kluczowe znaczenie. W przypadku wielu aplikacji HPC zwiększenie wydajności obliczeniowej nie pomaga, jeśli wydajność pamięci nie jest wystarczająca. Z tego powodu GPU NVIDIA Data Center zapewniają wyższe transfery danych od i do pamięci niż karty GeForce. Przepustowość pamięci jest ściśle związana z szerokością szyny danychi jej taktowaniem.
NVIDIA GPU |
A100 |
A30 |
GF RTX 3090Ti |
GF RTX 3090 |
GF RTX 3080Ti |
GF RTX 3080 |
GF RTX 3070Ti |
GF RTX 3070 |
Rodzaj pamięci |
HBM2e |
HBM2 |
GDDR6X |
GDDR6X |
GDDR6 |
GDDR6 |
GDDR6 |
GDDR6 |
Szerokość szyny danych |
5120-bit |
3072-bit |
384-bit |
384-bit |
320-bit |
384-bit |
256-bit |
256-bit |
Taktowanie pamięci w MHz |
1593 |
930 |
1325 |
1219 |
1188 |
1188 |
1188 |
1750 |
Przepustowość pamięci |
1940 / 20397) |
933 |
1018 |
936 |
760 |
912 |
608 |
448 |
7) Dla karty w wykonaniu SXM.
Aplikacje do obliczeń bazują na dokładności danych uzyskanych z GPU. W przypadku niektórych aplikacji pojedynczy błąd może powodować, że całe obliczenia są całkowicie błędne. W innych aplikacjach pojedynczy błąd może nie być łatwy do wykrycia (zwracanie nieprawidłowych wyników, które wydają się poprawne). Procesory graficzne GeForce nie posiadają możliwości korekcji lub wykrywania błędów. Ani GPU, ani system nie mogą ostrzegać przed tym użytkownika. To użytkownik musi zaprogramować możliwość wykrycia błędów (np. czy to powoduje awarie aplikacji lub nieprawidłowe wyniki). Takie problemy nie są rzadkie i mogą wystąpić na kartach konsumenckich przeznaczonych dla gier. W przypadku gry komputerowej jeden błąd pamięci zwykle nie powoduje problemów (np. jeden kolor piksela może być niepoprawny). Gracz nawet nie zdaje sobie sprawy z problemu. Procesory graficzne NVIDIA Data Center mogą poprawiać, wykrywać i ostrzegać o błędach. W najnowszych modelach GPU NVIDIA A100 i NVIDIA A30 wsparcie ECC znajduje się w głównej pamięci HBM2, a także w plikach rejestru, współdzielonych pamięciach, pamięci podręcznej L1 i pamięci podręcznej L2.
Technologia GPU-Direct firmy NVIDIA umożliwia znaczną poprawę szybkości przesyłania danych między GPU. RDMA (Remote Direct Memory Access) zapewnia największe korzyści z technologii GPU-Direct. Tradycyjnie przesyłanie danych między układami GPU klastra wymagało trzech kopii pamięci (raz na pamięć systemu GPU, raz na pamięć systemu CPU i raz na pamięć sterownika InfiniBand). GPU Direct RDMA usuwa konieczność tworzenia kopii pamięci systemowych, umożliwiając GPU wysyłanie danych bezpośrednio przez połączenie InfiniBand do zdalnego systemu. W praktyce spowodowało to ok. 70% zmniejszenie opóźnień i ponad czterokrotny wzrost przepustowości dla małych rozmiarów pakietów MPI. Od wersji CUDA 8.0 firma NVIDIA wprowadziła GPU Direct RDMA ASYNC, która umożliwia GPU inicjowanie transferu RDMA bez jakiejkolwiek interakcji z procesorem. Procesory graficzne GeForce nie obsługują GPU-Direct RDMA. Mimo że wywołania MPI będą przesyłane pomyślnie, transfery będą przeprowadzane za pośrednictwem standardowych ścieżek kopiowania pamięci. Jedyną formą GPU-Direct obsługiwaną na kartach GeForce jest GPU Direct Peer-to-Peer (P2P). Pozwala to na transfery w pojedynczym komputerze ale nie ma zastosowania w przypadku aplikacji działających na wielu serwerach lub węzłach obliczeniowych. Procesory GPU NVIDIA Data Center mają pełne wsparcie dla GPU Direct RDMA oraz dla dodatkowych funkcji z technologii GPU Direct.
Więcej informacji: https://developer.nvidia.com/gpudirect
Niektóre programy są w stanie działać na dowolnym GPU obsługującym technologię NVIDIA CUDA, inne są zaprojektowane i zoptymalizowane pod kątem wykorzystania GPU z serii kart profesjonalnych. Większość profesjonalnych pakietów oprogramowania które wykorzystują obliczenia na GPU oficjalnie obsługuje tylko procesory graficzne NVIDIA Data Center. Korzystanie z GPU GeForce może być możliwe, ale nie będzie wspierane przez dostawcę oprogramowania. W niektórych przypadkach aplikacje w ogóle nie działają po uruchomieniu na kartach GeForce.
Więcej informacji:
https://pny.quadrok-selector.com/en
https://www.nvidia.com/object/gpu-applications.html
Aktualnie brak jest sterowników dla kart GeForce dla systemów operacyjnych Windows Server. Procesory graficzne GeForce są obsługiwane tylko w systemach Windows 7, Windows 8 i Windows 10. Użytkownicy korzystający z systemu Windows Server powinni korzystać z profesjonalnych produktów NVIDIA Data Center.
Więcej informacji: https://www.nvidia.pl/Download/index.aspx?lang=pl
Funkcje monitorowania i możliwość zarządzania GPU, które są niezbędne przy zarządzaniu wieloma serwerami GPU są obsługiwane na profesjonalnych układach GPU NVIDIA Data Center. NVIDIA Data Center GPU Manager (DCGM) dostarcza administratorom klastrów dodatkowe narzędzia do zarządzania GPU. Administratorzy systemów mają możliwość implementacji zasad systemowych, monitorowania stanu układów GPU, diagnozowania zdarzeń systemowych i maksymalizowania wydajności centrum danych. NVML służy do monitorowania i zarządzania stanem i możliwościami każdego GPU. Umożliwia to dostęp do GPU i obsługę wielu aplikacji i narzędzi innych firm. Ponad połowa funkcji nie jest dostępna na kartach GeForce.
Więcej informacji: https://www.nvidia.com/en-us/data-center/software/
Wszystkie najnowsze produkty NVIDIA GPU obsługują GPU Boost, ale ich implementacje różnią się w zależności od zamierzonego scenariusza użytkowania. Karty GeForce są stworzone do interaktywnego użytkowania komputerów stacjonarnych i gier. Karty NVIDIA Data Center są zbudowane z myślą o intensywnym, ciągłym przetwarzaniu liczb, a stabilność i niezawodność są na najwyższym poziomie. Biorąc pod uwagę różnice między tymi dwoma przypadkami użycia, funkcja GPU Boost działa inaczej na kartach NVIDIA Data Center niż na kartach GeForce.
W przypadku Geforce karta graficzna automatycznie określa szybkość zegara i napięcie na podstawie temperatury GPU. Temperatura jest zmienną niezależną, ponieważ wytwarzanie ciepła wpływa na prędkość wentylatora. W przypadku gier o mniej rozbudowanej grafice lub do ogólnego użytku na komputerach stacjonarnych użytkownik końcowy może cieszyć się cichszą pracą na komputerze. Jednak podczas grania w gry wymagające dużej mocy obliczeniowej GPU funkcja GPU Boost automatycznie zwiększa napięcie i częstotliwość taktowania (dodatkowo generując większy hałas).
Poziom doładowania kart NVIDIA Data Center można również określić na podstawie napięcia i temperatury, ale nie zawsze musi działać w ten sposób. Jeśli jest to preferowane, podbicie (boost) może być określone przez administratora systemu lub użytkownika obliczeniowego – żądana częstotliwość zegara może być ustawiona na określoną wartość. Zamiast zmieniać prędkość zegara przy różnym obciążeniu, pożądana prędkość zegara może być utrzymywana statycznie, chyba że zostanie osiągnięty próg poboru energii (TDP). Jest to ważna kwestia, ponieważ akceleratory w środowisku HPC często muszą być ze sobą zsynchronizowane. Opcjonalny, deterministyczny aspekt GPU Boost umożliwia administratorom systemu określenie optymalnych częstotliwości taktowania i zablokowanie ich we wszystkich układach GPU.
W przypadku aplikacji, które wymagają dodatkowej wydajności i determinizmu, procesory graficzne NVIDIA Data Center można ustawić na funkcję Auto Boost w ramach zsynchronizowanych grup GPU. Po włączeniu funkcji Auto Boost każda grupa procesorów graficznych zwiększy częstotliwość taktowania, jeśli tylko pozwoli na to zapas mocy. Grupa będzie synchronizować zegary ze sobą, aby zapewnić dopasowanie wydajności w całej grupie. Grupy można ustawiać w narzędziach NVIDIA DCGM.
Ze względu na charakter rynku konsumenckiego, produkty GeForce mają stosunkowo krótki cykl życia (zwykle nie dłużej niż rok między wydaniem produktu a końcem produkcji). Projekty, które wymagają dostępu do danego produktu w dłuższym czasie (np. takie, które mogą wymagać części zamiennych w przeciągu trzech lat po zakupie), powinny być z serii produktów przeznaczonych dla profesjonalnych zastosowań. Profesjonalne produkty GPU Data Center NVIDIA mają dłuższy okres eksploatacji i długoterminowe wsparcie ze strony producenta. Ponadto produkty przeznaczone na rynek profesjonalny przechodzą dokładniejszy proces testowania i sprawdzania podczas produkcji.
Gwarancja firmy NVIDIA na produkty GPU GeForce wyraźnie stwierdza, że produkty GeForce nie są przeznaczone do instalacji w serwerach. Uruchamianie kart GPU GeForce w serwerach może spowodować unieważnienie gwarancji. Z witryny producenta firmy NVIDIA odnośnie gwarancji: „Produkt objęty gwarancją jest przeznaczony tylko dla użytkowników końcowych i nie jest przeznaczony do komercyjnych wdrożeń w centrum przetwarzania danych i / lub przedsiębiorstwach. Wszelkie użycie Produktu do Użytku korporacyjnego powoduje unieważnienie tej gwarancji.”
Więcej informacji:
https://www.nvidia.com/object/manufacturer_warranty.html
https://www.pny.eu/legal/warranty/pl
https://warranty.pny.eu/terms.html