AMD RX580 ran an LLM locally: how to tame ROCm, Ollama, and get GPU inference
An old AMD RX580 can in fact be turned into a usable card for local LLM inference, but the path runs through ROCm errors, Ollama crashes, and misleading VRAM us

Запуск LLM на старой AMD RX580 оказался не вопросом одной удачной команды, а полноценным инженерным расследованием. Автор пытался получить нормальный GPU inference через ROCm и Ollama в Kubernetes, но вместо стабильной генерации получил ложные признаки успеха, падения по памяти и местами бессмысленный текст на выходе.
Симптомы и ловушки На старте всё выглядело почти рабочим.
Видеокарта определялась, контейнеры поднимались, VRAM заполнялась, а значит система будто бы действительно использовала GPU. Но это была ловушка: занятая память ещё не означает, что вычисления идут на графическом процессоре корректно. Главная проблема проявлялась уже в момент реального inference — запросы падали с ошибками hipMemGetInfo или завершались странной генерацией, которая внешне напоминала работу модели, но фактически не давала осмысленного результата.
GPU определялся, VRAM занималась, контейнеры запускались — но inference падал с ошибками hipMemGetInfo.
Этот кейс хорошо показывает типичную ошибку при локальном запуске LLM: смотреть только на «видимость жизни» инфраструктуры. Если Kubernetes запустил контейнер, Ollama увидела модель, а GPU занял несколько гигабайт, это ещё не подтверждает, что стек ROCm реально выполняет матричные операции как надо. Для старых карт вроде RX580 особенно важна проверка не только доступности устройства, но и фактического compute-path, потому что сбой может скрываться ниже уровня самого приложения.
Как нашли причину
Корень проблемы удалось сузить не через очередную переустановку пакетов, а через диагностику вычислительного контура. Автор сравнивал признаки работы в разных слоях системы и отделял косметические успехи от настоящего выполнения inference. Ключевым инструментом здесь неожиданно стал Vulkan: он помог проверить, способен ли GPU вообще стабильно проходить вычислительные задачи, и тем самым подсветил, что проблема не сводится к одному только Ollama или конфигурации контейнера.
По сути расследование шло от симптомов к проверяемым гипотезам. Вместо гадания по логам автор последовательно отсекал ложные объяснения и собирал минимально рабочую конфигурацию, проверяя каждый слой отдельно: от контейнера и рантайма до драйверов и самой модели. Такой порядок важен, потому что именно он позволяет понять, где заканчивается «инфраструктура поднялась» и начинается настоящий вычислительный пайплайн.
В разборе это выглядело так пошагово: Проверка реального GPU compute, а не только VRAM usage Сравнение поведения ROCm и Vulkan Отсев проблем контейнера и оркестрации Поиск совместимых версий kernel и ROCm * Контроль качества самого вывода модели Такой подход важен, потому что бессмысленный текст на выходе — тоже диагностический сигнал. Если модель отвечает, но генерирует мусор, значит поломка может быть не в загрузке весов, а в некорректной работе вычислений, несовместимости драйверов или частично рабочем backend, который выглядит живым только на поверхности. Именно такие полурабочие состояния чаще всего съедают больше времени, чем полный отказ, потому что маскируются под случайные баги приложения.
Рабочая связка на RX580
Финалом эксперимента стала не «магическая настройка», а найденная комбинация версий и компонентов, при которой старая RX580 всё же даёт стабильный результат. Автор пишет, что рабочими оказались определённые версии ROCm и ядра Linux, а после устранения конфликтов inference перестал падать и начал выдавать нормальный текст. Это важный вывод для всех, кто пытается запускать локальные модели на не самой новой AMD-графике: успех здесь зависит не столько от номинальной поддержки железа, сколько от точного совпадения драйверного, системного и рантайм-слоёв.
Практический итог выглядит убедительно: на RX580 удалось получить около 42 токенов в секунду. Для домашней карты прошлого поколения это уже не просто демонстрация, а рабочий режим, в котором можно тестировать локальные ассистенты, прототипы RAG-сценариев и персональные inference-сервисы без обязательного апгрейда на свежий NVIDIA-стек. Но главный урок даже не в цифре скорости, а в методе: если GPU «как будто работает», этого недостаточно.
Проверять нужно именно стабильность вычислений, корректность вывода и повторяемость результата.
Что это значит
История с RX580 показывает, что локальный LLM inference на старом AMD-железе возможен, но требует дисциплины в диагностике. Для разработчиков это хороший ориентир: не путать занятую VRAM с реальной работой модели, проверять весь стек от kernel до runtime и относиться к странному выводу как к полноценной ошибке, а не к мелкому сбою. Для домашних лабораторий это почти готовый чеклист, как не тратить дни на ложные признаки успеха.