Как получить Radeon RX 550, работающий с OpenCL в Ubuntu 16.04?

Когда я следую официальному руководству по установке драйверов AMDGPU-Pro (я пробовал и 17.30, и самые последние 17.40 выпуски), кажется, все работает, но clinfo все еще возвращается

Number of platforms 0

У кого-нибудь есть какие-либо идеи?

2 ответа

Я тоже потратил целый день на это - я не смог найти никаких рабочих инструкций, поэтому вот что я придумал для AMD Radeon RX 580 в системе Ubuntu 16.04 без графического рабочего стола, установленного через SSH:

Предположим, новая система установки Ubuntu

  1. Загрузите AMD APP SDK отсюда - скачайте, распакуйте и используйте sudo запустить скрипт установки.

  2. Загрузите самую последнюю версию драйвера Linux (17.50 на момент написания этого ответа) отсюда, распакуйте .xz использование файла tar Jxvf <filename> а также cd в каталог, созданный после извлечения .xz файл.

  3. Теперь запустите установщик с sudo:

    sudo ./amdgpu-pro-install --opencl=legacy -y
    
  4. перезагружать

  5. Бежать clinfo снова, и вы должны увидеть, что теперь у вас есть поддержка OpenCL 1.2:

    $ clinfo|grep OpenCL
    
    Platform Version:               OpenCL 2.1 AMD-APP (2527.3)
    Execute OpenCL kernels:         Yes
    Device OpenCL C version:        OpenCL C 1.2
    Version:                        OpenCL 1.2 AMD-APP (2527.3)
    

Причина этого заключается в том, что указание --legacy тянет в opencl-amdgpu-pro-icd который обычно не установлен.

Я думаю, это потому, что последние драйверы хотят работать с ROCm: https://rocm.github.io/ROCmInstall.html

На моей собственной установке ROCm непригоден, потому что у меня есть слоты PCI-e 1x с надстроечными платами и базовый процессор Pentium вместо i7. Вы проверяете, что ROCm был отключен следующим образом:

$ dmesg |grep atomic
[4.885958] kfd kfd: skipped device 1002:67df, PCI rejects atomics

Так что я думаю, именно поэтому мне пришлось заняться наследием, чтобы заставить OpenCL работать вообще.

Я не уверен, в чем плюсы и минусы OpenCL 1.2 по сравнению с OpenCL 2.0 по сравнению с ROCm, или даже если драйвер ROCm внешне представлен как OpenCL 2.0 - было бы замечательно, если бы кто-то с большим пониманием мог прокомментировать.

OpenCL потерпел неудачу, потому что у меня были проблемы со сборкой модуля DKMS из-за моего ядра.

Обновление моего ядра до следующей версии позволило Clinfo сообщить о поддержке OpenCL в Ubuntu 16.04.4 LTS.

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.11/

Linux-Headers-4.15.11-041511_4.15.11-041511.201803190530_all.deb

Linux-Headers-4.15.11-041511-generic_4.15.11-041511.201803190530_amd64.deb

Linux-изображений 4.15.11-041511-generic_4.15.11-041511.201803190530_amd64.deb

clinfo|grep OpenCL
  Platform Version          OpenCL 2.0 AMD-APP (2482.3)
  Device Version            OpenCL 1.2 AMD-APP (2482.3)
  Device OpenCL C Version   OpenCL C 1.2 
    Run OpenCL kernels      Yes
Другие вопросы по тегам