Last active 5 months ago

llm

drholy revised this gist 5 months ago. Go to revision

No changes

drholy revised this gist 5 months ago. Go to revision

1 file changed, 12 deletions

manual.md

@@ -1,15 +1,3 @@
1 - Судя по выводу, **Device 0 полностью не отвечает** (`N/A` по всем параметрам, 0% нагрузки), а система явно указывает на переход в режим низкого энергопотребления. Device 1 работает штатно. Обе карты имеют одинаковый Device ID `0x66a1` (это GPU на архитектуре RDNA3, например RX 7800 XT / 7900 GRE).
2 -
3 - ### 🔍 Вероятные причины
4 - 1. **Linux Runtime PM**: ядро перевело неиспользуемую карту в состояние `D3cold`/`suspended` для экономии энергии, а драйвер `amdgpu` или ROCm не могут её корректно "разбудить".
5 - 2. **Неполная инициализация драйвера**: отсутствие/старая прошивка, конфликт версий ядра и ROCm, или ошибка PCIe-линка.
6 - 3. **Аппаратная проблема**: недостаточное питание, плохой контакт в слоте, неисправность карты.
7 - 4. **Неподдерживаемая конфигурация**: ваша версия ROCm может не до конца поддерживать RDNA3 в multi-GU или требует определённых параметров ядра.
8 -
9 - ---
10 -
11 - ### 🛠 Пошаговое решение
12 -
13 1 #### 1. Определите, какой системной карте соответствует `Device 0`
14 2 ```bash
15 3 ls -l /sys/class/drm/ | grep card

drholy revised this gist 5 months ago. Go to revision

1 file changed, 56 insertions

manual.md(file created)

@@ -0,0 +1,56 @@
1 + Судя по выводу, **Device 0 полностью не отвечает** (`N/A` по всем параметрам, 0% нагрузки), а система явно указывает на переход в режим низкого энергопотребления. Device 1 работает штатно. Обе карты имеют одинаковый Device ID `0x66a1` (это GPU на архитектуре RDNA3, например RX 7800 XT / 7900 GRE).
2 +
3 + ### 🔍 Вероятные причины
4 + 1. **Linux Runtime PM**: ядро перевело неиспользуемую карту в состояние `D3cold`/`suspended` для экономии энергии, а драйвер `amdgpu` или ROCm не могут её корректно "разбудить".
5 + 2. **Неполная инициализация драйвера**: отсутствие/старая прошивка, конфликт версий ядра и ROCm, или ошибка PCIe-линка.
6 + 3. **Аппаратная проблема**: недостаточное питание, плохой контакт в слоте, неисправность карты.
7 + 4. **Неподдерживаемая конфигурация**: ваша версия ROCm может не до конца поддерживать RDNA3 в multi-GU или требует определённых параметров ядра.
8 +
9 + ---
10 +
11 + ### 🛠 Пошаговое решение
12 +
13 + #### 1. Определите, какой системной карте соответствует `Device 0`
14 + ```bash
15 + ls -l /sys/class/drm/ | grep card
16 + # Обычно card0 → Device 0, card1 → Device 1
17 + # Точнее можно сопоставить через:
18 + lspci -k | grep -iE 'vga|3d' -A 2
19 + ```
20 +
21 + #### 2. Проверьте статус энергопотребления
22 + ```bash
23 + cat /sys/class/drm/card0/device/power/runtime_status
24 + cat /sys/class/drm/card0/device/power/control
25 + ```
26 + - Если `runtime_status` = `suspended` или `auto`, а `control` = `auto` → система пытается экономить энергию.
27 + - Если `control` = `auto`, измените его временно:
28 + ```bash
29 + echo on | sudo tee /sys/class/drm/card0/device/power/control
30 + ```
31 + *(запись в `runtime_status` не требуется и обычно запрещена)*
32 + Снова запустите `rocm-smi`. Если данные появились → причина точно в Runtime PM.
33 +
34 + #### 3. Проверьте логи ядра на ошибки
35 + ```bash
36 + dmesg | grep -iE 'amdgpu|pcie|error|firmware|link' | tail -40
37 + ```
38 + Ищите строки вроде:
39 + - `amdgpu: failed to load firmware`
40 + - `PCIe link degraded` или `Gen1 x1`
41 + - `runtime suspend failed` или `device not responding`
42 +
43 + #### 4. Если Runtime PM мешает → отключите его навсегда
44 + Отредактируйте GRUB:
45 + ```bash
46 + sudo nano /etc/default/grub
47 + ```
48 + В строку `GRUB_CMDLINE_LINUX_DEFAULT` добавьте:
49 + ```
50 + amdgpu.runpm=0 pcie_aspm=off
51 + ```
52 + Примените и перезагрузитесь:
53 + ```bash
54 + sudo update-grub # или sudo grub2-mkconfig -o /boot/grub2/grub.cfg на RHEL/Arch
55 + sudo reboot
56 + ```

drholy revised this gist 5 months ago. Go to revision

1 file changed, 1 insertion

manual_amd_radeon_pro_vii.yaml

@@ -22,6 +22,7 @@ services:
22 22 - /dev/kfd
23 23 device_cgroup_rules:
24 24 - 'c 226:* rmw'
25 + runtime: runc
25 26
26 27 networks:
27 28 ollama-docker:

drholy revised this gist 5 months ago. Go to revision

2 files changed, 101 insertions

manual_amd_radeon_pro_vii.yaml(file created)

@@ -0,0 +1,28 @@
1 + services:
2 + ollama-amd2:
3 + image: xxdoman/ollama-mi50:latest
4 + container_name: ollama-amd2
5 + ports:
6 + - 7871:11434
7 + environment:
8 + - OLLAMA_KEEP_ALIVE=2h
9 + - OLLAMA_NUM_PARALLEL=1
10 + - OLLAMA_KV_CACHE_TYPE=q4_0
11 + - OLLAMA_FLASH_ATTENTION=1
12 + - OLLAMA_LLM_LIBRARY=rocm
13 + - OLLAMA_MODELS=/models
14 + - HSA_OVERRIDE_GFX_VERSION=9.0.6
15 + - LD_LIBRARY_PATH="/usr/lib/ollama/rocm"
16 + volumes:
17 + - /dev/dri:/dev/dri
18 + - ./ollama_models:/models
19 + networks:
20 + - ollama-docker
21 + devices:
22 + - /dev/kfd
23 + device_cgroup_rules:
24 + - 'c 226:* rmw'
25 +
26 + networks:
27 + ollama-docker:
28 + driver: bridge

readme.md(file created)

@@ -0,0 +1,73 @@
1 + **Совместимость и подготовка хоста**
2 + Перед запуском Docker необходимо убедиться, что ваша хост-система правильно идентифицирует карту MI50 и загрузила необходимые драйверы/модули.
3 +
4 + ---
5 +
6 + ### 1. Проверьте видимость оборудования
7 + Сначала проверьте, видит ли ядро Linux карту на шине PCI:
8 + ```bash
9 + lspci -nn | grep -E "1002|Display|3D"
10 + ```
11 + Вы должны увидеть запись о «Vega 20» или «Radeon Instinct MI50».
12 +
13 + ---
14 +
15 + ### 2. Установите драйверы ROCm на хост (Ubuntu 24.04)
16 + Если карта не обнаружена или `rocminfo` отсутствует, установите стек ROCm. Для Ubuntu 24.04 (Благородный) и ROCm 7.1 используйте следующие команды:
17 +
18 + #### Обновите систему
19 + ```bash
20 + sudo apt update && sudo apt upgrade -y
21 + ```
22 +
23 + #### Скачайте и установите репозиторий AMDGPU
24 + ```bash
25 + wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/noble/amdgpu-install_7.2.70200-1_all.deb
26 + sudo apt install ./amdgpu-install_7.2.70200-1_all.deb
27 + ```
28 +
29 + #### Установите ROCm и HIP
30 + ```bash
31 + sudo amdgpu-install --usecase=rocm,hip
32 + ```
33 +
34 + #### Перезагрузка хоста
35 + ```bash
36 + sudo reboot now
37 + ```
38 +
39 + ---
40 +
41 + ### 3. Узлы и разрешения тестовых устройств
42 + Docker требует доступа к определенным узлам устройства. Проверьте их наличие:
43 + ```bash
44 + ls -l /dev/kfd /dev/dri/render*
45 + ```
46 +
47 + **Важно:** Ваш пользователь должен быть в группах `render` и `video` для доступа к графическому процессору:
48 + ```bash
49 + sudo usermod -aG render $USER
50 + sudo usermod -aG video $USER
51 + # Выходите и войдите снова, чтобы изменения вступили в силу
52 + ```
53 +
54 + ---
55 +
56 + ### 4. Окончательная проверка хоста
57 + Запустите следующие команды на хосте. Если они завершатся ошибкой, Docker не будет работать:
58 +
59 + #### Проверьте информацию ROCm
60 + ```bash
61 + rocminfo
62 + ```
63 + **Найдите:** `Name: gfx906`
64 +
65 + #### Проверьте SMI
66 + ```bash
67 + rocm-smi
68 + ```
69 + **Должен показывать:** ваш MI50 и текущую температуру.
70 +
71 + ---
72 +
73 + **Примечание:** Убедитесь, что все команды выполнены в правильном порядке и система обновлена.
Newer Older