- Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580
- Предыстория
- PlaidML: кроссплатформенность во главе угла
- Установка драйвера AMD в Ubuntu
- Тест производительности системы
- Установка драйверов AMD на Ubuntu
- Шаг 1. Поиск старой версии
- Шаг 2. Загрузка драйвера
- Шаг 3. Установка драйвера
- Шаг 5. Проверка корректности установки
- Проверка производительности нового драйвера
- Удаление драйверов AMD
- Выводы
- Arch и RX580
- Написал небольшое howto по установке драйверов AMD Radeon RX580 в Debian 9
Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580
Предыстория
На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как минимум 2 способа запуска современных библиотек машинного обучения на видеокартах Radeon: PlaidML и ROCm. Я попробовал оба и хочу поделиться результатами.
PlaidML: кроссплатформенность во главе угла
TensorFlow служит бэкэндом для Keras, интерпретируя его синтаксис и преобразуя его в инструкции, которые могут выполняться на процессоре или GPU. К сожалению, он поддерживает только видеокарты с технологией Nvidia CUDA.
PlaidML — альтернативный бэкэнд для Keras с поддержкой OpenCL. Его можно использовать для обучения моделей Keras на встроенной графике процессора, дискретном или даже внешнем графическом процессоре AMD. Он работает на Windows, Linux и Mac.
UPD: В своём комментарии пользователь MikeLP указал, что:
Keras задумывался как высокоуровневый интерфейс. Соответственно остальные бекенды, как PlaidML могли обеспечить работу с другими видеоускорителями без закрытой технологии CUDA. И так было до тех пор, пока авторы не заявили, что Keras будет развиваться только в рамках Tensorflow. Все — «накрылась медным тазом ваша качалка». И получается что PlaidML может работать только с Keras, a не с tf.Keras — API разбежалось. Cоответственно смысл юзать PlaidML, когда он не совместим с последней версией Keras API в Tensorflow. Пацаны из PlaidML (они часть Intel) были вынуждены поменять roadmap и идти в другом направлении.
По моему мнению, PlaidML ещё актуален, т.к. включение Keras в Tensorflow произошло недавно и API не успел существено поменяться. Однако дальшейшие перспективы Keras+PlaidML выглядят туманно.
Установка PlaidML очень проста. Нужно поставить Python-пакет и выбрать устройство в пошаговом конфигураторе:
В коде нужно прописать использование PlaidML как бэкэнда:
После этого все вычисления будут выполняться на видеокарте. Запустим бенчмарк:
Сравним результаты нашего видеоадаптера с некоторыми другими. RX 580 и Ryzen 2600 я тестировал локально, результаты остальных устройств взяты от других пользователей:
Источник
Установка драйвера AMD в Ubuntu
Одной из актуальных проблем в Linux является настройка корректной и максимально производительной работы видеокарты. В данной статье мы рассмотрим как выполняется установка драйвера AMD в Ubuntu на примере видеокарты Sapphire RX480 с 8 Гб памяти.
В статье мы проведем установку драйвера, научимся проверять его наличие в системе и сравним производительность различных реализаций драйверов в операционной системе Ubuntu.
Для видеокарт данного производителя существуют три актуальных варианта видеодрайвера:
- Mesa – свободное программное обеспечение для видеокарт различных производителей, реализующее API OpenGL и Vulcan. Используется по умолчанию в большинстве операционных систем Linux.
- AMDGPU-PRO – проприетарные драйвера от фирмы AMD. Включают в себя драйвера AMDGPU и различные дополнительные модули с закрытым программным кодом.
- AMDGPU – драйвера для видеокарт от фирмы AMD с открытым программным кодом.
Прежде чем переходить к установке драйвера давайте проверим производительность видеокарты без драйвера, чтобы увидеть действительно ли стоит ставить этот драйвер.
Тест производительности системы
Прежде всего оценим производительность системы без драйвера. Для проверки производительности мы будем использовать тест Unigine Heaven. Данный пакет можно скачать по ссылке. После установки пакета запускаем его и устанавливаем требуемые нам настройки тестирования. В моем случае это были следующие параметры:
- API: OpenGL;
- Качество: Ультра;
- Тесселяция: Экстрим;
- Стерео 3D: Выключено;
- Матрица: Выключить;
- AA: х8;
- Полный экран: Да;
- Разрешение: 1920х1080.
Запускаем пакет тестирования. Выбираем в меню опцию Бенчмарк и ждём результатов. В итоге я получил следующие данные.
Далее разберемся как выполняется установка amdgpu pro в ubuntu 18.04.
Установка драйверов AMD на Ubuntu
Теперь мы можем заняться установкой драйверов AMD (PRO или открытой версии).
Шаг 1. Поиск старой версии
Для проверки установлена ли у нас уже данная реализация драйверов выполняем команду
dpkg -l amdgpu-pro
Если драйвера не обнаружены, то необходимо их установить.
Шаг 2. Загрузка драйвера
Переходим на страницу загрузки драйверов Radeon по ссылке. Выбираем нашу модель видеокарты. Нажимаем кнопку Submit.
Выбираем версию операционной системы, версию драйвера и нажимаем кнопку Download.
Переходим в папку Загрузки, смотрим название пакета и распаковываем пакет архиватором в данной директории с помощью команды tar:
tar -Jxvf amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz
Переходим в папку с распакованными драйверами с помощью команды:
Шаг 3. Установка драйвера
Установка драйвера AMDGPU в Ubuntu открытой версии выполняется командой:
Для установки версии драйвера с проприетарными модулями запускаем команду:
Дожидаемся пока проприетарные драйвера amd ubuntu 18.04 установятся. При выполнении процесса установки стоит проявить терпение и подождать, когда установка завершиться. Затем текущего пользователя добавляем в группу video с помощью команды
sudo usermod -a -G video $LOGNAME
Шаг 5. Проверка корректности установки
После этого перезагружаем систему и проверяем – установлены ли драйвера у нас системе. Это можно сделать несколькими методами.
sudo dpkg -l amdgpu-pro
lspci -k | grep -EA2 “VGA|3D|Display”
Проматываем результат команды до раздела *-display и смотрим параметры.
Проверка производительности нового драйвера
Теперь мы можем вторично протестировать производительность нашего компьютера с помощью бенчмарка Unigine Heaven. Параметры бенчмарка были оставлены без изменений. Результат оказался выше, чем с драйверами по умолчанию на 10,78%. При этом следует заметить, что разница между минимальным и максимальным FPS также существенно выросла.
Удаление драйверов AMD
Чтобы удалить драйвер AMDGPU Ubuntu следует выполнить тот же скрипт, который вы использовали при установке только с опцией —uninstall. Например:
sudo ./amdgpu-install —uninstall
sudo ./amdgpu-pro-install —uninstall
Выводы
Сегодня мы разобрались с одним важным вопросом о драйверах для карт AMD – стоит ли их заменять на версию от производителя? И я должен ответить, что да, стоит. Прирост производительности составляет 10 процентов, что, думаю, не окажется лишним как в рабочих задачах, так и в играх.
Также мы выяснили какие версии драйверов для видеокарт данного производителя существуют, разобрались с их установкой, удалением и проверкой их наличия в операционной системе Ubuntu 18.04.
Источник
Arch и RX580
Имеется: Свежеустановленная manjaro openbox (ядро 5.5). Свежевоткнутая XFX RX580 (вместо старой GTX750)
lsmod пишет что загружен amdgpu.
Чисто визуально, интерфейс стал работать тормознутее, чем на невидии. Может драйвер какой надо установить?
P.S. игрушки через Lutris и Portwot не работают.
RX570, всё работает без дополнительных манипуляций.
Покажите вывод lspci -vd «::0300» и glxinfo -B . Glxinfo входит в состав mesa-utils.
и вот здесь поправь
и вот так сделай
Чисто визуально, интерфейс стал работать тормознутее,
У тебя вообще аппаратное ускорение работает? Десктопны нынче рисюутся через OGL, проверь glxinfo | grep «OpenGL renderer» должен написать что типа Polaris10 или RX580, и не должен содержать llvmpipe или softpipe.
Помимо модуля ядра нужны несвободные firmware, mesa и libdrm.
Сделал, ребутнулся, вроде ничё не поменялось…
Может драйвер какой надо установить?
Нет, все должно из коробки работать. Кинь вывод иксовых логов (если иксы используются):
cat /var/log/Xorg.0.log | grep -E «amdgpu|DRI|modeset|EE|enable»
Все хорошо, здоровы! 🙂 Я не вижу ошибок, или чего-то странного.
Чисто визуально, интерфейс стал работать тормознутее,
Может что-то с автоматическим изменением частот gpu/памяти. Пробовал бенчмарки запускать? Например superposition, насколько я помню на high на rx470 в 1080p было больше 25fps (но это не точно).
Может у него запущен compton/picom с плохими настройка vsync?
Источник
Написал небольшое howto по установке драйверов AMD Radeon RX580 в Debian 9
Интересны комментарии, особенно владельцев карты, но и в любом случае, может где ошибся или что.
Рассматривается установка свободных драйверов OpenGL и проприетарных OpenCL на ветку stable ОС Debian 9.6 (Stretch) с ядром 4.9.0-8. Проприетарных OpenCL, поскольку карта ставится в машину с процессором старее Haswell/Ryzen, которые не поддерживаются ROCm.
Информация также должна годиться для RX570 и RX470, RX480. И скорее всего, для всех остальных RX 4xx, RX 5xx, кроме RX 590 (но может и с ней сразу заработает) — эта карточка стоит несколько особняком. В конце есть пара теоретических (самой карты нет и не пробовал) соображений, что может понадобиться, чтобы она заработала.
Сразу скажу, что информации на официальной вики проекта слишком мало https://wiki.debian.org/GraphicsCard#AMD.2FATI
В терминологии AMD у этой карты архитектура «polaris», она же «Arctic Islands» она же GCN 4th gen (4-е поколение Graphics Core Next). К ней относятся карты RX 460, RX 470, RX 480, RX 540, RX 550, RX 560, RX 570, RX 580
Микроархитектура карт (RX 470, RX 480) == (RX 570, RX580) практически до неразличимости на программно-драйверном уровне. Довольно много подробностей на эту тему можно прочесть здесь: https://wiki.gentoo.org/wiki/AMDGPU. Версия фирмвари от AMD — polaris10 для amd 480 и amd 580 (могут быть разные буквенные индексы у фирмвари).
Так как до этого на компьютере стояли карты от Nvidia надо избавиться от их драйверов. Рекомендации wiki Debian может оказаться недостаточно.
Но по порядку. Все делаем от root, разумеется.
Установка свободного драйвера OpenGL:
- Добавляем contrib и non-free в репозиторий (/etc/apt/sources.list), если еще этого не сделано.
- Добавляем dpkg —add-architecture i386
В принципе необязательно, но весьма желательно для некоторых пакетов. В том числе для wine - apt-get update
- apt-get install xserver-xorg-video-amdgpu libdrm-amdgpu1 libgl1-mesa-dri libgl1-mesa-glx glx-alternative-mesa
- apt-get install -t sid firmware-amd-graphics
-t sid опционален. (но сам пакет ставить нужно) У меня RX580 и с фирмварью из stable работает, но возможно кому-то.нужны более новые бинарники к карте. Впрочем, вполне можно не подключать testing и sid ветки репозиториев, если отдельно скачать пакет от sid и содержимое /lib/firmware/amdgpu добавить вручную. Также фирмварь появится и при установке проприетарных драйверов, даже только OpenCL. - Проверяем, что модуля nvidia нет в списке /etc/initramfs-tools/modules
Если он там есть удаляем или коментим # - Редактируем /etc/modprobe.d/nvidia.conf комментируем все записи. Добавляем строчку blacklist nvidia
- Выполняем update-glx —config glx
Выбираем среди альтернатив (скорее всего от nvidia, если была карта nvidia) mesa - Reboot
Должно заработать, если не заработало, то я даже не знаю. Надо будет внимательно читать лог /var/log/Xorg.1.log и смотреть, что там делает строчка nvidia =)
Добавляем apt-get install mesa-vdpau-drivers libvdpau-va-gl1 для ускорения фильмов.
Вот не помню, нужно ли было для свободного драйвера ставить заголовки ядра или только для проприетарного, а также llvm. Но не исключено, что потребуется.
Добавление возможностей OpenCL
- Берем пакет 17.50 для Ubuntu. Официально драйвера рассчитаны на Ubuntu, SuSe или RHEL c CentOS, так как Ubuntu весьма родственна Debian, она наиболее совместимая. При этом 18-я версия для Stretch (Debian 9) не подойдет. 17.50 вроде последняя среди 17-ой версии. Версия 17.50 почему-то не находится явно по ссылкам для для предыдущих версий на сайте amd
Поэтому скачиваем по прямой ссылке, не забудьте referer — без него не даст скачать.
Теперь OpenCL версии 1.2 доступно. Можно для проверки запустить clinfo или поставить какой-нибудь пакет, его использующий, например, hashcat и запустить бенчмарк hashcat -b
Некоторые мысли по поводу RX 590. Я не знаю, может этого и не нужно или наоборот этого не хватит для работы, просто предполагаю.
В принципе, RX 590 почти тоже самое, что и RX580, но могут быть нужны новые фирмвари, которые можно взять из новейших драйверов 18.50, распотрошив файл amdgpu-dkms_18.50-708488_all.deb и достав их из каталога usr/src/amdgpu-18.50-708488/firmware/amdgpu скопировав затем в /lib/firmware/amdgpu
Также в пакете ids-amdgpu от 17.50 есть файл amdgpu.ids установленный в /opt/amdgpu/share/libdrm/amdgpu.ids — его полезно будет заменить таким же из пакета libdrm-amdgpu-common_1.0.0-708488_all.deb
Чего я не понял, это почему для OpenCL пишется что-то вроде Memory : 4048/7916 MB allocatable
Куда 4Гб памяти дели? Или так и должно быть, там какое-то разделение есть на основную и константную, может просто не понял чего насчет работы OpenCL.
Источник