Институт системного программирования им. В.П. Иванникова РАН


Поддержка переноса вычислений на акселераторы NVIDIA в реализации OpenMP 4 в компиляторе GCC

Начиная с версии 4.0, стандарт OpenMP, предоставляющий набор расширений-прагм для написания параллельных программ, содержит поддержку для переноса части вычислений из основной программы на специализированные акселераторы, которые обычно имеют отдельную оперативную память и оптимизированную для массивно-параллельных расчетов архитектуру. В реализации OpenMP в компиляторе GCC есть поддержка выноса расчетов на акселераторы Xeon Phi; с некоторыми ограничениями возможно также использование HSA-акселераторов. Поддержка выноса на NVIDIA-акселераторы в GCC была реализована для OpenACC. Для поддержки всего многообразия функциональности OpenMP на NVIDIA-акселераторах нами была портирована библиотека libgomp, добавлена новая модель кодогенерации для архитектуры NVPTX в GCC, и добавлены новые стратегии преобразования OpenMP SIMD-прагм для SIMT-архитектур. Использованные подходы были представлены на конференциях ISPRAS Open 2015 и GNU Cauldron 2016.

Статьи и доклады на конференциях

Alexander Monakov. OpenMP Ooading for the NVPTX target in GCC. Доклад на международной конференции GNU Tools Cauldron 2016.

Разработчик/участник

Компиляторные технологии

Перейти к списку всех технологий