Используйте OpenCL на AMD APU, но используйте дискретный GPU для X-сервера
Можно ли включить OpenCL на A10-7800, не используя его для X-сервера? У меня есть коробка Linux, которую я использую для программирования GPGPU. Дискретная карта GEForce 740 используется как для X-сервера, так и для запуска программ OpenCL и Cuda, которые я разрабатываю. Я также хотел бы иметь возможность запускать код OpenCL на интегрированных ядрах GPU APU.
Все, что я читал до сих пор, подразумевает, что если я хочу использовать APU для OpenCL, я должен установить Catalyst и, AFAIK, это означает использование его для X сервер. Это правда? Есть ли преимущество в использовании APU для моего X-сервера и использовании GEForce исключительно для кода GPGPU?
2 ответа:
У меня была аналогичная цель, поэтому я построил систему с AMD APU (4 обычных ядра + 6 графических процессоров) и дискретной графической платой Nvidia. К сожалению, это было нелегко сделать, поэтому я задал вопрос на форуме
Ask Ubuntu
, не получил никаких ответов, много экспериментировал с аппаратной и программной настройкой и, наконец, опубликовал свой собственный ответ на мой вопрос.Я снова опишу свою установку здесь-кто знает, что может случиться с моим автоматически ответившим вопросом на
Ask Ubuntu
?На во-первых, я должен был включить встроенное графическое оборудование через флаг BIOS. Этот флаг называется
Вторым шагом было найти правильное сочетание низкоуровневого графического драйвера и высокоуровневой реализации OpenCL. Низкоуровневый драйвер для процессоров AMD называетсяIGFX Multi-Monitor
на моей материнской плате (ASUS A88X-PRO).AMD Catalyst
и имеет имя файлаfglrx
. Я не устанавливал этот драйвер из Центра программного обеспечения Ubuntu-вместо этого я использовал версию15.302
, непосредственно загруженную с сайта AMD. Я должен был установить значительное количество предпосылок для этого драйвера. Самым важным выводом было то, что я должен был пропустить запуск командыaticonfig
после установкиfglrx
- эта команда фактически настраивает X-сервер для использования этого драйвера для вывода графики, а я этого не хотел.Затем я установил AMD SDK Ver 3.0 (выпуск 130.136, более ранние версии не работали с моим
Итак, у меня есть гибридный процессор AMD, поддерживаемый OpenCL, со всем графическим выходом, поддерживаемым дискретной видеокартой с процессором Nvidia.fglrx
) - это реализация OpenCL от AMD. Командаclinfo
сообщает как о процессорах, так и о графических процессорах теперь с правильным количеством ядер.Удачи!
Я поддерживаю сервер Linux (OpenSUSE, но дистрибутив не должен иметь значения), содержащий как NVIDIA, так и (дискретный) AMD GPU. Он безголовый, поэтому технически я не знаю, создаст ли X-сервер дополнительные проблемы, но я так не думаю. Вы всегда можете настроить xorg.conf использовать именно тот драйвер, который вы хотите. Или, если уж на то пошло: установите Catalyst, но удалите сам файл драйвера X server, который является Не тем же, что вам нужно для OpenCL.
Есть один проблема с системой смешанного поставщика, которую я заметил, однако: amds OpenCL driver (ICD) будет идти spelunking для a libGL.so библиотека, я думаю, для того, чтобы сделать OpenCL / OpenGL-interop. Если он найдет что-либо из поставляемых NVIDIA libGL.so-С, он запутается и повиснет - по крайней мере, на моей машине. Я "решил" это, удалив все libGL.so (мне это не нужно на безголовом вычислительном сервере), но это может быть неприемлемым решением для вас. Может быть, вы сможете устроить все так, чтобы AMD-поставляла libGL.so s возьмите приоритет, возможно, установив драйвер AMD последним.