Посты
avatar

#Claude #Codex # Попробовал запустить локальную LLM на GPU Ryzen Zen3 (сравнение и анализ производительности Qwen3-8B Heretic CPU и GPU) Держись, AMD, держись, Vulkan Думал, что это просто игровая GPU — и оказалось, что так оно и есть Похоже, узким местом является пропускная способность памяти (маленький объем VRAM, поэтому используется основная память; ждем Mac M5 Studio) Самая новая архитектура AMD — Zen6, а здесь — CPU третьего поколения (с встроенным GPU) ---- # Сравнение и анализ производительности Qwen3-8B Heretic CPU и GPU Дата измерения: 2026-11-02 / Цель: машина с Ubuntu ## Выводы - **GPU (встроенный Radeon) быстрее при загрузке промпта — примерно в 2,5 раза быстрее, чем CPU.** - **Генерация текста ускоряется всего на 1,1–1,2 раза.** Скорость генерации ограничена скоростью передачи памяти, поскольку встроенный GPU использует ту же память, что и CPU. - При использовании, подобном OpenClaw, когда каждый раз отправляется длинный инструктаж, **кэширование промпта** оказывает гораздо большее влияние, чем GPU: со второго запроса время сократилось с ~7 минут до ~1 минуты. ## Конфигурация измерений | Параметр | Значение | |---|---| | CPU | AMD Ryzen 7 7730U (8 ядер, 16 потоков, Zen 3) | | GPU | Встроенный AMD Radeon Graphics (Barcelo, эквивалент Vega 8) | | ОЗУ | 30 ГБ (по спецификации — DDR4-3200 двойной канал; на реальном устройстве не подтверждено) | | Память для GPU | Выделенная VRAM 512 МБ + общая память (GTT) ~15,4 ГБ. LM Studio может использовать 10,59 ГиБ | | ОС / Драйвер | Ubuntu 24.04.5 LTS, Mesa 25.2.8 (RADV) | | LM Studio | Безголовая версия (llmster), llama.cpp 2.66.0 | | Рантайм для CPU | `llama.cpp-linux-x86_64-avx2` | | Рантайм для GPU | `llama.cpp-linux-x86_64-vulkan-avx2` (все слои размещены на GPU, `--gpu max`) | | Модель | DreamFast/qwen3-8b-heretic Q4_K_M (5,03 ГБ) | | Настройки загрузки | Длина контекста 32768, количество одновременных обработок 1 | ## Методика измерений - Отправлял один и тот же промпт через API LM Studio (`/api/v0/chat/completions`) и сравнивал производительность CPU и GPU. - Каждое условие запускалось дважды. Второй запуск использует кэшированный промпт, поэтому **для скорости загрузки использовались значения первого запуска**. - Скорость генерации взята из `tokens_per_second`, возвращаемого LM Studio. - Мы отключили предварительную обдумывание через `/no_think` и установили `temperature` в 0. - После измерений на GPU прошло 2 минуты охлаждения перед измерением на CPU. - Скрипты и логи находятся в `~/bench/bench.py`, `~/bench/run.sh`, `~/bench/result.log` на машине с Ubuntu. ## Результаты ### Обобщение сравнения | Параметр | Категория | CPU | GPU | Разница | |---|---|---|---|---| | Короткий вопрос (24 токена), генерация 256 токенов | Скорость генерации | 7,3 токена/сек | 8,2 токена/сек | 1,13x | | | Время выполнения | 35,7 сек | 31,4 сек | | | Промпт 921 токен | Скорость загрузки | 30,5 токена/сек | 76,3 токена/сек | **2,5x** | | | До первого токена | 30,2 сек | 12,1 сек | | | | Скорость генерации | 7,0 токена/сек | 8,0 токена/сек | 1,13x | | Промпт 3621 токен | Скорость загрузки | 35,4 токена/сек | 87,5 токена/сек | **2,5x** | | | До первого токена | 102,3 сек | 41,4 сек | | | | Скорость генерации | 5,9 токена/сек | 7,2 токена/сек | 1,2x | ### Подробные измерения | Метод | Параметр | Попытка | Промпт | Генерация | Время выполнения | До первого токена | Скорость генерации | |---|---|---|---|---|---|---|---| | GPU | Короткий вопрос | 1 | 24 | 256 | 31,4 сек | 0,50 сек | 8,26 | | GPU | Короткий вопрос | 2 | 24 | 256 | 31,2 сек | 0,12 сек | 8,23 | | GPU | Промпт ~1000 токенов | 1 | 921 | 32 | 16,0 сек | 12,07 сек | 7,97 | | GPU | Промпт ~1000 токенов (кэш) | 2 | 921 | 32 | 4,0 сек | 0,14 сек | 7,98 | | GPU | Промпт ~4000 токенов | 1 | 3621 | 32 | 45,7 сек | 41,38 сек | 7,18 || GPU | Примерно 4 000 токенов в промпте | 2 (кэш) | 3 621 | 32 | 4,5 секунды | 0,14 секунды | 7,22 | | CPU | Короткий вопрос | 1 | 24 | 256 | 35,7 секунды | 0,73 секунды | 7,29 | | CPU | Короткий вопрос | 2 | 24 | 241 | 32,8 секунды | 0,14 секунды | 7,36 | | CPU | Примерно 1 000 токенов в промпте | 1 | 921 | 32 | 34,7 секунды | 30,21 секунды | 7,03 | | CPU | Примерно 1 000 токенов в промпте | 2 (кэш) | 921 | 32 | 4,6 секунды | 0,15 секунды | 6,96 | | CPU | Примерно 4 000 токенов в промпте | 1 | 3 621 | 32 | 107,5 секунды | 102,30 секунды | 5,94 | | CPU | Примерно 4 000 токенов в промпте | 2 (кэш) | 3 621 | 32 | 5,4 секунды | 0,17 секунды | 5,96 | Единица измерения промпта и генерации — токены, единица скорости генерации — токены/сек. ### Исправление Ранее мы сообщили, что при первом тестировании скорость генерации на GPU увеличилась примерно в 2,2 раза — это было ошибкой. Значение в 3,86 токена/сек для CPU было получено при обработке промпта длиной около 14 000 токенов на bot2. Поскольку при длинных промптах генерация замедляется, сравнение с короткими вопросами было некорректным. При одинаковых условиях разница в скорости генерации составляет всего 1,1–1,2 раза. ## Почему использование GPU не дает ожидаемого ускорения ### 1. Скорость генерации ограничена пропускной способностью памяти При генерации каждого токена LLM считывает все веса модели из памяти. Верхний предел скорости генерации определяется примерно как: «пропускная способность памяти ÷ размер модели». | Параметр | Значение | |---|---| | Теоретическая пропускная способность памяти | Около 51 ГБ/с при двойном канале DDR4-3200 | | Объем данных для чтения на один токен | Около 5 ГБ (вся модель) | | Теоретический предел скорости генерации | 51 ÷ 5,03 ≒ **около 10 токенов/сек** | | Практический результат (GPU) | 8,2 токена/сек (~80% от предела) | | Практический результат (CPU) | 7,3 токена/сек (~70% от предела) | Встроенная GPU использует ту же основную память, что и CPU, поэтому её предел практически идентичен. Даже при использовании GPU улучшение скорости составляет лишь около 10–20%. Внешние GPU имеют собственную высокоскоростную память, поэтому их предел значительно выше. | GPU | Пропускная способность памяти | Соотношение с этой системой Ubuntu | |---|---|---| | Встроенная GPU в этой системе Ubuntu | Около 51 ГБ/с (разделяется с CPU) | 1x | | RTX 4060 | Около 272 ГБ/с | Около 5x | | RTX 4090 | Около 1008 ГБ/с | Около 20x | ### 2. Чтение промпта зависит от вычислительной мощности, но встроенная GPU имеет низкую производительность При чтении промпта обрабатываются множество токенов одновременно, поэтому скорость определяется вычислительной мощностью, а не пропускной способностью памяти. Здесь эффект от GPU проявляется — в тестах скорость чтения увеличилась в 2,5 раза. Однако у этой GPU есть следующие ограничения, из-за которых производительность не превысила этот показатель: | Ограничение | Подробности | |---|---| | Малое количество вычислительных блоков | Только 8 блоков. Оценочная производительность в одинарной точности — около 2 TFLOPS — в десятки раз меньше, чем у игровых GPU | | Отсутствие специализированных схем для матричных операций | Нет аналогов Tensor Core от NVIDIA — специализированных схем для ИИ-вычислений | | Невозможность использования ROCm | Платформа ROCm для GPU AMD официально не поддерживает эту встроенную GPU. Работает через универсальный Vulkan | Для модели размером 8B требуется около 16 GFLOP на обработку одного токена. При производительности около 2 TFLOPS теоретический предел составляет около 120 токенов/сек. Практические результаты — от 76 до 88 токенов/сек — составляют около 6–7% от этого предела. ### 3. Чем длиннее промпт, тем медленнее обработка При увеличении длины контекста каждый токен ссылается на всё больше предыдущих токенов, что замедляет как чтение, так и генерацию. | Условие | Скорость чтения | Скорость генерации | |---|---|---| | GPU, промпт ~1000 токенов | 76 токенов/сек | 8,0 токена/сек | | GPU, промпт ~3600 токенов | 88 токенов/сек | 7,2 токена/сек | | GPU, OpenClaw (15 686 токенов), первые 2 048 токенов | 78,7 токена/сек | — | | GPU, OpenClaw (15 686 токенов), среднее значение по всему промпту | 44,1 токена/сек | 5,1 токена/сек | | CPU, OpenClaw (14 021 токен) | Около 19,5 токена/сек | 3,86 токена/сек |При объеме до 3 600 токенов загрузка стала даже быстрее, так как объем обрабатываемых данных увеличился. При превышении 15 000 токенов скорость снизилась до 46 токенов/сек в конце. ## Проверка кэширования в OpenClaw (bot2 Mei) В тестовой сессии я дважды отправил запросы, обработанные Qwen3 на GPU. | Пункт | Первый запрос | Второй запрос | |---|---|---| | Промпт, отправленный OpenClaw | 15 686 токенов | 15 744 токена | | Фактически загруженные токены | 15 686 (все) | **135 (только новые)** | | Время загрузки | 356,1 секунды | **6,1 секунды** | | Генерация | 247 токенов, 48,1 секунды (5,11 токена/сек) | 249 токенов, 48,5 секунды (5,11 токена/сек) | | Итого | **410 секунд** | **58 секунд** | - OpenClaw каждый раз отправляет одинаковый текст в начале инструкции, поэтому во втором запросе 98% уже обработанных данных были повторно использованы. - Большая часть времени ожидания во втором запросе приходится на примерно 240 токенов мышления. Даже при указании `--thinking off` мышление не останавливалось. Если бы мышление можно было отключить, ожидание сократилось бы до ~10 секунд. - Кэш не истекает по времени. Он удаляется только при смене модели, при вмешательстве другого процесса (из-за ограничения в 1 одновременный процесс) или при сжатии диалога. ## Возможные способы ускорения Так как скорость передачи памяти изменить нельзя, эффективно уменьшить объем загружаемых данных на каждый токен. | Метод | Ожидаемый эффект | Примечания | |---|---|---| | Использование кэша промпта | Загрузка последующих запросов занимает несколько секунд (проверено) | Может быть удален при вмешательстве или сжатии | | Отключение мышления Qwen3 | Сокращение на ~48 секунд на запрос | Возможное снижение качества ответа | | Замена на MoE-модель Qwen3-30B-A3B | Используется ~3B весов на токен. Генерация может ускориться в 2–3 раза, умение также возрастет | Размер ~18 ГБ, не помещается в 10,6 ГБ GPU — часть обрабатывается на CPU. Наличие версии без цензуры не подтверждено | | Переход на меньшую модель (Qwen3-4B) | Генерация ускоряется примерно в 2 раза | Снижение уровня интеллекта | | Использование спекулятивного декодирования | Использование Qwen3-0.6B в качестве черновика. Генерация ускоряется в 1,3–2 раза | Эффект зависит от содержания | | Дополнительная квантизация (например, Q3) | Улучшение на 10–20% | Снижение точности | | Сокращение инструкции | Сокращение времени загрузки первого запроса и после очистки кэша | Потеря функциональности | Эффекты в этой таблице, кроме кэширования промпта, являются оценками и не проверены экспериментально. ## Текущее состояние (на 2026-11-03) | Пункт | Состояние | |---|---| | LM Studio | Остановлен. Автозапуск отключен | | Выбранная среда выполнения | Vulkan (GPU) | | bot2 (Mei) | gpt-5.4-mini | | Порт для bot2 | Остановлен. Автозапуск отключен | | Настройки bot2 для Qwen3 | `~/.openclaw-bot2/openclaw.json.bak-qwen3-active-*` |

Этот контент предназначен исключительно для информационных и образовательных целей. Он может содержать информацию от третьих лиц, спонсорский контент или рекламные материалы, за которые креатор может получить вознаграждение. Ничто в этой ленте не является инвестиционным советом или гарантией прибыли. Вы несете полную ответственность за свои собственные инвестиционные решения. Всегда проводите самостоятельные исследования и проявляйте осторожность перед торговлей. Мы не гарантируем точность информации третьих лиц и не несем ответственности за понесенные убытки. Прошлые результаты не являются показателем будущих. Пожалуйста, ознакомьтесь с нашими Условиями сообщества и Заявлением о раскрытии информации о рисках для получения подробной информации.

avatarОставьте свой ответ

Комментарий