Открыт код Rootbeer, компилятора байткода Java в представление для выполнения на GPU

12 августа 2012 года

В рамках проекта Rootbeer GPU Compiler подготовлен открытый компилятор, позволяющий разработчикам программировать GPU на языке Java или организовать выполнение существующего Java кода с задействованием GPU. Принцип работы Rootbeer сводится к трансляции байткода Java в формат CUDA-приложения, выполняемого с использованием GPU. Код Rootbeer распространяется под лицензией MIT. Проект разработан при поддержке Национального научного фонда США.

В отличие от Java-биндингов для CUDA и OpenCL, Rootbeer не требует от разработчика преобразования сложных иерархий объектов в набор примитивных типов и отдельного написания GPU-ядра на CUDA или OpenCL. Rootbeer позволяет автоматически и в прозрачном режиме преобразовать произвольную иерархию Java-объектов в инструкции GPU и обеспечить написание GPU-ядра целиком на Java. Возможность автоматической генерации кода CUDA на основании произвольного кода Java обеспечена благодаря использованию методов статического анализа байткода Java. Статический анализ выполняется с использованием наработок проекта Soot (Архивная копия от 28 декабря 2008 на Wayback Machine).

Из не поддерживаемых в Rootbeer возможностей Java отмечаются рефлексия, нативные методы, засыпание в режиме мониторинга, динамическое обращение к методам. На стадии разработки находится код для обеспечения работы сборщика мусора. С позиции производительности, многое зависит от типов решаемых задач. Например, в тестах на умножения матриц высокой размерности и подбор элементов ряда Фурье, Rootbeer позволил ускорить выполнение программ в 67 раз и 58 раз, но в тесте наложения фильтра на изображение наблюдалось замедление в 3.8 раза.

С практической стороны использование сводится к трансляции Java-кода в представление, задействующее вычисления на стороне GPU: "java -jar Rootbeer.jar InputJar.jar OutputJar.jar". После чего преобразованный jar-архив может быть запущен как обычная программа: "java -jar OutputJar.jar".

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Открыт код Rootbeer, компилятора байткода Java в представление для выполнения на GPU», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.