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

Авторы

  • Николай Николаевич Лихогруд Автор
  • Дмитрий Николаевич Микушин Автор

Аннотация

Проект 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% более высокий уровень производительности.

Биографии авторов

  • Николай Николаевич Лихогруд
    аспирант факультета вычислительной математики и кибернетики
  • Дмитрий Николаевич Микушин
    аспирант, ассистент

Опубликован

2014-03-31

Выпуск

Раздел

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