description: Документация и частые вопросы — Установка драйверов AMD ROCm на Ubuntu Linux — Самая полезная информация в информационном разделе сайта компании HOSTKEY tags: search:exlude
Установка драйверов AMD ROCm на Ubuntu Linux¶
Данная инструкция описывает процесс установки стека ROCm (Radeon Open Compute) для вычислений на видеокартах AMD под управлением Ubuntu 22.04 и 24.04. Использование ROCm позволяет запускать задачи машинного обучения и ИИ на базе современных архитектур AMD.
Подготовка системы¶
Перед началом установки убедитесь, что ваша система обновлена и готова к работе с графическим стеком AMD.
- Настройка BIOS: Убедитесь, что в настройках BIOS сервера включен параметр Above 4G Decoding и Resizable BAR. Это критически важно для корректного распределения памяти GPU.
- Поддержка ОС: Официально поддерживается установка на версии Ubuntu 22.04 LTS (Jammy) и Ubuntu 24.04 LTS (Noble).
-
Обновление ядра (для Ubuntu 22.04): Для корректной работы новых серий видеокарт (Radeon 7000, Instinct MI300 и др.) необходимо использовать свежее ядро HWE (Hardware Enablement):
Ручная установка компонентов¶
Для самостоятельной установки выполните следующие команды:
-
Обновление и зависимости
-
Определение последней версии ROCm и скачивание amdgpu-install
# Получение последней версии ROCm LATEST_ROCM=$(curl -s https://repo.radeon.com/rocm/ | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) if [ -z "$LATEST_ROCM" ]; then echo "Используется 7.1.1 по умолчанию" LATEST_ROCM="7.1.1" fi # Определение кодового имени Ubuntu OS_VER=$(lsb_release -rs) case "$OS_VER" in "22.04") UBUNTU_NAME="jammy" ;; "24.04") UBUNTU_NAME="noble" ;; esac echo "ROCm версия: $LATEST_ROCM, Ubuntu: $UBUNTU_NAME" # Скачивание и установка amdgpu-install INSTALLER_URL="https://repo.radeon.com/amdgpu-install/${LATEST_ROCM}/ubuntu/${UBUNTU_NAME}/" DEB_NAME=$(curl -s "$INSTALLER_URL" | grep -oE 'amdgpu-install_[^"]+\.deb' | head -n 1) wget -q "${INSTALLER_URL}${DEB_NAME}" sudo apt install -y "./${DEB_NAME}" rm "${DEB_NAME}" sudo apt update -
Установка ROCm через amdgpu-install
-
Установка компонентов мониторинга
-
Настройка прав доступа
-
Настройка путей (PATH и LD_LIBRARY_PATH)
if ! grep -q "/opt/rocm/bin" ~/.bashrc; then echo -e '\n# AMD ROCm Paths' >> ~/.bashrc echo "export PATH=\$PATH:/opt/rocm-${LATEST_ROCM}/bin:/opt/rocm/bin:/opt/rocm/sbin" >> ~/.bashrc echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/rocm-${LATEST_ROCM}/lib:/opt/rocm/lib:/opt/rocm/lib64" >> ~/.bashrc fi source ~/.bashrc
Проверка установки¶
После завершения установки и перезагрузки системы проверьте корректность работы драйверов:
-
Инструмент rocminfo:
Команда должна вывести список доступных GPU и их характеристики (агенты HSA).Пример вывода rocminfo при успешной установке драйверов и ROCm
ROCk module is loaded ===================== HSA System Attributes ===================== Runtime Version: 1.18 Runtime Ext Version: 1.14 System Timestamp Freq.: 1000.000000MHz Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count) Machine Model: LARGE System Endianness: LITTLE Mwaitx: DISABLED XNACK enabled: NO DMAbuf Support: YES VMM Support: NO ========== HSA Agents ========== ******* Agent 1 ******* Name: AMD Ryzen 9 7950X 16-Core Processor Uuid: CPU-XX Marketing Name: AMD Ryzen 9 7950X 16-Core Processor Vendor Name: CPU Feature: None specified Profile: FULL_PROFILE Float Round Mode: NEAR Max Queue Number: 0(0x0) Queue Min Size: 0(0x0) Queue Max Size: 0(0x0) Queue Type: MULTI Node: 0 Device Type: CPU Cache Info: L1: 32768(0x8000) KB Chip ID: 0(0x0) ASIC Revision: 0(0x0) Cacheline Size: 64(0x40) Max Clock Freq. (MHz): 5881 BDFID: 0 Internal Node ID: 0 Compute Unit: 32 SIMDs per CU: 0 Shader Engines: 0 Shader Arrs. per Eng.: 0 WatchPts on Addr. Ranges:1 Memory Properties: Features: None Pool Info: Pool 1 Segment: GLOBAL; FLAGS: FINE GRAINED Size: 130980620(0x7ce9b0c) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Recommended Granule:4KB Alloc Alignment: 4KB Accessible by all: TRUE Pool 2 Segment: GLOBAL; FLAGS: EXTENDED FINE GRAINED Size: 130980620(0x7ce9b0c) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Recommended Granule:4KB Alloc Alignment: 4KB Accessible by all: TRUE Pool 3 Segment: GLOBAL; FLAGS: KERNARG, FINE GRAINED Size: 130980620(0x7ce9b0c) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Recommended Granule:4KB Alloc Alignment: 4KB Accessible by all: TRUE Pool 4 Segment: GLOBAL; FLAGS: COARSE GRAINED Size: 130980620(0x7ce9b0c) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Recommended Granule:4KB Alloc Alignment: 4KB Accessible by all: TRUE ISA Info: ******* Agent 2 ******* Name: gfx1036 Uuid: GPU-XX Marketing Name: AMD Radeon Graphics Vendor Name: AMD Feature: KERNEL_DISPATCH Profile: BASE_PROFILE Float Round Mode: NEAR Max Queue Number: 128(0x80) Queue Min Size: 64(0x40) Queue Max Size: 131072(0x20000) Queue Type: MULTI Node: 1 Device Type: GPU Cache Info: L1: 16(0x10) KB L2: 256(0x100) KB Chip ID: 5710(0x164e) ASIC Revision: 1(0x1) Cacheline Size: 64(0x40) Max Clock Freq. (MHz): 2200 BDFID: 2560 Internal Node ID: 1 Compute Unit: 2 SIMDs per CU: 2 Shader Engines: 1 Shader Arrs. per Eng.: 1 WatchPts on Addr. Ranges:4 Coherent Host Access: FALSE Memory Properties: APU Features: KERNEL_DISPATCH Fast F16 Operation: TRUE Wavefront Size: 32(0x20) Workgroup Max Size: 1024(0x400) Workgroup Max Size per Dimension: x 1024(0x400) y 1024(0x400) z 1024(0x400) Max Waves Per CU: 32(0x20) Max Work-item Per CU: 1024(0x400) Grid Max Size: 4294967295(0xffffffff) Grid Max Size per Dimension: x 2147483647(0x7fffffff) y 65535(0xffff) z 65535(0xffff) Max fbarriers/Workgrp: 32 Packet Processor uCode:: 18 SDMA engine uCode:: 1 IOMMU Support:: None Pool Info: Pool 1 Segment: GLOBAL; FLAGS: COARSE GRAINED Size: 65490308(0x3e74d84) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Recommended Granule:2048KB Alloc Alignment: 4KB Accessible by all: FALSE Pool 2 Segment: GLOBAL; FLAGS: EXTENDED FINE GRAINED Size: 65490308(0x3e74d84) KB Allocatable: TRUE Alloc Granule: 4KB Alloc Recommended Granule:2048KB Alloc Alignment: 4KB Accessible by all: FALSE Pool 3 Segment: GROUP Size: 64(0x40) KB Allocatable: FALSE Alloc Granule: 0KB Alloc Recommended Granule:0KB Alloc Alignment: 0KB Accessible by all: FALSE ISA Info: ISA 1 Name: amdgcn-amd-amdhsa--gfx1036 Machine Models: HSA_MACHINE_MODEL_LARGE Profiles: HSA_PROFILE_BASE Default Rounding Mode: NEAR Default Rounding Mode: NEAR Fast f16: TRUE Workgroup Max Size: 1024(0x400) Workgroup Max Size per Dimension: x 1024(0x400) y 1024(0x400) z 1024(0x400) Grid Max Size: 4294967295(0xffffffff) Grid Max Size per Dimension: x 2147483647(0x7fffffff) y 65535(0xffff) z 65535(0xffff) FBarrier Max Size: 32 ISA 2 Name: amdgcn-amd-amdhsa--gfx10-3-generic Machine Models: HSA_MACHINE_MODEL_LARGE Profiles: HSA_PROFILE_BASE Default Rounding Mode: NEAR Default Rounding Mode: NEAR Fast f16: TRUE Workgroup Max Size: 1024(0x400) Workgroup Max Size per Dimension: x 1024(0x400) y 1024(0x400) z 1024(0x400) Grid Max Size: 4294967295(0xffffffff) Grid Max Size per Dimension: x 2147483647(0x7fffffff) y 65535(0xffff) z 65535(0xffff) FBarrier Max Size: 32 *** Done *** -
Инструмент rocm-smi:
Результат вывода команды:
WARNING: AMD GPU device(s) is/are in a low-power state. Check power control/runtime_status ========================================= ROCm System Management Interface ========================================= =================================================== Concise Info =================================================== Device Node IDs Temp Power Partitions SCLK MCLK Fan Perf PwrCap VRAM% GPU% (DID, GUID) (Edge) (Socket) (Mem, Compute, ID) ==================================================================================================================== 0 1 0x164e, 49735 43.0°C 57.158W N/A, N/A, 0 N/A 1800Mhz 0% auto N/A 3% 0% ==================================================================================================================== =============================================== End of ROCm SMI Log ================================================или можно использовать выводы утилиты
Все это позволит увидеть текущую загрузку, температуру и потребление видеокарт.
Примечание
amd-smiпостепенно заменяетrocm-smiкак основную утилиту мониторинга в новых версиях ROCm.
Работа с Docker¶
Если вы используете Docker, необходимо установить инструментарий для проброса GPU в контейнеры:
Автоматическая установка "в 1 клик"¶
Bash-скрипт для полной автоматизации процесса. Он определяет последнюю версию ROCm, устанавливает драйверы, утилиту rocminfo и настраивает пути.
#!/bin/bash
# AMD GPU Auto Detection & ROCm LATEST Installation
# Optimized for Radeon AI PRO R9700 (Navi 48)
set -e
# 🔍 1. GPU Detection Functions
detect_r9700() {
PCI_ID=$(lspci -nn | grep -i vga | grep "1002:7551" | head -1)
[[ -n "$PCI_ID" ]] && { echo "✅ R9700/Navi48 DETECTED: $PCI_ID"; R9700_PCI=$(echo $PCI_ID | cut -d' ' -f1); return 0; }
return 1
}
echo "🔍 Scanning AMD GPUs..."
lspci -nn | grep -i vga | grep 1002 | awk '{print $1, $3}' | head -5
R9700_DETECTED=0; GPU_TYPE="Unknown"; GPU_PCI=""
if detect_r9700; then
R9700_DETECTED=1; GPU_TYPE="R9700/Navi48"; GPU_PCI="$R9700_PCI"
fi
echo "🎯 Target GPU: $GPU_TYPE ($GPU_PCI)"
# 🚀 2. Kernel check (R9700: 6.13+ for Navi48)
KERNEL_INSTALLED=0
if [[ $R9700_DETECTED -eq 1 ]]; then
KERNEL_VERSION=$(uname -r)
echo "Current Kernel: $KERNEL_VERSION"
KERNEL_MAJOR_MINOR=$(echo $KERNEL_VERSION | grep -oE '[0-9]+\.[0-9]+' | head -1 | tr -d .)
if [[ ${KERNEL_MAJOR_MINOR:-0} -lt 613 ]]; then
echo "📦 R9700 requires newer kernel → Installing Mainline 6.13+"
sudo add-apt-repository ppa:cappelikan/ppa -y 2>/dev/null || true
sudo apt update
sudo apt install -y mainline pkexec
mainline install-latest
KERNEL_INSTALLED=1
echo "✅ Kernel ready (will activate after reboot)"
else
echo "✅ Kernel $KERNEL_VERSION is sufficient."
fi
fi
# ⚙️ 3. GRUB Parameters for R9700
if [[ $R9700_DETECTED -eq 1 ]]; then
GRUB_PARAMS="quiet splash amdgpu.dc=0 amdgpu.gpu_recovery=1 amdgpu.runpm=0 amdgpu.ppfeaturemask=0xffffffff"
if ! grep -q "amdgpu.dc=0" /etc/default/grub 2>/dev/null; then
echo "⚙️ Updating GRUB for Navi 48 stability..."
sudo cp /etc/default/grub /etc/default/grub.backup
sudo sed -E "s/GRUB_CMDLINE_LINUX_DEFAULT=\"[^\"]*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$GRUB_PARAMS\"/" /etc/default/grub > /tmp/grub.new
sudo mv /tmp/grub.new /etc/default/grub
sudo update-grub
fi
fi
echo "🚀 Setting up ROCm LATEST repository..."
# 🧹 4. Clean previous AMD installations
sudo dpkg --configure -a || true
sudo apt remove --purge -y rocminfo || true
sudo apt purge -y 'rocm*' 'amdgpu*' 'graphics*' 'hip*' || true
sudo apt autoremove -y
sudo apt clean
sudo rm -rf /etc/apt/sources.list.d/amdgpu* /etc/apt/sources.list.d/rocm* /etc/apt/sources.list.d/graphics*
sudo apt update
# 📦 5. Configure ROCm LATEST Repository with PINNING
UBUNTU_NAME=$(lsb_release -sc 2>/dev/null || echo "noble")
sudo apt update
sudo apt install -y wget gnupg2 curl
# Add GPG Key
wget -qO- https://repo.radeon.com/rocm/rocm.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/rocm-archive-keyring.gpg > /dev/null
# Add Latest Repo
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/rocm-archive-keyring.gpg] https://repo.radeon.com/rocm/apt/latest/ $UBUNTU_NAME main" | sudo tee /etc/apt/sources.list.d/rocm.list
# 🔥 КРИТИЧНО: Приоритет репозиторию AMD перед стандартным Ubuntu
cat <<EOF | sudo tee /etc/apt/preferences.d/rocm-pin-600
Package: *
Pin: origin repo.radeon.com
Pin-Priority: 600
EOF
sudo apt update
# 🎯 6. Install ROCm Stack (Принудительно очищаем старое перед установкой)
echo "📥 Installing ROCm LATEST packages..."
sudo apt install -y -o Dpkg::Options::="--force-overwrite" \
rocm-dev rocm-libs rocm-hip-sdk rocm-smi-lib rocminfo
# 🛠 7. Post-install Configuration
sudo usermod -aG render,video $USER
# 🔍 7.1. Auto-detect installed ROCm version
echo "🔍 Detecting installed ROCm version..."
# Находим самую свежую директорию rocm-X.Y.Z в /opt
INSTALLED_ROCM_DIR=$(ls -d /opt/rocm-[0-9]* 2>/dev/null | sort -V | tail -n 1)
if [ -n "$INSTALLED_ROCM_DIR" ]; then
REAL_VERSION=$(echo "$INSTALLED_ROCM_DIR" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
echo "✅ Found ROCm version: $REAL_VERSION in $INSTALLED_ROCM_DIR"
# Создаем символическую ссылку /opt/rocm -> /opt/rocm-X.Y.Z
sudo ln -sfn "$INSTALLED_ROCM_DIR" /opt/rocm
echo "🔗 Linked /opt/rocm -> $INSTALLED_ROCM_DIR"
else
echo "❌ Error: No ROCm installation found in /opt/rocm-*"
REAL_VERSION="latest"
fi
# 📝 7.2. Environment Variables configuration
if ! grep -q "AMD ROCm Paths" ~/.bashrc; then
cat >> ~/.bashrc << EOF
# AMD ROCm Paths
export PATH="/opt/rocm/bin:\$PATH"
export LD_LIBRARY_PATH="/opt/rocm/lib:\$LD_LIBRARY_PATH"
EOF
if [[ $R9700_DETECTED -eq 1 ]]; then
echo "export HSA_OVERRIDE_GFX_VERSION=12.0.0 # R9700 gfx1200" >> ~/.bashrc
fi
echo "✅ Added paths to ~/.bashrc"
fi
# 🐳 8. Docker support (Optional)
if command -v docker &> /dev/null; then
sudo apt install -y rocm-gdb rocm-container-toolkit || echo "Skipping docker toolkit..."
fi
# Power On card!!!
echo on | sudo tee /sys/class/drm/card0/device/power/control
echo "--------------------------------------------------"
echo "✅ ROCm LATEST ($REAL_VERSION) INSTALLED!"
if [[ $KERNEL_INSTALLED -eq 1 ]]; then
echo "🔄 CRITICAL: REBOOT REQUIRED to activate Kernel 6.13+ for R9700!"
else
echo "🔄 REBOOT recommended to apply group changes."
fi
echo ""
echo "Verify after reboot:"
echo " rocm-smi --showhw"
echo " rocminfo | grep gfx12"
echo "--------------------------------------------------"
Внимание
После выполнения скрипта обязательна перезагрузка сервера командой sudo reboot. Это необходимо для активации новых групп пользователей и модулей ядра.