января 11, 2019


ПРЕД.

Глава 10. Специальные темы

10.2. Darktable и OpenCL

Для повышения производительности darktable может использовать процессор видеокарты (GPU), используя технологию OpenCL.

10.2.1. Предыстория

Обработка изображений с высоким разрешением - это сложная задача, требующая современного компьютера. Как с точки зрения требований к памяти, так и с точки зрения требований к мощности процессора, получение изображения наилучшего качества обычного объёма в 15, 20 или 25 мегапикселей может быстро привести к нехватке ресурсов компьютера.

Приложение darktable не является в этом исключением. Наше решение не рисковать качеством обработки, привело к тому, что все вычисления выполняются с числами с плавающей точкой в буфере 4х32бит. Это медленнее, чем "обычные" 8 или 16-битные целочисленные вычисления, но устраняет большинство проблем постеризации или потери информации.

Многое было оптимизировано, чтобы сделать darktable как можно быстрее. Если вы используете текущую версию darktable на современном компьютере, вы можете не заметить "медлительность". Тем не менее, есть условия и некоторые модули, в которых вы будете чувствовать (или слышать вой вашего процессорного вентилятора), как ваш "бедный" многоядерный процессор вынужден справляться с работой.

Именно здесь и появляется OpenCL. OpenCL позволяет нам использовать огромную мощь современных видеокарт. Требование компьютерных игр к отображению высокодетализированных 3D-миров в современных шутерах от первого лица способствовало развитию графических процессоров. Корпорации ATI, NVIDIA поставили огромную вычислительную мощность в свои GPU для удовлетворения этих требований. Результатом этого являются современные графические карты с высокопараллельными графическими процессорами для быстрого вычисления поверхностей и текстур с высокой частотой кадров.

Вы не геймер, и не пользуетесь этой мощностью? Тогда вы должны хотя бы использовать её в darktable! Для задач высокопараллельных вычислений с плавающей точкой современные графические процессоры намного быстрее, чем центральные процессоры. Это особенно верно, когда вы хотите сделать те же самые шаги обработки над миллионами элементов. Типичный случай: обработка изображений высокого разрешения.

Комментариев нет:

Отправить комментарий