Обновить

Погонял llama.cpp на пяти NVIDIA CMP 90HX и сравнил layer split с tensor split.

Конфигурация:

  • 5 × NVIDIA CMP 90HX по 10 ГБ

  • суммарно llama.cpp видит 49 383 MiB VRAM

  • 4 карты подключены по PCIe x8

  • 1 карта подключена по PCIe x4

  • применен rejoin15

  • модель - Qwen3.8-27B-Heretic

  • квант - Q8_0

  • размер GGUF - 26.62 GiB

  • параметров - 26.90B

  • llama.cpp build e107984

  • распределение по GPU - 1/1/1/1/1

  • все слои загружены на GPU

  • KV cache - F16, тоже на GPU

  • Flash Attention - auto

С tensor split картина получилась довольно интересная.

На пустом контексте генерация выросла с 23.76 до 31.93 tok/s. Это примерно +34%.

На 32K контекста - с 22.15 до 31.06 tok/s, то есть уже около +40%.

Для чистой генерации tensor split реально быстрее.

Но есть обратная сторона - prompt processing просел очень сильно.

На пустом контексте:

  • Layer - 1992.67 tok/s

  • Tensor - 268.46 tok/s

На 32K:

  • Layer - 1457.97 tok/s

  • Tensor - 246.84 tok/s

То есть обработка входного контекста в tensor split получилась примерно в 6-7 раз медленнее.

На 64K tensor-тест дальше не пошел - модель выгрузилась из памяти. Причину пока отдельно не разбирал, поэтому данные для tensor на 64K, 96K и 128K не привожу.

Layer split при этом нормально прошел весь тест до 128K.

Скорость генерации по мере заполнения контекста:

  • 0K - 23.76 tok/s

  • 32K - 22.15 tok/s

  • 64K - 20.75 tok/s

  • 96K - 19.53 tok/s

  • 128K - 18.44 tok/s

То есть даже при 128K контекста dense-модель на 26.9B параметров в Q8 все еще работает со скоростью около 18.4 tok/s.

Prompt processing тоже падает постепенно, без резкого провала:

  • 0K - 1992.67 tok/s

  • 32K - 1457.97 tok/s

  • 64K - 1136.52 tok/s

  • 96K - 916.35 tok/s

  • 128K - 724.86 tok/s

Для обычного чата tensor split может быть интересен, если контекст короткий, а ответы длинные. Там прирост с 24 до 32 tok/s ощущается.

Но если чат уже большой и модель каждый раз должна перерабатывать много входных токенов, выгода быстро начинает пропадать из-за очень медленного prefill.

Для кодового агента вроде Hermes я бы оставил layer split.

Агент постоянно читает файлы, получает куски исходников, и добавляет все это в контекст. В таком режиме скорость обработки входа важнее, чем дополнительные 8 tok/s на генерации.

Плюс layer split у меня стабильно работает вплоть до 128K, а tensor пока отвалился уже при переходе к 64K.

Итог пока такой:

  • короткий чат и длинные ответы - tensor split может быть быстрее

  • длинный чат - уже спорно

  • кодовый агент и большие проекты - layer split выглядит намного практичнее

Сами CMP 90HX тоже порадовали. Qwen3.8-27B dense Q8 дает около 24 tok/s на пустом контексте и около 18.4 tok/s на 128K.

После того как выкрутил вентиляторы на 100%, самая горячая карта держится примерно на 65 градусах.

Теги:
+1
Комментарии2

В Cloudflare сэкономили 100 ТБ оперативной памяти, оптимизировав кэш DNS‑резолвера 1.1.1.1

В Cloudflare рассказали об опыте, когда небольшая экономия памяти на одной структуре данных, будучи умноженной на сотни миллиардов экземпляров, превращается в десятки терабайт. Сетевые инженеры последовательно внесли пять сравнительно небольших изменений в виде патчей в представление записей кэша DNS-резолвера 1.1.1.1 и в итоге высвободили около 100 ТБ оперативной памяти на серверах IT-инфраструктуры.

В Cloudflare сэкономили 100 ТБ оперативной памяти, оптимизировав кэш DNS‑резолвера 1.1.1.1

Публикации