LINUX.ORG.RU

Требуется помощь в сборке кастомной версии intel/compute-runtime

 ,


0

1

Предыстория такова - купил ноут со встройкой Arc Xe-LPG на борту, поставил Ubuntu 24.04, понемногу начал обживать, все проблемы более-менее разрулил, остался только один крупный челлендж - подружить Давинчи с интеловой видяхой.

БлекМеджики вообще не признают интеловые встройки за что-то достойное внимания (тем более под Линукс), но нашёлся энтузиаст, который вслепую (у Давинчи исходники-то закрыты) отреверсил баги и пропатчил интеловые драйвера чтобы всё работало как надо. Что-то из этих фиксов уже влито в мейн, что-то пока нет - по разным причинам.

Так вот, Давинчи я с грехом пополам запустил (это отдельный квест), самые свежие ванильные интеловые дрова (а их там целая обойма с депенденсами) поставил, но превью виджет сыплет артефактами. По сути работать невозможно - надо накатывать патчи от бельгийского хакера.

С CMake (да и вообще с C++) я не знаком от слова совсем. Попробовал с наскоку сбилдить ветку с фиксами https://github.com/smunaut/compute-runtime/tree/fix-arc :

cmake -DCMAKE_BUILD_TYPE=Release -S ./ -B ./build

но сразу же споткнулся на CMake Error: "Intel Graphics Compiler Not Found". Попытался установить глобально эту зависимость (скачал с интелового гитхаба соответствующие пакеты):

dpkg -i intel-igc-opencl-devel_1.0.17193.4_amd64.deb
dpkg -i intel-igc-opencl_1.0.17193.4_amd64.deb

не помогло, скорее всего надо сложить куда-то в папку проекта файлы/хедеры этих зависимостей и/или подсказать билдеру куда за ними ходить.

Курить маны CMake никаких моральных сил нет. В идеале хотелось бы научиться накладывать эти патчи на оригинальную интеловую мастер-ветку, а затем билдить её, но для начала было бы отлично и просто собрать имеющуюся ветку от smunayt. Короче, требуется помощь зала)

P.S.: В итоге сбилдить удалось, и даже разобрался как смерживать ветку с фиксами от smunaut в любую релизную ветку ванильного релиза intel-compute-runtime. Потрачена уйма времени, но было весело)

P.S.S: С Давинчи всплыл очень неприятный нюанс - под Линукс он в связи с лицензионными ограничениями не импортирует аудиодороги AAC (а это практически все видеофайлы с телефонов и с большинства камер). Вроде бы есть в природе какой-то проприетарный AAC-плагин, но живых свидетелей его работы я не нашел.

P.S.S.S: Ура! Несколько дней назад патч от smunaut был смержен в мастер ветку intel/compute-runtime, а это значит, что примерно через месяц, когда разрабы выкатят очередной плановый релиз рантайма, можно будет просто скачать свежий deb/rpm и не морочить себе голову!



Последнее исправление: mikamiel (всего исправлений: 2)
Ответ на: комментарий от mikamiel

Парой строк выше ошибки CMake Error: "Intel Graphics Compiler Not Found" я пропустил сообщение, что билдеру не хватает пакета:

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

решилось с помощью sudo apt install pkg-config

компилится вроде…

mikamiel
() автор топика
Ответ на: комментарий от mikamiel

Стадия билда прошла нормально, но на make install я опять застрял на:

[ 79%] Linking CXX shared library ../bin/libigdrcl.so
/usr/bin/ld.gold: error: cannot find -ligdgmm
collect2: error: ld returned 1 exit status
make[2]: *** [igdrcl_lib_release/CMakeFiles/igdrcl_dll.dir/build.make:3128: bin/libigdrcl.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:12372: igdrcl_lib_release/CMakeFiles/igdrcl_dll.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

погуглив, нашел ишью https://github.com/intel/compute-runtime/issues/718 , но что дальше делать не ясно, вроде либа libigdgmm.so на законном месте - в папке /usr/local/lib

mikamiel
() автор топика
Последнее исправление: mikamiel (всего исправлений: 1)

smunaut, конечно, герой и много чего сделал, но я бы посоветовал попробовать rusticl из Mesa 24. С DaVinci Resolve не пробовал, но в других приложениях rusticl работает сейчас гораздо лучше, чем intel-compute-runtime.

i586 ★★★★★
()
Ответ на: комментарий от mikamiel

Насколько я понял rusticl это чисто AMD-шная либа и на интелах не заводится.

Нет.

Как её прикрутить в систему?

В Ubuntu уже все собрано и работает из коробки. Включать/выключать – по мануалу.

i586 ★★★★★
()
Ответ на: комментарий от mikamiel

Эту багу поборол (ужас, ресерч стоил мне полдня времени):

CMake в данном проекте линкует с помощью ld.gold. Помимо этого в системе есть ещё просто ld. Сперва я полагал (визуально ссылки похожи, вот и упустил замыленным глазом), что они ссылаются на один и тот же бинарь ld, но нет - это разные линковщики.

И по какой-то причине в Ubuntu 24.04 у ld в путях поиска есть папка /usr/local/lib (куда по умолчанию ставит пакеты сборочный скрипт одной из интеловых либ gmmlib), а у ld.gold этот серч пас не выставлен. Где его можно прописать глобально в Ubuntu не нашел, а через энвайронмент не подхватывает, в итоге просто создал ссылку на libigdgmm.so в системной дире /usr/lib

mikamiel
() автор топика