Finalna wersja pakietu Nvidia CUDA 5 do pobrania
Przyspieszanie aplikacji procesorami graficznymi
Nvidia udostępniła finalną wersję pakietu programistycznego CUDA 5. Jest to nowa wersja najpopularniejszej platformy do tworzenia oprogramowania wykorzystującego obliczenia równoległe, a także do akceleracji aplikacji naukowych i technicznych za pomocą procesorów graficznych.
Koncern Nvidia chwali się, że platforma Nvidia CUDA została pobrana już ponad 1,5 miliona razy i obsługuje ponad 180 aplikacji naukowych, technicznych i komercyjnych. Dodatkowo model programowania CUDA jest najpopularniejszym rozwiązaniem dla programistów pragnących wykorzystać akcelerację obliczeń z wykorzystaniem procesorów graficznych w tworzonych projektach.
Producent postanowił wykorzystać tą popularność i stworzył piątą odsłonę platformy CUDA, która ułatwia i przyspiesza programowanie aplikacji wspomaganych przez procesory graficzne. Nowy pakiet obsługuje funkcje dynamicznych obliczeń równoległych, biblioteki wywoływane przez procesory graficzne, technologię Nvidia GPUDirect dla RDMA (zdalnego i bezpośredniego dostępu do pamięci), a także zawiera zintegrowane środowisko programistyczne (IDE) Nvidia Nsight Eclipse Edition.
Firmy z przemysłu obronnego i lotniczego są świadome korzyści, jakie zapewnia akceleracja aplikacji na procesorach graficznych obsługujących CUDA – szczególnie przy przetwarzaniu Nvidia publikuje pakiet CUDA 5 w wersji finalnej obrazów, materiałów wideo i danych pobieranych z czujników takich jak radar.
Według Dustina Franklina, inżyniera aplikacji pracujących pod kontrolą graficznych procesorów obliczeniowych (GPGPU) w firmie GE Intelligent Platforms działającej w Charlottesville w stanie Wirginia, „CUDA 5 jest dla nas przełomową technologią. Wiele użytkowanych przez nas aplikacji wymaga strumieniowania danych płynących z czujników bezpośrednio do procesorów graficznych z bardzo niewielkim opóźnieniem, dlatego obsługa technologii GPUDirect dla RDMA w nowych procesorach graficznych opartych na architekturze Kepler jest bardzo ważną funkcją dla naszych klientów. Zintegrowaliśmy już obsługę wielu niestandardowych czujników i jesteśmy bardzo zadowoleni z uzyskanych wyników”.
Nvidia CUDA 5 oferuje możliwość pełnego wykorzystania potencjału kart graficznych Nvidia – w tym także najnowszych konstrukcji, które bazują na architekturze Kepler. Nowa platforma wprowadza następujące udoskonalenia:
Dynamiczne przetwarzanie równoległe – akceleracja nowych algorytmów na procesorach graficznych. Wątki uruchomione na procesorach graficznych mogą dynamicznie tworzyć następne nowe wątki, umożliwiając procesorowi graficznemu dostosowanie się do danych. Funkcja dynamicznego przetwarzania równoległego minimalizuje ilość przesyłanych danych między procesorem graficznym a procesorem centralnym, znacznie upraszczając programowanie równoległe. Opisywana funkcja umożliwia też akcelerowanie szerszego zestawu popularnych algorytmów na procesorach graficznych, stosowanych w aplikacjach wykorzystujących adaptacyjne siatki numeryczne i obliczenia dynamiki płynów.
Biblioteki wywoływane przez procesor graficzny – możliwość stworzenia zewnętrznego ekosystemu. Nowa biblioteka CUDA BLAS umożliwia programistom wykorzystywanie funkcji dynamicznego przetwarzania równoległego we własnych bibliotekach wywoływanych przez procesor graficzny. Programiści mogą tworzyć wtyczki interfejsów programistycznych (API), które mogą służyć do rozbudowy funkcjonalności jąder, umożliwiając wdrożenie wywołań zwrotnych na procesorze graficznym i dostosowanie funkcjonalności zewnętrznych bibliotek wywoływanych przez procesor graficzny. Funkcja „łączenia obiektów” zapewnia wydajny i dobrze znany proces tworzenia dużych aplikacji dla procesorów graficznych, umożliwiając kompilowanie wielu plików źródłowych platformy CUDA do kilku oddzielnych plików obiektów i łączenie ich z większymi aplikacjami oraz bibliotekami.
Obsługa technologii GPUDirect dla RDMA – minimalizuje wąskie gardła w pamięci systemu. Technologia GPUDirect pozwala na nawiązanie bezpośredniej komunikacji pomiędzy procesorami graficznymi i innymi urządzeniami PCI-E, zapewniając bezpośredni dostęp do pamięci kartom interfejsów sieciowych i kartom graficznym. GPUDirect znacząco zmniejsza również opóźnienie działania polecenia MPISendRecv między poszczególnymi węzłami procesorów graficznych w klastrze, a w konsekwencji zwiększa ogólną wydajność aplikacji.
Nvidia Nsight Eclipse Edition – szybkość i łatwość generowania kodu CUDA. Nvidia Nsight Eclipse Edition umożliwia programowanie, debugowanie i profilowanie aplikacji wykorzystujących procesory graficzne w popularnym interfejsie IDE opartym na Eclipse, przeznaczonym dla systemów Linux i Mac OS X. Zintegrowany edytor języka CUDA i próbki kodu CUDA przyśpieszają generowanie własnego kodu aplikacji CUDA, a funkcja automatycznej refaktoryzacji kodu umożliwia łatwe przenoszenie pętli wykorzystujących procesory centralne do jądra CUDA. Zintegrowany, zaawansowany system analizy zawiera narzędzia do automatycznego sprawdzania wydajności, a także przewodnik, za pomocą którego programista może naprawić wąskie gardła w kodzie, wykonując odpowiednie czynności krok po kroku. Funkcja wyróżniania składni pozwoli z łatwością odróżnić kod przeznaczony dla procesorów graficznych od kodu dla procesorów centralnych.
Warto również wspomnieć, iż firma Nvidia stworzyła bezpłatne internetowe centrum zasobów dla programistów CUDA, dostępne pod tym adresem. Witryna zawiera najnowsze informacje na temat platformy CUDA i powiązanego z nią modelu programistycznego, a także zapewnia dostęp do pełnej dokumentacji CUDA i technologii, w tym narzędzi, próbek kodu, bibliotek, interfejsów aplikacji i przewodników dotyczących optymalizowania i programowania aplikacji. Dzięki takiemu rozwiązaniu programiści mogą lepiej wykorzystać potencjał obliczeń równoległych realizowanych za pomocą technologii CUDA.
Kliknij, aby pobrać pakiet programistyczny Nvidia CUDA 5
Źródło: Nvidia, ComputerBase
Komentarze
35Obsługa samego CUDA przez aplikacje to złe wieści dla konsumentów.