Bug 48568 - Рендеринг с помощью CUDA в DaVinci Resolve
Summary: Рендеринг с помощью CUDA в DaVinci Resolve
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: nvidia_glx_libs (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-23 17:24 MSK by Mikhail Tergoev
Modified: 2023-11-27 13:44 MSK (History)
3 users (show)

See Also:


Attachments
h265_h264 (135.57 KB, image/jpeg)
2023-11-25 11:58 MSK, Mikhail Tergoev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mikhail Tergoev 2023-11-23 17:24:45 MSK
Для работы в DaVinci Resolve рендеринга CUDA нужны доп. симлинки:
libcuda.so - появляется возможность включать CUDA рендеринг
libnvcuvid.so и libnvidia-encode.so включают возможность рендеринга H.264 и H.265

В конце секции %install добавляем:

# fixing the work of CUDA rendering in DaVinci Resolve without nvidia-cuda-toolkit
ln -s %_libdir/libcuda.so.%version %buildroot%_libdir/libcuda.so
ln -s %_libdir/libnvcuvid.so.%version %buildroot%_libdir/libnvcuvid.so
ln -s %_libdir/libnvidia-encode.so.%version %buildroot%_libdir/libnvidia-encode.so


Готовый таск с фиксом есть:
334985 TESTED #1 [test-only] sisyphus nvidia_glx_libs.git=535.129.03-alt1.1
Comment 1 Ivan Mazhukin 2023-11-23 17:53:09 MSK
После добавления симлинков, CUDA в DaVinchi Resolve появилась и работает корректно. Без CUDA, на OpenCL, у меня была ошибка по GPU и странные артефакты на редактируемом видео. Также заработали кодеки h.264 h.265. На моих двух GPU от NVIDIA рендерит очень быстро.

Симлинки поставил через таск 334985.
Comment 2 Mikhail Tergoev 2023-11-23 17:56:38 MSK
(Ответ для Ivan Mazhukin на комментарий #1)
> После добавления симлинков, CUDA в DaVinchi Resolve появилась и работает
> корректно. Без CUDA, на OpenCL, у меня была ошибка по GPU и странные
> артефакты на редактируемом видео. Также заработали кодеки h.264 h.265. На
> моих двух GPU от NVIDIA рендерит очень быстро.
> 
> Симлинки поставил через таск 334985.

Спасибо за оперативный тест и отчет!
Comment 3 Sergey V Turchin 2023-11-24 12:21:24 MSK
(Ответ для Mikhail Tergoev на комментарий #0)
> ln -s %_libdir/libcuda.so.%version %buildroot%_libdir/libcuda.so
> ln -s %_libdir/libnvcuvid.so.%version %buildroot%_libdir/libnvcuvid.so
> ln -s %_libdir/libnvidia-encode.so.%version
> %buildroot%_libdir/libnvidia-encode.so
Сделайте пожалуйста содержимое симлинков без пути и я пропущу.
Comment 4 Sergey V Turchin 2023-11-24 12:23:16 MSK
Ещё бы проверить, не ищет ли он libcuda.so в нестандартном каталоге, чтоб туда симлинки поместить.
Comment 5 Mikhail Tergoev 2023-11-24 13:43:09 MSK
(Ответ для Sergey V Turchin на комментарий #4)
> Ещё бы проверить, не ищет ли он libcuda.so в нестандартном каталоге, чтоб
> туда симлинки поместить.

Универсальных альтернативных вариантов мною не найдено.

(Ответ для Sergey V Turchin на комментарий #3)
> Сделайте пожалуйста содержимое симлинков без пути и я пропущу.

Исправил. Правда из-за квоты пришлось пересоздать таск. Актуальный:
335026 TESTED #1 [test-only] sisyphus nvidia_glx_libs.git=535.129.03-alt1.1
Comment 6 Sergey V Turchin 2023-11-24 14:04:59 MSK
(Ответ для Mikhail Tergoev на комментарий #5)
> (Ответ для Sergey V Turchin на комментарий #4)
> > Ещё бы проверить, не ищет ли он libcuda.so в нестандартном каталоге, чтоб
> > туда симлинки поместить.
> 
> Универсальных альтернативных вариантов мною не найдено.
А можно огласить весь список, а то у меня тот, что был, перестал запускаться. Чтоб не экспериментировать заново (я прямо с оф.сайта всегда свободно качал и без проблем запускал).
Comment 7 Sergey V Turchin 2023-11-24 14:35:54 MSK
(Ответ для Mikhail Tergoev на комментарий #5)
> Правда из-за квоты пришлось пересоздать таск.
Я уже думал имя пакета привязать к версии, чтоб репозиторий не рос астрономическими темпами. Видимо, пора.
Comment 8 Ivan Mazhukin 2023-11-24 14:38:50 MSK
Если я правильно понимаю о чём речь, то я запускаю Resolve таким образом:

LD_PRELOAD=/usr/lib64/libglib-2.0.so /opt/resolve/bin/resolve 

Из-за ошибки, которая есть в Resolve 18.6.3, 18.1.2 и наверное других 18-ых, но я их не проверял. Ошибка следующая:

/opt/resolve/bin/resolve: symbol lookup error: /usr/lib64/libpango-1.0.so.0: undefined symbol: g_string_free_and_steal

Я почитал по форумам, вроде как у Resolve библиотека libglib-2.0.so битая. Также можно исправить запуск скопировав либу вместо той, что есть в Resolve 

# cp /usr/lib64/libglib-2.0.so.0 /opt/resolve/libs/
Comment 9 Mikhail Tergoev 2023-11-24 15:32:16 MSK
(Ответ для Sergey V Turchin на комментарий #6)
> А можно огласить весь список, а то у меня тот, что был, перестал
> запускаться. Чтоб не экспериментировать заново (я прямо с оф.сайта всегда
> свободно качал и без проблем запускал).

Эти 3 симлинка так же работают если их поместить в каталог /opt/resolve/libs/ что не является универсальным решением.

Я тестировал 17-ю версию в которой нет проблем как написал Иван:

(Ответ для Ivan Mazhukin на комментарий #8)
> Я почитал по форумам, вроде как у Resolve библиотека libglib-2.0.so битая.
> Также можно исправить запуск скопировав либу вместо той, что есть в Resolve
Comment 10 Sergey V Turchin 2023-11-24 15:55:18 MSK
(Ответ для Ivan Mazhukin на комментарий #8)
> undefined symbol: g_string_free_and_steal
Да, оно.

> # cp /usr/lib64/libglib-2.0.so.0 /opt/resolve/libs/
Ок, ща сам посмотрю тогда.
Comment 11 Sergey V Turchin 2023-11-24 15:56:44 MSK
(Ответ для Mikhail Tergoev на комментарий #9)
> (Ответ для Sergey V Turchin на комментарий #6)
> > А можно огласить весь список, а то у меня тот, что был, перестал
> > запускаться. Чтоб не экспериментировать заново (я прямо с оф.сайта всегда
> > свободно качал и без проблем запускал).
> 
> Эти 3 симлинка так же работают если их поместить в каталог
> /opt/resolve/libs/ что не является универсальным решением.
Оно является универсальным, но только для resolve, а так же такое запрещено у нас к упаковке.

А кому ещё такое надо?
Comment 12 Mikhail Tergoev 2023-11-24 15:59:47 MSK
(Ответ для Sergey V Turchin на комментарий #11)
> а так же такое запрещено

Я это и имел ввиду, что в opt ничего нельзя из реп кидать.
Comment 13 Sergey V Turchin 2023-11-25 11:10:13 MSK
(Ответ для Ivan Mazhukin на комментарий #8)
> # cp /usr/lib64/libglib-2.0.so.0 /opt/resolve/libs/
rm -f /opt/resolve/lib/slibglib-2.0.so*
Comment 14 Sergey V Turchin 2023-11-25 11:34:32 MSK
(Ответ для Mikhail Tergoev на комментарий #0)
> ln -s %_libdir/libnvcuvid.so.%version %buildroot%_libdir/libnvcuvid.so
> ln -s %_libdir/libnvidia-encode.so.%version
> %buildroot%_libdir/libnvidia-encode.so
CUDA в настройках находится без этих библиотек. Они действительно нужны?
Comment 15 Sergey V Turchin 2023-11-25 11:35:22 MSK
(Ответ для Sergey V Turchin на комментарий #13)
> rm -f /opt/resolve/lib/slibglib-2.0.so*
rm -f /opt/resolve/libs/libglib-2.0.so*
Comment 16 Mikhail Tergoev 2023-11-25 11:58:21 MSK
Created attachment 15108 [details]
h265_h264
Comment 17 Mikhail Tergoev 2023-11-25 12:05:04 MSK
(Ответ для Sergey V Turchin на комментарий #14)
> CUDA в настройках находится без этих библиотек. Они действительно нужны?

Для 17-ой версии они нужны точно! (после удаления ссылок вылетает ошибка по GPU, cuda нет)

Есть ли в 18-ой версии в настройках рендеринга во вкладке экспорта h265 и h264? (как на скрине во вложении)
Comment 18 Mikhail Tergoev 2023-11-27 13:44:04 MSK
Исправление отправлено на сборку в Сизив в таске: 335026
Багу закрываю.