A A A

Kompilatory PGI Accelerators


Począwszy od wydania PGI 16.10 wersje Community i Professional zawierają kompilatory PGI Accelerator™ Fortran i C99 wspierające platformy x64+NVIDIA uruchamiane na systemach Linux, Linux OpenPOWER oraz Windows. Kompilatory PGFORTRAN i PGCC Accelerator są wspierane na wszystkich systemach opartych na procesorach Intel i AMD x64 z CUDA NVIDIA GPUs.

Korzystając z kompilatorów PGI Accelerators programiści mogą przyspieszyć aplikacje na platformach x64+GPU poprzez dodanie dyrektyw OpenACC do istniejących programów napisanych w językach Fortran oraz C, a następnie rekompilację z odpowiednimi opcjami kompilatora.

Przykład mnożenia pętli macierzy w języku Fortran, zaznaczonej do skompilowania dla akceleratora.



Jak to działa

Do tej pory programiści C/C++ tworzący aplikacje dla akceleratorów graficznych musieli polegać na rozszerzeniach języka do swoich programów. Używanie procesorów graficznych z aplikacji języka Fortran było bardzo ograniczone. Programiści x64+GPU byli zmuszeni do tworzenia aplikacji na bardzo szczegółowym poziomie, ze zrozumieniem i wyszczególnieniem informacji o wykorzystaniu danych oraz do manualnego tworzenia sekwencji połączeń do zarządzania wszystkimi przepływami danych pomiędzy hostem x64 i procesorem graficznym GPU.

Kompilatory PGI Accelerators automatycznie analizują całą strukturę programu i danych, rozdzielają części aplikacji pomiędzy x64 CPU i procesor graficzny GPU zgodnie z określonymi dyrektywami użytkownika, a nastepnie definiują i generują optymalne odwzorowanie pętli w celu automatycznego korzystania z równoległych rdzeni, możliwości wątkowania sprzętu i wektorowych możliwości SIMD nowoczesnych procesorów graficznych. Oprócz dyrektyw i pragm określających regiony kodu lub funkcje, które nalezy przyspieszyć, kompilatory PGI Accelerators wspieraja dyrektywy użytkownika dające programiście precyzyjną kontrolę nad odwzorowaniem pętli, przydziałem pamięci i optymalizacją dla hierarchii pamięci GPU. Kompilatory PGI Accelerators generują jednolite x64+GPU pliki obiektowe i wykonywalne, które zarządzają całym mechanizmem przepływu danych "do" jak również "z" urządzeń GPU przy jednoczesnym wykorzystaniu wszystkich istniejących narzędzi po stronie hosta (linker, librarians, makefiles) i nie wymagają zmian istniejących standardów środowiska programowania HPC Linux/x64.



Więcej informacji na stronie www.pgroup.com