RUS  ENG
Полная версия
ЖУРНАЛЫ // Вестник Южно-Уральского государственного университета. Серия «Вычислительная математика и информатика» // Архив

Вестн. ЮУрГУ. Сер. Выч. матем. информ., 2013, том 2, выпуск 4, страницы 28–43 (Mi vyurv107)

Информатика, вычислительная техника и управление

Kernelgen – прототип распараллеливающего компилятора C/Fortran для GPU NVIDIA на основе технологий LLVM

Н. Н. Лихогрудa, Д. Н. Микушинb

a МГУ им. М.В. Ломоносова (Москва, Российская Федерация)
b Институт информатики Университета Лугано (Швейцария)

Аннотация: Проект KernelGen (http://kernelgen.org/) имеет цель создать на основе современных открытых технологий компилятор Fortran и C для автоматического портирования приложений на GPU без модификации их исходного кода. Анализ параллелизма в KernelGen основан на инфраструктуре LLVM/Polly и CLooG, модифицированной для генерации GPU-ядер и alias-анализе времени исполнения. PTX-ассемблер для GPU NVIDIA генерируется с помощью бекенда NVPTX. Благодаря интеграции LLVM-части с GCC с помощью плагина DragonEgg и модифицированного компоновщика, KernelGen способен, при полной совместимости с компилятором GCC, генерировать исполняемые модули, содержащие одновременно CPU- и GPU-варианты машинного кода. В сравнительных тестах с OpenACC-компилятором PGI KernelGen демонстрирует большую гибкость по ряду возможностей, обеспечивая при этом сравнимый или до 60% более высокий уровень производительности.

Ключевые слова: GPU, LLVM, OpenACC, JIT-компиляция, выпуклый анализ.

УДК: 004.4’422, 004.432.2, 004.4’418, 51-37

Поступила в редакцию: 08.06.2013

DOI: 10.14529/cmse130403



© МИАН, 2024