января 14, 2019

darktable 2.4 > Специальные темы > Darktable и OpenCL > Настройки OpenCL в вашей системе

ПРЕД.

10.2. Darktable и OpenCL

10.2.4. Настройки OpenCL в вашей системе

Огромное разнообразие систем и заметные различия между поставщиками OpenCL и версиями драйверов не позволяют дать исчерпывающий обзор того, как настроить OpenCL. Мы можем привести только пример для драйвера NVIDIA версии 331.89 на Ubuntu 14.04. Мы надеемся, что это послужит вам отправной точкой и поможет решить возможные проблемы вашей конкретной установки.

Схема потока функций OpenCL выглядит следующим образом:

darktable -> libOpenCL.so -> libnvidia-opencl.so.1 -> kernel driver module(s) -> GPU

  • Darktable динамически загружает libOpenCL.so, системная библиотека должна быть доступна для динамического загрузчика системы (ld.so).
  • libOpenCL.so читает файл информации о поставщике (/etc/OpenCL/vendors/nvidia.icd), чтобы найти библиотеку, содержащую реализацию OpenCL для поставщика.
  • Реализаций OpenCL для поставщика является библиотека libnvidia-opencl.so.1 (которая в нашем случае является ссылкой на libnvidia-opencl.so.331.89).
  • libnvidia-opencl.so.1 налаживает взаимодействие с модулями ядра поставщика nvidia и с nvidia_uvm через файлы устройств /dev/nvidia0, /dev/nvidiactl и /dev/nvidia-uvm.

При запуске системы необходимо создать требуемые специальные файлы устройства (/dev/nvidia*). Если это не происходит в вашей системе по умолчанию, самый простой способ установить их и убедиться, что все модули загружены, установив пакет nvidia-modprobe. Вы можете получить его на сайте [http://packages.ubuntu.com/utopic/nvidia-modprobe]. (Прим. переводчика: данный путь настоящий момент времени не существует).

Учетная запись пользователя, которая хочет использовать OpenCL из darktable, должна иметь доступ на чтение и запись к специальным файлам устройства NVIDIA. В некоторых системах эти файлы допускают доступ по умолчанию для чтения и записи, что позволяет избежать установки разрешений, но может быть спорным с точки зрения безопасности системы. Другие системы предоставляют доступ только определённой группе пользователей, например, "video". В этом случае ваша учетная запись должна быть членом этой группы.

Подводя итог, пакеты, которые необходимо было установить в этом конкретном случае, были следующими:
  • nvidia-331 (331.89-0ubuntu1~xedgers14.04.2)
  • nvidia-331-dev (331.89-0ubuntu1~xedgers14.04.2)
  • nvidia-331-uvm (331.89-0ubuntu1~xedgers14.04.2)
  • nvidia-libopencl1-331 (331.89-0ubuntu1~xedgers14.04.2)
  • nvidia-modprobe (340.24-1)
  • nvidia-opencl-dev:amd64 (5.5.22-3ubuntu1)
  • nvidia-opencl-icd-331 (331.89-0ubuntu1~xedgers14.04.2)
  • nvidia-settings (340.24-0ubuntu1~xedgers14.04.1)
  • nvidia-settings-304 (340.24-0ubuntu1~xedgers14.04.1)
  • nvidia-libopencl1-331 (331.89-0ubuntu1~xedgers14.04.2)
  • nvidia-opencl-dev:amd64 (5.5.22-3ubuntu1)
  • nvidia-opencl-icd-331 (331.89-0ubuntu1~xedgers14.04.2)
  • opencl-headers (1.2-2013.10.23-1)

Список модулей ядра (связанных с NVIDIA), по сообщению команды lsmod:

NVIDIA
nvidia_uvm

Список специальных файлов (связанных с NVIDIA) устройств (ls -l /dev/nvidia*) должен выглядеть следующим образом:

crw-rw-rw- 1 root root 195, 0 Jul 28 21:13 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Jul 28 21:13 /dev/nvidiactl
crw-rw-rw- 1 root root 250, 0 Jul 28 21:13 /dev/nvidia-uvm

Помните, что номера версий (например, 250/0 для /dev/nvidia-uvm в этом примере) могут различаться в зависимости от вашей системы.

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

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