Preview

Труды Института системного программирования РАН

Расширенный поиск

Поддержка стандарта OpenMP 4.0 для архитектуры NVIDIA PTX в компиляторе GCC

https://doi.org/10.15514/ISPRAS-2016-28(4)-10

Аннотация

В статье описывается реализация стандарта OpenMP версии 4.0 для акселераторов NVIDIA PTX в компиляторе GCC. Особое внимание уделяется вопросам генерации корректного и эффективного кода для прагм OpenMP с учетом ограничений архитектуры PTX. Поскольку реализация опирается на существующую в GCC трансляцию OpenMP и интеграцию с библиотекой libgomp, для PTX реализованы вторичные программные стеки, позволяющие организовать общий для синхронной группы стек в глобальной памяти и передавать адреса на данные в таких стеках между нитями. Описывается схема организации выполнения одной OpenMP-нити в 32 синхронных потоках выполнения в PTX вне OpenMP SIMD-регионов за счет легковесной инструментации некоторых инструкций. Представлены результаты тестирования на микротестах и сравнение с реализацией стандарта OpenACC.

Об авторах

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


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


Список литературы

1. OpenMP Application Program Interface, 2013. (http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf)

2. GCC 4.9 Release Series, 2014. (https://gcc.gnu.org/gcc-4.9/changes.html)

3. Parallel Thread Execution ISA, 2016. (http://docs.nvidia.com/cuda/parallel-thread-execution/)

4. S. Gray. Assembler for NVIDIA Maxwell architecture, 2016 (https://github.com/NervanaSystems/maxas)


Рецензия

Для цитирования:


Монаков А.В., Иванишин В.А. Поддержка стандарта OpenMP 4.0 для архитектуры NVIDIA PTX в компиляторе GCC. Труды Института системного программирования РАН. 2016;28(4):169-182. https://doi.org/10.15514/ISPRAS-2016-28(4)-10

For citation:


Monakov A.V., Ivanishin V.A. Implementing OpenMP 4.0 for the NVIDIA PTX architecture in GCC compiler. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2016;28(4):169-182. (In Russ.) https://doi.org/10.15514/ISPRAS-2016-28(4)-10



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)