В GEGL появляется поддержка OpenCL

Скорость обработки в GIMP справедливо считается недостаточно высокой. Сейчас, когда GIMP постепенно переписывается на новом движке обработки GEGL, самое время задуматься о поддержке вычислений на GPU. Собственнно, именно этим разработчики и занимаются благодаря программе Google Summer of Code (GSoC).

История началась в 2009 году с первым проектом GSoC, реализованным Джерсоном Майклом Перпетуа (Jerson Michael Perpetua). В рамках этого проекта была сделана первоначальная работа по реализации рендеринга на GPU. По ряду причин написанный код не был доступен ни в одной из новых версий GEGL. Но этим дело, к счастью, не закончилось.

В этом году работу продолжил ещё один студент, Виктор Оливейра (Victor Oliveira), также работающий по программе Google Summer of Code. Взяв за основу работу Джерсона, он начал добавлять в GEGL поддержку OpenCL.

В отличие от проприетарных API вроде CUDA от компании NVidia, OpenCL является открытым стандартом, и в последнее время его поддержка всё чаще появляется в свободном программном обеспечении. OpenCL частично используется фоторедактором darktable для обработки фотографий, в Blender его использует новый модуль композитинга, а у LuxRender есть версия, использующая OpenCL для рендеринга трёхмерных сцен на GPU. Как вы понимаете, выбор был очевиден.

Позавчера Виктор опубликовал в своём блоге подробный и достаточно техническийотчёт о статусе своей работы. Если вас интересуют все подробности, настоятельно рекомендуем его почитать. Вкратце можно сказать следующее: многое уже работает, но всё ещё предстоит выполнить оптимизацию кода и портировать на OpenCL больше операций.

GEGL на GPU

Это достаточно сложный проект. Полагаем, никто не ждал от Виктора готовой оттестированной реализации за всего лишь три месяца. Но согласитесь, что это существенный шаг вперёд и, к тому же, в ногу со временем, ведь сейчас отрисовка и вычисления на GPU добавляются в программы для компьютера повсеместно. Например, в Photoshop рендеринг на GPU появился в версии CS4.

С учётом нынешних планов поддержка OpenCL в GIMP как приложении для конечных пользователей появится не раньше версии 3.0, где GIMP согласно текущим планам впервые начнёт более-менее полноценно использовать новый движок.

Add a comment