Основанные на GCC проекты JIT-компилятора и расширения, использующего GPU для вычислений
Дэвид Малколм (David Malcolm), активный разработчик GCC из компании Red Hat, опубликовал прототип библиотеки libgccjit.so с реализацией встраиваемого в приложения JIT-компилятора, использующего GCC в качестве бэкенда. Данная библиотека может быть динамически связана с интерпретаторами байткода и другими программами, которым необходима генерации машинного кода на лету, во время выполнения. Идея проекта состоит в том, что GCC собирается в форме позиционно-независимого кода, который присоединяется к библиотеке libgccjit.so, что позволяет обеспечить возможность выполнения GCC в одном процессе с генерируемым машинным кодом. Инициирование компиляции и выполнения откомпилированных на лету блоков кода производится приложением при помощи специально предоставленного библиотекой API. Первый прототип проекта поддерживает JIT-компиляцию кода на языке Си, но уже началась подготовка биндинга для языка Python.
Другим интересным проектом, является опубликованный разработчиками из компании Samsung модифицированный вариант GCC с интегрированной поддержкой стандарта OpenACC 1.0. Указанный вариант GCC даёт возможность сформировать исполняемый файл, позволяющий в процессе работы программы вынести выполнение некоторых вычислительных операций на плечи GPU.
© OpenNet