Karty graficzne vGPU w XenApp/XenDesktop – Część I

Przez długi czas karty graficzne kojarzone były głównie z komputerami stacjonarnymi. Kto z nas nie kupował nowej GPU tylko po to, żeby móc zagrać w ulubioną strzelankę czy przygodówkę. Trochę minęło zanim dedykowane układy graficzne trafiły pod strzechy serwerów.

grid-0

Wszystko zmieniło się parę lat temu, gdy postanowiono wykorzystać możliwości karty GPU do obliczeń akcelerowanych. Akcelerowane obliczenia na układach GPU to wykorzystanie procesora graficznego, wspólnie z jednostką CPU do akceleracji obliczeń w aplikacjach naukowych, analitycznych, inżynierskich, konsumenckich i biznesowych. Układy GPU przyspieszają działanie aplikacji na wielu rozmaitych platformach, a jedne z ważniejszych zalet ich wykorzystania to:

  • Obliczenia akcelerowane
  • Przyspieszenie działania aplikacji
  • Odciążenie procesora
  • Obniżenie kosztów (licencjonowanie per CPU)
W jaki sposób układy GPU akcelerują działanie aplikacji

Obliczenia akcelerowane na układach GPU oferują dużą wydajność aplikacji dzięki przejęciu przez układ GPU złożonych obliczeniowo fragmentów kodu, podczas gdy pozostała część aplikacji nadal jest wykonywana przez procesor. Z punktu widzenia użytkownika aplikacja działa po prostu znacznie szybciej.

grid-1

Układ CPU w porównaniu do GPU

Prostym przykładem, aby zrozumieć różnicę między układem CPU i GPU, jest porównanie ich sposobu przetwarzania zadań. Jednostka CPU składa się z kilku rdzeni zoptymalizowanych pod kątem sekwencyjnego przetwarzania szeregowego, natomiast masowo równoległa architektura jednostki GPU składa się z tysięcy mniejszych, bardziej efektywnych rdzeni zaprojektowanych z myślą o przetwarzaniu wielu zadań jednocześnie. Układy GPU posiadają tysiące rdzeni w celu efektywnego przetwarzania zadań równoległych.

grid-2

Poniższy link zawiera ciekawe porównanie procesora i karty graficznej:

https://www.youtube.com/watch?v=-P28LKWTzrI

Które aplikacje pozwalają na wykorzystanie kart graficznych?

Tak jak wspomnieliśmy wcześniej nie wszystkie aplikacje są napisane w sposób, który pozwala na wykorzystanie tysięcy rdzeni układu GPU do przetwarzania danych. Jednak wbrew powszechnemu myśleniu lista tych aplikacji jest dosyć długa. Firma NVIDIA przygotowała listę dostępną pod poniższym linkiem:

http://www.NVIDIA.pl/content/tesla/pdf/gpu-accelerated-applications-for-hpc.pdf

Dodatkowo oprócz wymienionych tam aplikacji możemy wykorzystać moc obliczeniową układu GPU do przyspieszenia działania:

  • Pakietu biurowego Microsoft Office
  • Przeglądarek internetowych
  • Aplikacji opartych o HTML5
Karty graficzne w Citrix XenApp 6.5

Citrix XenApp 6.5 pozwala na wykorzystanie karty graficznej w trybie GPU-passthrough. Oznacza to że hypervisor przypisuje do konkretnej maszyny wirtualnej z zainstalowanym Citrix XenApp 6.5 fizyczny układ GPU. Tym samym pozwala na akcelerację obliczeń i zwiększenie wydajności aplikacji publikowanych dla użytkowników końcowych. Aby karta graficzna mogła być wykorzystywana przez wszystkich użytkowników połączonych sesją ICA do serwera konieczne jest zainstalowanie na nim pluginu XenApp 6.5 OpenGL Sharing Add-On. Dużą zaletą jest możliwość hostowania maszyn wirtualnych na dowolnym hypervisorze:

  • VMware ESXi
  • Citrix XenServer
  • Microsoft Hyper-V

Największa wada tego rozwiązania to ograniczona liczba wirtualnych maszyn, do których można przypisać fizyczny układ graficzny. Ma to oczywiście związek z ograniczoną liczbą układów GPU na karcie graficznej zainstalowanej w serwerze.

Karty graficzne NVIDIA Grid

Firma NVIDIA wprowadziła na rynek karty graficzne pozwalające na wirtualizację układów graficznych i przypisanie wirtualnej karty vGPU do wielu maszyn wirtualnych hostowanych na serwerze z zinstalowaną kartą NVIDIA Grid K1 lub K2. Największe zalety tego rozwiązania to:

  • Dedykowane współdzielenie sprzętowej akceleracji przez układ GPU pomiędzy wieloma wirtualnymi maszynami.
  • Cechy i możliwości aplikacji oraz ich kompatybilność są dokładnie takie same jak byłyby w przypadku korzystania z komputera przy biurku.
  • Komendy graficzne każdej maszyny wirtualnej są przekazywane bezpośrednio do układu GPU, bez tłumaczenia ich przez hypervisor.
  • Pozwala to układowi GPU na zachowanie pełnej wielozadaniowości, zapewniając tym samym najlepszą wydajność współdzielonej wirtualizowanej grafiki.

Poniższy rysunek pokazuje w jaki sposób karty NVIDIA Grid pozwalają na przypisanie karty vGPU do maszyny wirtualnej.

grid-4

Obecnie na rynku dostępne są 2 modele kart NVIDIA Grid GPU: K1 i K2. Porównanie obu modeli przedstawiają poniższe tabele:

grid-5

grid-6

Na rynku dostępna jest szeroka gama platform sprzętowych pozwalających wykorzystać zasoby kart NVIDIA Grid. Pełna lista dostępna jest pod adresem:

http://www.NVIDIA.pl/object/buy-NVIDIA-grid-pl.html

Już w kolejnej części powiemy o tym jak skonfigurować kartę NVIDIA Grid na platformie XenServer, a w kolejnym jak to przetestować przy użyciu oprogramowania Login VSI. Zapraszamy i czekamy na komentarze!