Tesla

  • CUDA I OBLICZENIA NA GPU
  • APLIKACJE WYKORZYSTUJĄCE GPU
  • JEDNOSTKI GPU DLA SERWERÓW I STACJI ROBOCZYCH
Czym są obliczenia na GPU?
Divider

Obliczenia akcelerowane układami GPU rewolucjonizują
dziedzinę obliczeń o wysokiej wydajności (HPC)

Akcelerowane obliczenia rewolucjonizują dziedzinę obliczeń o wysokiej wydajności (HPC). Powszechnie przyjęło się, że na chwilę obecną systemy z akceleratorami oferują najwyższą wydajność i najbardziej efektywne energetycznie obliczenia w dziedzinie HPC. Zapowiedziane ostatnio przez Departament Energii Stanów Zjednoczonych superkomputery Summit i Sierra podkreślają jak kluczową rolę w dążeniach branży do wprowadzenia obliczeń eksaskalowych odgrywają akceleratory.

Aby ułatwić ocenę potencjalnych opcji w akcelerowanych obliczeniach chcielibyśmy podzielić się niektórymi faktami, z pominięciem obietnic i szumu reklamowego. W szczególności twierdzeń, że w porównaniu do układów GPU akcelerator Xeon Phi firmy Intel może oferować możliwą do przyjęcia wydajność w aplikacjach (przez zwykłe rekompilowanie kodu i uruchomienie go na Phi) czy też, że optymalizacja wydajności jest łatwiejsza na Phi niż na GPU – które nie są po prostu oparte na faktach.

 
 
FAKT: Układ GPU jest znacząco szybszy niż Xeon Phi firmy Intel
          w prawdziwych aplikacjach HPC.
Ponad dwa razy szybciej niż Xeon Phi w kluczowych aplikacjach naukowych.
 
Jednostka GPU NVIDIA jest do czterech razy szybsza niż Xeon Phi

W obliczeniach o wysokiej wydajności najważniejsza jest wydajność aplikacji i układy GPU udowodniły, że oferują nadzwyczajną wydajność w porównaniu do jednostek CPU. W pokazanych na powyższym wykresie aplikacjach, reprezentujących różne obciążenia związane z obliczeniami naukowymi, jednostki GPU są od 2,5 do 7 razy szybsze niż jednostki CPU. Pomimo tego, że jednostki Xeon Phi firmy Intel można zoptymalizować, aby ich wydajność była wyższa od jednostek CPU, to i tak wydajność układów GPU jest średnio wyższa od 2 do 5 razy niż wydajność najnowocześniejszego rozwiązania Knights Corner.

Organizacja Aplikacja obliczeniowa Przewaga szybkości GPU względem Xeon Phi
Tokyo Institute of Technology CFD Diffusion 2,6x
Xcelerit Monte-Carlo LIBOR Swap Pricing 2,2x - 4x
Georgia Tech Synthetic Aperture Radar 2,1x
CGGVeritas Reverse Time Migration 2x
Paralution BLAS & SpMV 2.0x
Uniwersytet Wisconsin-Madison WRF (Prognozowanie pogody) 1.8x
Uniwersytet Erlangen-Nuremberg Obrazowanie medyczne - przyspieszenie rekonstrukcji obrazu 3D 7x
Uniwersytet Techniczny w Delft Badania nad lekami 3x
Niezależne wyniki pokazały, że jednostki GPU są ponad dwa razy szybsze niż Xeon Phi.(Zaktualizowano w styczniu 2014)
Aktualnie prawie 200 aplikacji obliczeniowych z szerokiego zakresu dziedzin akcelerowane jest układami GPU.
FAKT: „Rekompiluj i uruchom” na Xeon Phi w rzeczywistości spowalnia
          działanie Twojej aplikacji.
Twierdzenie, że twórcy oprogramowania mogą po prostu „rekompilować i uruchomić” aplikacje na Xeon Phi firmy Intel, bez żadnych zmian w kodzie swojej jednostki CPU, jest pociągające lecz wprowadza w błąd. Ostateczna wydajność jest zazwyczaj znacznie niższa niż wydajność jednostki CPU, będąc dosłownym zaprzeczeniem akceleracji.
„Rekompiluj i uruchom” na jednostce Xeon Phi spowalnia działanie aplikacji
: Prosta metoda „rekompiluj i uruchom” na Phi działa (czasami), lecz kody działają znacznie wolniej niż na jednostce CPU. Szczegóły dotyczące systemu i konfiguracji2

 
Podczas gdy prosta rekompilacja do uruchomienia na Phi może działać z wieloma kodami, wykonanie jej obniża wydajność aplikacji w porównaniu do jej działania na jednostce CPU, w niektórych przypadkach nawet do pięciu razy jak pokazano powyżej.

„Rekompiluj i uruchom” napotyka szereg wyzwań technicznych, co opisano w blogu „No Free Lunch”, włącznie z prawem Amdahla w przypadku szeregowych części kodu. Ze względu na słabą wydajność szeregową rdzeni Xeon Phi (opartych na starym projekcie Pentium) w porównaniu do nowoczesnych rdzeni jednostek CPU, szeregowe części kodu uruchomionego natywnie na Xeon Phi mogą działać znacznie wolniej.

W praktyce, najpierw programista musi popracować przy rekompilacji kodu na Xeon Phi, a następnie włożyć spory wysiłek w refaktoryzację i optymalizację kodu by zwiększyć wydajność - tylko po to, aby zyskać wydajność porównywalną z jednostkami CPU.

W końcu trochę czasu zabiera też wyodrębnienie równoległości w kodzie, w zależności od tego czy chcesz akcelerować na Xeon Phi, czy na układzie GPU. W najlepszym wypadku „rekompiluj i uruchom” jest umiarkowanie dogodnym pierwszym krokiem dla programistów; w najgorszym wypadku zaś jest to atrakcyjna deklaracja przynosząca rozczarowanie.
FAKT: Programowanie dla GPU i Xeon Phi wymaga podobnego wysiłku, lecz
          rezultaty są znacząco lepsze na GPU.
Te same techniki optymalizacji. Ten sam wysiłek programisty. Dwa razy szybsza akceleracja na GPU.
Method GPU Phi
Libraries CUDA Libraries + others Intel MKL + others
Directives OpenACC OpenMP + Phi Directives
Native Programming Models CUDA Vector Intrinsics
Programiści korzystają z bibliotek, dyrektyw i rozszerzeń języka do programowania akceleratorów i optymalizacji w celu uzyskania jak największej wydajności.

Jednostki GPU i Xeon Phi firmy Intel mogą się różnić pod niektórymi względami, lecz łączy je to, że są procesorami równoległymi. Programiści muszą włożyć podobny wysiłek i użyć podobnych technik optymalizacji by uwidocznić ogromne ilości równoległości, czy będzie to Phi czy układ GPU.

Jak widać w tabeli powyżej, programista korzysta z tych samych trzech metod do akceleracji kodu - bibliotek, dyrektyw i rozszerzeń języka, jak CUDA C dla układów GPU czy dyrektyw wektorowych dla Xeon Phi.

Skala wysiłku programistycznego dla Phi i układów GPU jest bardziej zbliżona niż ludziom się wydaje.

Poniżej, kod jądra dla N-ciał pokazuje, że wymagane są porównywalne techniki optymalizacji i ilość pracy do optymalizacji dla obu akceleratorów. Podczas gdy zmiany kodu są praktycznie te same, wydajność układu GPU jest znacząco wyższa niż Xeon Phi. Pobierz przykład optymalizacji.
 
Jednostka GPU Tesla K20 jest 11 razy szybsza niż Xeon Phi
Proste porównanie kodu dla n-ciał pokazuje, że muszą być użyte podobne techniki optymalizacji, lecz jednostka GPU jest znacząco szybsza. Szczegóły dotyczące systemu i konfiguracji3
 
 
 

Kod można łatwo przenieść, lecz to co możesz zrobić w CUDA by zwektoryzować kod nadal trzeba zrobić dla Phi

Dr. Karl Schultz
Dyrektor Wydziału Aplikacji Naukowych w Centrum Zaawansowanych Technik Obliczeniowych stanu Teksas (TACC)
Źródło: HPCWire, 17 maja 2013

Nasze kody (źródłowe) GPU są dość podobne do kodów procesora Xeon Phi, za wyjątkiem zastąpienia operacji SIMD operacjami SIMT

 

Rezultaty otrzymane przy użyciu procesora Xeon Phi firmy Intel były zaskakująco rozczarowujące… Stworzenie rozwiązania o sensownej wydajności ze względu na dopracowywanie wektoryzacji zabrało nam sporo czasu, chociaż mówi się, że procesory Xeon Phi łatwo programować

„O ile łatwo uruchomić program na jednostkach Xeon Phi, to jest mi o wiele łatwiej osiągnąć wysoką i stałą wydajność w zastosowaniach korzystających z metod Lattice Boltzmanna dzięki technologii CUDA i układom GPU firmy NVIDIA”.

Dr Sebastiano Fabio Schifano, Wydział Matematyki i Informatyki - Uniwersytet w Ferrarze

Uświadomienie sobie tych faktów powoduje lepsze zrozumienie w kwestii akcelerowanych obliczeń. Obecnie układy GPU oferują dwukrotnie wyższą wydajność przy zasadniczo identycznym wysiłku programisty. Układy GPU są logicznym wyborem do akcelerowania kodu równoległego. Może to częściowo tłumaczyć dlaczego w tym roku badacze naukowi ogłaszali publikacje dziesięciokrotnie częściej w związku z układami GPU niż miało to miejsce w przypadku Xeon Phi firmy Intel.4 A także to, że obecnie układy GPU firmy NVIDIA preferowane są w systemach HPC w stosunku 20:1 do Xeon Phi firmy Intel.5

 

Przypisy dotyczące konfiguracji testowych:
AMBER: SPFP-Cellulose_production_NPT, 1x E5-2697 v2 + Xeon Phi 7120P, 1x E5-2697 v2 @ 2,70GHz + Tesla K40.
MiniMD: KokkosArray - siły LJ, 864k atomów, podwójna precyzja, 2x Xeon E5-2667 + Xeon Phi 7120, 2x Xeon E5-2667 + Tesla K40.
Monte Carlo RNG DP: wycena opcji europejskich, 2x procesor Intel® Xeon® E5-2697 v3 + GPU Tesla K40, firma Intel dostarczyła wyniki wydajności jednostki Xeon Phi na swojej stronie internetowej.
tHogbomClean: 2x Xeon E5-2697 v2 + Xeon Phi 7120, 2x Xeon E5-2697 v2 + Tesla K40c.
Binomial Options SP: 2x procesor Intel® Xeon® E5-2697 v3 + GPU Tesla K40 , firma Intel dostarczyła wyniki wydajności jednostki Xeon Phi na swojej stronie internetowej.
NAMD: APOA1, 2x Xeon E5-2697 v2 + Xeon Phi 7120, 2x Xeon E5-2697 v2 + Tesla K40.
STAC-A2: Warm Greek, 2 jednostki CPU E5-2699 v3 + Xeon Phi 7120A, 2x Intel Xeon E5-2690 v2 + Tesla K80.

 
 
CUDA i obliczenia na GPU

Czym są obliczenia na GPU?
Fakty związane z obliczeniami
na układach GPU

Programowanie układów GPU
Architektura GPU Kepler
Obliczenia w chmurze
z użyciem GPU

Skontaktuj się z name

Czym jest CUDA?
Witryna CUDA
Szkolenia CUDA
Szkolenia CUDA
Centra szkoleniowe CUDA

Aplikacje wykorzystujące GPU

Aplikacje wykorzystujące GPU Tesla
Dyrektywy GPU OpenACC
Studia przypadku dotyczące
rozwiązań Tesla

Jednostki GPU Tesla dla
serwerów i stacji roboczych

Dlaczego warto wybrać
rozwiązania Tesla

Rozwiązania serwerowe Tesla
Rozwiązania Tesla dla
stacji roboczych

Kup jednostki GPU Tesla

Wiadomości i informacje
dotyczące jednostek Tesla

Materiały informacyjne o
produktach Tesla

Cechy oprogramowania Tesla
Narzędzia programistyczne Tesla
Badania NVIDIA
Powiadomienia Tesla

Znajdź nas Online

NVIDIA Blog Blog NVIDIA

Facebook Facebook

Twitter Twitter

Twitch Twitch

YouTube YouTube