Активація OpenCL у Darktable
Використання OpenCL у Darktable вимагає, щоб ваш ПК був оснащений відповідною графічною картою та містив необхідні бібліотеки. Більшість сучасних відеокарт від NVIDIA, Intel або AMD мають повну підтримку OpenCL. Зазвичай компілятор OpenCL постачається як частина пропрієтарного графічного драйвера і використовується як динамічна бібліотека під назвою libOpenCL.so
. Ця бібліотека повинна знаходитися в папці, де її може знайти динамічний лінкер системи.
Коли Darktable запускається, він спершу спробує знайти та завантажити libOpenCL.so
, а в разі успіху перевірить, чи доступна відеокарта підтримується OpenCL. Щоб скористатися перевагами графічного процесора, для Darktable має бути доступна мінімально достатня кількість графічної пам’яті (від 1 ГБ). Якщо ця перевірка пройде, Darktable спробує налаштувати своє середовище OpenCL: контекст обробки потрібно ініціалізувати, конвеєр обчислення запустити, файли джерельного коду OpenCL (розширення .cl
) потрібно прочитати та скомпілювати, а також включені процедури (ядра OpenCL) потрібно підготувати для модулів Darktable. Якщо все це успішно завершується, підготовка завершена.
За замовчуванням підтримка OpenCL активується в Darktable, якщо всі вищевказані кроки були успішними. Якщо ви хочете її деактивувати, ви можете це зробити за допомогою Налаштування > Обробка > OpenCL. Цей параметр конфігурації буде неактивним, якщо ініціалізація OpenCL не вдалася.
Ви можете будь-коли вимкнути та ввімкнути підтримку OpenCL, це не вимагає перезапуску. Залежно від типу використовуваних вами модулів, ви помітите ефект як загальне прискорення під час інтерактивної роботи та експорту. Більшість модулів Darktable можуть скористатися перевагами OpenCL, але не всі модулі достатньо вимогливі, щоб це дало помітну різницю. Для того, щоб відчути реальну різницю, використовуйте такі модулі, як Дифузія / різкість та Знешумлення (профільоване).
Якщо вас цікавить статистика профілювання, ви можете запустити Darktable з параметрами командного рядка -d opencl -d perf
. Після кожного запуску конвеєра вам будуть показані подробиці часу обробки для кожного модуля плюс ще більш тонкий профіль для всіх використовуваних ядер OpenCL.
Окрім прискорення, ви не побачите ніякої різниці в результатах обробки між центральним і графічним процесором. За винятком деяких помилок округлення, результати мають бути однаковими. Якщо з якихось причин Darktable не вдається належним чином завершити обчислення графічного процесора, несправність зазвичай виявляється і Darktable автоматично (і прозоро) повертається до обробки центральним процесором.