Купил себе Intel Xeon 3425 (12 cores / 24 threads), есть AMX.
Память 8 каналов * 64GB DDR5-4800. Но почему то скорость памяти тормозит, BIOS пишет, что у меня Memory Channel Mode: Mixed. Из-за этого скорость около половины от того, что должно быть. Разбираюсь...
Запустил build от 2025-July-04.
Модель ubergarm/DeepSeek-R1-0528-GGUF, квант IQ2_K_R4 - это 220GB
Если запускаю с RTX 3090 24GB VRAM, получаю:
PP 131 t/s
TG 7.5 t/s
Если запускаю с RTX 4090D 48GB VRAM, получаю:
PP 164 t/s
TG 8.5 t/s
Надеюсь, если получится настроить RAM, то получится разогнать TG раза в два.
Сам я не пробовал, но из того что читал - у Маков очень неплохая скорость генерации токенов, но медленная скорость обработки промпта - не хватает скорости процессора. Поэтому для длинных контекстов Мак не очень.
Я не специалист по сетям. Но представляют себе так, что хоть с IPv4, хоть с IPv6 - в любом случае Кубернетусу нужны дополнительные хопы, - LoadBalancer, Ingress. И поэтому в общем-то без разницы - IPv4/v6 с НАТ или без...
Хотя от ограничений по IP диапазонам IPv6 поможет.
Я пробовал использовать Harvester 1.4.0, который идёт уже с kubeVirt и для storage используется Longhorn.
Да, работает. Но всё довольно сыро:
Создаю виртуалку у которой 16GB RAM, но для объектов Кубернетеса для этой виртуалки нужно ещё немного памяти (это я про resources), и оказывается что никто не знает как посчитать этот overhead. Из-за этого виртуалки иногда крэшатся Out-of-memory. Причём у виртуалки памяти достаточно - это у куба не хватает, но крэшится вся виртуалка.
Некоторые действия (migration, shutdown, power on...) делаются декларативно. То есть создаётся какой-то объект куба. А когда виртуалка например не стартует, то приходится копаться в дебрях куба, чтобы понять - где там проблема? Пока найдёшь нужный манифест в котором есть статус, в котором указана проблема...
Проброс устройств - боль. Отдельный оператор занимается сканированием PCI устройств. Список этих устройств - глобальный для всех нодов. Как этот список управляется - загадка. Управляется он через манифесты, но иногда некоторых устройств там нет. Почему? - кто ж его знает. Иногда - устройства показаны занятыми, хотя никто их не использует.
Как-то раз виртуалка отказывалась запускаться и я не мог понять почему. Пошёл спать. Утром пришёл - виртуалка запущена. Что-то там внутри куба "дошло" за несколько часов...
В общем, надоело мучаться и я перешёл на Proxmox - там всё намного стабильней.
Ktransformer kernel can achieve 21 TFLOPS of BF16 throughput and 35 TOPS of Int8 throughput on Xeon4 CPUs — about 4× faster than PyTorch’s general AMX kernel. For DeepSeek-V3, pairing a Xeon4 CPU with a single RTX 4090 GPU achieves 418 tokens/s end-to-end throughput
Попробовать выяснить оптимальное количество ядер - это было бы интересно.
Я видел комментарий, что в среднем одно ядро современного (Sapphire Rapids) Xeon способно переварить 20-30ГБ/с данных модели. Поэтому если ядер много, а память недостаточно быстрая чтобы загрузить ядра - они простаивают. И наоборот - если память быстрая, но не хватает скорости ядер их обработать - то простаивает память.
Но эта цифра 20-30ГБ/c - сомнительная. Просто кто-то написал. Вот если бы реально это как-то померить, и как оно зависит от квантизации, ...
Насколько я смог разобраться, это потому что один процессор работает с памятью на полной скорости (~120GB/s в моём случае), а если процессора два - то работа с памятью идёт через NUMA, а это - около 20GB/s для памяти на "чужом" процессоре.
## 1. ktransformers посмотрел, но как-то уже слишком муторно его запускать... Сложно как-то.
## 2. DGGML_CUDA_IQK_FORCE_BF16=1
Я изначально компилировал с этим параметром
## 3. У меня всё на Ubuntu, так что aida64 я запустить не могу - оно только для Windows.
Теоретически, скорость памяти у меня должна быть 307GB/s.
Запускаю mlc:
./mlc
Intel(R) Memory Latency Checker - v3.11a
ALL Reads : 124753.4
3:1 Reads-Writes : 162175.4
2:1 Reads-Writes : 168777.0
1:1 Reads-Writes : 187221.9
Stream-triad like: 149692.6
## 4. Сейчас попробую llama.cpp. Её надо компилировать? Или можно запустить через Docker?
Купил себе Intel Xeon 3425 (12 cores / 24 threads), есть AMX.
Память 8 каналов * 64GB DDR5-4800. Но почему то скорость памяти тормозит, BIOS пишет, что у меня Memory Channel Mode: Mixed. Из-за этого скорость около половины от того, что должно быть. Разбираюсь...
Запустил build от 2025-July-04.
Модель ubergarm/DeepSeek-R1-0528-GGUF, квант IQ2_K_R4 - это 220GB
Если запускаю с RTX 3090 24GB VRAM, получаю:
PP 131 t/s
TG 7.5 t/s
Если запускаю с RTX 4090D 48GB VRAM, получаю:
PP 164 t/s
TG 8.5 t/s
Надеюсь, если получится настроить RAM, то получится разогнать TG раза в два.
CUDA_VISIBLE_DEVICES=0 ./build/bin/llama-sweep-bench \ --model ./IQ2_K_R4/DeepSeek-R1-0528-IQ2_K_R4-00001-of-00005.gguf \ --ctx-size 32768 \ -ctk q8_0 -fa -mla 3 \ -amb 256 \ -ser 6,1 \ -fmoe \ -b 4096 -ub 4096 \ --temp 0.6 --top-p 0.95 \ --n-gpu-layers 999 \ --override-tensor "blk\.(3|4|5|6|7|8|9|10)\.ffn_.*=CUDA0" \ --override-tensor exps=CPU \ --parallel 1 \ --threads 12Если запускаю сразу на двух карточках - то скорость получается на 5-6% быстрее чем на одной RTX 4090D, то есть смысла гонять на обоих карточках нет.
Сам я не пробовал, но из того что читал - у Маков очень неплохая скорость генерации токенов, но медленная скорость обработки промпта - не хватает скорости процессора. Поэтому для длинных контекстов Мак не очень.
Спасибо за статью - узнал много нового про параметры запуска в которых трудно было разобраться самому.
Правильно ли я понял, что MLA есть только у DeepSeek и поэтому на больших контекстах DeepSeek работает лучше любых других моделей?
Я не специалист по сетям. Но представляют себе так, что хоть с IPv4, хоть с IPv6 - в любом случае Кубернетусу нужны дополнительные хопы, - LoadBalancer, Ingress. И поэтому в общем-то без разницы - IPv4/v6 с НАТ или без...
Хотя от ограничений по IP диапазонам IPv6 поможет.
Перевод "Custom Resources", как "пользовательские ресурсы" - немного странный, как мне кажется. Правда, я лучшего не знаю...
А по поводу статьи - мне интересно, с какого уровня нагрузки может возникнуть необходимость "разгружать" ETCD?
Некоторые темы показались интересными.
Но когда я попробовал зайти на ваш сайт - Clouflare меня блокирует и не пускает. Вы там может сделайте правила попроще...
Из моего опыта:
Я пробовал использовать Harvester 1.4.0, который идёт уже с kubeVirt и для storage используется Longhorn.
Да, работает. Но всё довольно сыро:
Создаю виртуалку у которой 16GB RAM, но для объектов Кубернетеса для этой виртуалки нужно ещё немного памяти (это я про resources), и оказывается что никто не знает как посчитать этот overhead. Из-за этого виртуалки иногда крэшатся Out-of-memory. Причём у виртуалки памяти достаточно - это у куба не хватает, но крэшится вся виртуалка.
Некоторые действия (migration, shutdown, power on...) делаются декларативно. То есть создаётся какой-то объект куба. А когда виртуалка например не стартует, то приходится копаться в дебрях куба, чтобы понять - где там проблема? Пока найдёшь нужный манифест в котором есть статус, в котором указана проблема...
Проброс устройств - боль. Отдельный оператор занимается сканированием PCI устройств. Список этих устройств - глобальный для всех нодов. Как этот список управляется - загадка. Управляется он через манифесты, но иногда некоторых устройств там нет. Почему? - кто ж его знает. Иногда - устройства показаны занятыми, хотя никто их не использует.
Как-то раз виртуалка отказывалась запускаться и я не мог понять почему. Пошёл спать. Утром пришёл - виртуалка запущена. Что-то там внутри куба "дошло" за несколько часов...
В общем, надоело мучаться и я перешёл на Proxmox - там всё намного стабильней.
А где посмотреть эти критерии?
Спасибо большое за результаты!
Я купил уже готовый компьютер - Dell Precision T7960, сегодня утром пришёл. Правда с ним только 4*16GB RAM, так что памяти надо будет докупить.
chipset W790
motherboard - не знаю какая, похоже у них своя (они называют это system board)
поддерживается 8 каналов. На материнке - 16 DIMMs.
Кстати, кто-нибудь знает, если запустятся DDR5 планки на 48GB? В их мануале написано что поддерживаются только 16 GB, 32 GB, 64 GB, 128 GB, 256 GB.
8 * 48GB (384GB) - это наверное минимум чтобы запустить нужные модели. Можно купить за $1400.
А вот 8 * 64GB (512GB) - это уже где-то $2200.
Кстати узнал, что если ставить до 8 модулей памяти - работать будет на 4800 MT/s. А если больше модулей памяти - только на 4400 MT/s
DeepSeek R1 не сильно отстаёт
Спасибо за ссылки. Кстати там тоже написана эта же цифра - около 20ГБ/с на ядро.
Насколько я смотрел проекты, то поддержка AMX толком ещё не добавлена. Вот тут пишут какие-то фантастические цифры, которые "возможно" достичь с AMX:
https://github.com/ikawrakow/ik_llama.cpp/issues/437
Вроде бы прямо сейчас над этим работают.
Попробовать выяснить оптимальное количество ядер - это было бы интересно.
Я видел комментарий, что в среднем одно ядро современного (Sapphire Rapids) Xeon способно переварить 20-30ГБ/с данных модели. Поэтому если ядер много, а память недостаточно быстрая чтобы загрузить ядра - они простаивают. И наоборот - если память быстрая, но не хватает скорости ядер их обработать - то простаивает память.
Но эта цифра 20-30ГБ/c - сомнительная. Просто кто-то написал. Вот если бы реально это как-то померить, и как оно зависит от квантизации, ...
Не совсем понятно, у вас в результатах сравнивается "Модель Qwen3-30B-A3B Q8_0" с "Модель Qwen3-30B-A3B Q8_0"?
LM Studio наврядли использует AMX. Это нужно или llama.cpp или ik_llama
4 канала памяти? Обычно с таким количество ядер процессоры имеют по 8 каналов.
Что такое "open-source" каждый понимает по своему. Но Qwen3 весы выложены (open) например вот тут:
https://huggingface.co/Qwen/Qwen3-235B-A22B
Если у вас всё сконфигурировано оптимально, то максимально возможная скорость памяти - 68GB/s. Практически - меньше.
С этим особо не разгонишься.
Инференция на двух процессорах может быть медленнее.
Вот тут я пробовал запускать на двух Intel Xeon Gold 5218:
https://github.com/Mozilla-Ocho/llamafile/issues/765
Получилось около 4 токенов в секунду.
На одном процессоре - около 8 токенов в секунду.
Насколько я смог разобраться, это потому что один процессор работает с памятью на полной скорости (~120GB/s в моём случае), а если процессора два - то работа с памятью идёт через NUMA, а это - около 20GB/s для памяти на "чужом" процессоре.
OS: Ubuntu 24.
Видятся 48ГБ.
Обычные драйверы, ничего особо не настраивал специально, всё "из коробки".
Вот тут я написал результаты бенчмарков, мерил скорость у неё:
https://www.reddit.com/r/LocalLLaMA/comments/1j11js6/i_bought_4090d_with_48gb_vram_how_to_test_the/
вот тут брал в феврале этого года:
https://www.c2-computer.com/products/new-parallel-nvidia-rtx-4090d-48gb-gddr6-256-bit-gpu-blower-edition
У них на сайте есть и другие видюхи.
Надо промпт начинать с /no_think
Тогда отвечает сразу. Я использую OpenWebUI, - там можно этот "/no_think" добавить в список промптов и тогда его можно использовать "в один клик"