GT200 nie tylko grafika - nVIDIA czyni CUDA
22 maja 2008 roku, w Santa Clara (Kalifornia), w sercu Doliny Krzemowej, na kampusie NVIDII odbył się Editor's Day - konferencja, na którą zaproszeni zostali dziennikarze z całego świata. Była na niej pokazywana najnowsza karta graficzna GeForce GTX 280, ale nie tylko. Polskę reprezentował tam benchmark.pl.
Konferencja zaczęła się od prezentacji możliwości architektury GT200. NVIDIA pokazywała, że jej moc może być wykorzystana nie tylko w grach. W dzisiejszych czasach komputery wykorzystują więcej grafiki niż kiedykolwiek - do przeglądania zdjęć, kodowania filmów, a nawet do wyświetlania coraz bardziej skomplikowanych interfejsów użytkownika, takich jak w Windows Vista, czy Mac OS X Leopard. Dlatego, według NVIDII, w wielu zastosowaniach coraz bardziej liczy się GPU, a moc procesora głównego traci na znaczeniu.
Procesory graficzne takie jak GT200, co prawda zostały zaprojektowane do generowania wydajnej, trójwymiarowej grafiki, ale mogą się przydać również w innych zastosowaniach, takich jak symulacja fizyki, kompresja i dekompresja dźwięku, grafiki i video, czy obliczenia finansowe.
Dlatego NVIDIA stworzyła CUDA (skrót od Compute Unified Device Architecture) - interfejs sprzętowo-programowy, pozwalający na pisanie w języku C oprogramowania działającego na procesorze graficznym (GPU).
Procesory graficzne składają się bowiem z wielu jednostek obliczeniowych (można je porównać do uproszczonych rdzeni CPU), które jednocześnie zaprzęgnięte do wykonywania obliczeń są w stanie osiągnąć dużą wydajność. Właśnie z tego powodu, po skompilowaniu kompilatorem CUDA programów, które potrafią rozkładać swoją pracę na wiele wątków, wydajność przetwarzania wzrasta wielokrotnie.
Aplikacje CUDA do działania wymagają procesora z serii GeForce 8 lub nowszego i można je tworzyć pod Windows, Mac OS X i Linuxem. Pakiet CUDA SDK można ściągnąć ze strony NVIDII, w jego skład wchodzi kompilator, debugger i zestaw bibliotek. W chwili obecnej dostępne są już pierwsze wersje gotowych programów wykorzystujących CUDA, ale na rozbudowane pakiety oprogramowania wykorzystujące tę technologię trzeba jeszcze trochę poczekać.
Tony Tamasi, główny menedżer produktów GeForce, opowiadał o wydajności GeForce GTX 280 i jego 240 rdzeni w aplikacjach CUDA. Przy zastosowaniu CUDA i przerzuceniu obliczeń na GPU w specyficznych zastosowaniach zyskuje się wielokrotny wzrost wydajność. Pokazano bardzo praktyczny przykład - transkodowanie kilkuminutowego filmu w rozdzielczości HD z formatu AVI do H.264. Operacja ta, wykonywana przy pomoc iTunes, wykorzystującego wyłącznie CPU trwała ponad godzinę. Po uruchomieniu enkodera zoptymalizowanego przez NVIDIĘ i przekodowującego dane za pośrednictwem procesora graficznego GeForce GTX 280, cały proces zajął zaledwie kilka minut.
Pokazano również PicLens, plug-in do Firefoxa, Internet Explorera i Safari, służący do przeglądania zdjęć i filmów on-line przy pomocy spektakularnego, trójwymiarowego interfejsu użytkownika. Program ten już teraz można ściągnąć z Internetu, z tym, że na konferencji był on uruchomiony w płynniej działającej wersji wykorzystującej GPU. To kolejny przykład zastosowania CUDA i zaprzęgnięcia procesora graficznego do przetwarzania danych (tutaj: wyświetlania i dekodowania grafiki i video).
Najbardziej spektakularny przyrost prędkości osiągnięto w Folding@Home, programu służącego do liczenia sekwencji białek. Na GeForce GTX 280 działał 100 razy szybciej niż na czterordzeniowym procesorze Core 2 Quad.
NVIDIA prezentowała również przyszłe wersje znanych pakietów oprogramowania, przeznaczonych do obróbki grafiki i video. Wykorzystywały one GPU do wyświetlania i przetwarzania danych. W porównaniu do obecnych wersji, przyrost wydajności był wyraźnie widoczny.
Trzeba przy tym jeszcze raz podkreślić, że nie każdy program, skompilowany dla CUDA i uruchomiony na GPU, stanie się automatycznie demonem prędkości. Przyspieszenie może dotyczyć wyłącznie specyficznych fragmentów kodu, które da się wykonać równolegle. Programy wykorzystujące CUDA nie działają wyłącznie na GPU, niektóre operacje wciąż wykonywane są na procesorze głównym. Jednak i tak w specyficznych zastosowaniach przyspieszenie jest bardzo znaczące.
Na konferencji NVIDIA przedstawiła również swoją inicjatywę Optimized PC. Polega ona na współpracy z producentami komputerów tak, aby tworzyli oni konfiguracje sprzętowe, w których zachowana będzie równowaga wydajnościowa pomiędzy CPU i GPU. Chodzi o to, żeby nie instalować w komputerach szybkich CPU i wolnych kart graficznych, co chwili obecnej zdarza się nader często, lecz starać się zrównoważyć wydajność poszczególnych komponentów. Można to osiągnąć stosując nieco wolniejszy procesor, ale za to szybszą kartę graficzną, co pozytywnie przełoży się na wyższą wydajność całego systemu.
PhysX, Natural Motion i gry
Nie zapomniano o PhysX, oprogramowaniu służącemu do symulacji fizyki. Stworzyła je firma AGEIA, która została wykupiona przez NVIDIĘ. Jest to w chwili obecnej jedyne takie API, które może być uruchamiane nie tylko na CPU, ale również na GPU. W chwili obecnej NVIDIA jest bowiem w końcowej fazie portowania PhysX na CUDA - finalne sterowniki powinny być dostępne w ciągu kilku dni. PhysX jest w stanie symulować takie efekty fizyczne, jak poruszanie się materiałów, deformacje metalu, pola siłowe, czy naturalne zachowanie płynów. Na konferencji pokazywano kilka dem symulujących ruch i rozpryskiwanie się wody - nie były złe, ale do perfekcji moim zdaniem jeszcze trochę brakuje.
NVIDIA pochwaliła się swoją współpracą z brytyjską firmą Natural Motion, zajmującą się symulacją realistycznych ruchów postaci na potrzeby filmów i gier. Na konferencji pokazywano grę Backbreaker, czyli symulację footballu amerykańskiego, w której zawodnicy za każdym razem poruszali się inaczej. Natural Motion nie opiera się bowiem na odtwarzaniu raz zaprogramowanych ruchów, lecz sam, w czasie rzeczywistym uczy się i zapamiętuje nowe zachowania.
Efektem są niepowtarzalne i realistyczne ruchy postaci - w Backbreakerze były one bardzo obiecujące, choć gra skupiała się w większym stopniu na ruchach, niż na samej grafice.
O ile do grafiki Backbreakera można było mieć pewne zastrzeżenia, o tyle pokazana na konferencji beta wersja Far Cry 2 rzucała na kolana. Wyobraźcie sobie Crysisa z jeszcze lepszą grafiką, z dynamicznymi efektami pogodowymi, generowanym w czasie rzeczywistym proceduralnym niebem i zwiększoną interakcją gracza ze środowiskiem. Dynamiczna pogoda sprawia, że kiedy słońce w Far Cry 2 zachodzi za chmury, zaczyna coraz mocniej wiać wiatr, trawa i gałęzie drzew kołyszą się - zgodnie z kierunkiem, w którym wieje wiatr.
Po podpaleniu terenu miotaczem ognia okolica zaczyna się palić - zgodnie z prawami fizyki, w kierunku wiania wiatru. Do tego ogień i otoczenie wygląda bardzo ładnie (choć trawa mogłaby być jeszcze lepsza i bardziej naturalna). Całość robiła spore wrażenie, choć oczywiście po Crysisie niewiele jest już w stanie mnie zakoczyć.
Interesująco prezentowała się również gra Bionic Commando, kontynuacja wieloletniej serii, która zaczęła się na maszynach arcade jeszcze w 1987 roku. Na konferencji pokazano demo poziomu, na którym "bioniczny komandos" przedzierał się przez dżunglę, skacząc wśród zawieszonych pomiędzy gałęziami lin (jeśli widzieliście Indianę Jonesa 4, to możecie sobie wyobrazić, jak to wyglądało). Fizyka ruchów bogatera oraz otaczającej go przyrody symulowana była za pomocą PhysX i wyglądała zachęcająco, choć generalnie grafice daleko było do Far Cry 2.
Wywiad z inżynierami NVIDII
Nazajutrz, po konferencji miałem możliwość spotkać się z najważniejszymi osobami w NVIDII - między innymi Johnem Montrymem, głównym architektem projektującym chipy graficzne w NVIDII, czy też Dwightem Diericksem, odpowiadającym za sterowniki i oprogramowanie. Zadałem im kilka pytań:
benchmark: Dlaczego nie zaimplementujecie bardzo szybkiej pamięci eDRAM na chipie, jak ATI zrobiło to w XBOX 360 - moglibyście dzięki temu mieć darmowy anty-aliasing bez spadków wydajności.
John Montrym (główny architekt GPU): Zastanawialiśmy się nad tym i doszliśmy do wniosku, że bardziej efektywnie będzie wykorzystać powierzchnię chipu na elementy obliczeniowe niż na pamięć. eDRAM ma sens na konsolach, które mają ustawioną na sztywno rozdzielczość. My z kolei celujemy w użytkowników PC, którzy wykorzystują bardzo wysokie rozdzielczości. Projektując GPU zawsze zadajemy sobie pytanie o eDRAM i być może w przyszłości zmienimy podejście, ale obecnie uważamy, że lepszym podejściem jest to, które stosujemy obecnie. W GT200 mamy pamięć cache tam, gdzie ma to sens, w odpowiednich miejscach, ale są to małe ilości, aby mieć więcej miejsca na jednostki obliczeniowe.
Tony Tamasi (marketing produktów wizualnych): Jesteśmy w stanie osiągnąć niemal ten sam poziom wydajności, stosując algorytmy bezstratnej kompresji, tzw. Z-Compression. W kolejnych generacjach poprawiamy kompresję, dzięki czemu w każdej rozdzielczości jesteśmy w stanie oferować antyaliasing przy coraz mniejszym spadku wydajności.
benchmark: Dlaczego GT200 są produkowane w wymiarze technologicznym 65 nm, a nie 55 nm? Wielu użytkowników może być trochę zawiedziona tym faktem.
John Montrym: Tego typu decyzje są podejmowane na podstawie analizy wydajności i kosztów produkcji. GT200 ma bardzo dobrą efektywność i wydajność. Moglibyśmy zrobić go w 55 nm, ale wówczas koszty byłyby wyższe. W przyszłości zrobimy kości w 55 nm, ale teraz największy sens ma 65 nm.
Dzisiaj, kiedy zmniejszasz technologię produkcji, niekoniecznie oznacza to w rezultacie lepszy chip. Wchodzi tu w grę wydajność tranzystorów, pobór energii, liczba wyprodukowanych procesorów z wafla, wycieki energii oraz wiele innych czynników. Dlatego musimy zdecydować, które parametry poświęcić dla uzyskania przewagi w innych. Trzeba tutaj zachować pewien kompromis - w chwili obecnej przeskok na 55nm nie byłby dobrym rozwiązaniem.
benchmark: Kiedy wprowadzaliście GeForce, można było odnieść wrażenie, że procesor główny przestanie wpływać na prędkość generowania grafiki przez kartę graficzną. Teraz widać wyraźnie, że nawet współczesne GPU do wydajnej pracy potrzebują szybkich CPU. Czy w przyszłości faktycznie procesor główny straci na znaczeniu?
Drew Henry (główny menedżer ds. GPU): Nie mówiliśmy, że nie będziemy już potrzebować CPU. Dlatego między innymi stworzyliśmy niedawno program Optimized PC, który opiera się na przekonaniu, że przetwarzanie GPU musi iść w parze z przetwarzaniem CPU. Czterordzeniowy procesor przy konfiguracji tri-SLI jest ważny, ponieważ CPU musi być w stanie dostarczać dane odpowiednio szybko, tak aby karta graficzna była w stanie wykorzystać w pełni swoją moc. Z drugiej strony, dodawanie procesorów głównych często nie daje takich zysków, jak dodawanie procesorów graficznych. My chcemy zachować tutaj pewną równowagę.
benchmark: Czy wydajność procesora głównego wpływa na prędkość działania aplikacji CUDA?
Drew Henry: CUDA jest zaprojektowana tak, aby wycisnąć jak najwięcej mocy z komputera, zawierającego GPU. Niewątpliwie GPU jest najlepszym procesorem podczas używania wielowątkowych aplikacji CUDA, takich jak kompresja, czy kodowanie video. Jednak to, czy na danym systemie wydajność aplikacji CUDA uruchomionej na GPU będzie również zależna od mocy CPU, zależy od konkretnej aplikacji, od tego co robi i w jaki sposób została napisana.
benchmark: Czy Hybrid SLI i Hybrid Power zaczną być wspierane pod Windows XP?
Dwight Diericks (główny kierownik ds. oprogramowania): Cóż, lubimy XP i chcielibyśmy, aby działały pod tym systemem, ale Hybrid SLI i Hybrid Power to zupełnie nowe technologia, której implementacja w sterownikach zajmuje mnóstwo czasu. Zrobiliśmy to najpierw dla Visty i gdyby przeniesienie tego na XP było proste, nie byłoby problemu. Ale sterowniki graficzne dla XP tworzy się zupełnie inaczej, niż dla Visty. Podobnie jest zresztą z Linuxem.
benchmark: Z Linuxem? Czy to znaczy, że możemy spodziewać się w niedalekiej przyszłości sterowników Hybrid SLI i Hybrid Power pod ten system?
Dwight Diericks: Implementacja Hybrid Power w sterownikach dla Visty wiązała się z całym mnóstwem różnych komplikacji. Nie wiem, jak wyglądałoby to pod Linuxem.
benchmark: Jak widzicie rozwój Hybrid Power w przyszłości - czy ta technologia odniesie sukces?
Dwight: Można na to spojrzeć tak: już teraz mamy chip GT200, który w trybie idle wymaga jedynie 25W. W przyszłości technologie oszczędności energii będą dopracowywane i być może w końcu uda się stworzyć chip, który pod niskim obciążeniem będzie zużywał jedynie 1W. W pewnym sensie można więc myśleć o o Hybrid Power, jako o rozwiązaniu tymczasowym.
Inżynierom nVidii dziękujemy za wywiad i Was drodzy czytelnicy zapraszam do naszej recenzji GeForce GTX 280, którą na wskroś przetetestował Seba. Światowa premiera karty dziś o godzinie 15.oo