Pull to refresh
21
0.2
Славик Фурсов @SlavikF

Developer

Send message

я перепутал в сообщении выше 🤦

Это ik_llama 2.7 раза быстрее обрабатывает промпт...

Запустить эту же самую модель на llama.cpp я не могу, так как она несовместима.

Запустил другую: недавно вышла интересная модель: https://huggingface.co/unsloth/DeepSeek-TNG-R1T2-Chimera-GGUF

Я запустил квант UD-IQ2_M (213 GB) - это приблизительно такой же размер, как и в моём сообщении выше. Запускал llama.cpp с параметрами:

--model ./models--unsloth--DeepSeek-TNG-R1T2-Chimera-GGUF/UD-IQ2_M
--ctx-size 32768
--cache-type-k q8_0
--cache-type-v q8_0
--flash-attn
--threads 12
--host 0.0.0.0 --port 37000
--temp 0.6 --top-p 0.95
--n-gpu-layers 999
--override-tensor "blk\.(3|4|5|6|7|8|9|10|11)\.ffn_.*=CUDA0"
--override-tensor "blk\.(12|13|14|15|16)\.ffn_.*=CUDA1"
--override-tensor exps=CPU

лог:

ggml_cuda_init: GGML_CUDA_FORCE_MMQ: no
ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no
ggml_cuda_init:
found 2 CUDA devices:
Device 0: NVIDIA GeForce RTX 4090 D, compute capability 8.9, VMM: yes
Device 1: NVIDIA GeForce RTX 3090, compute capability 8.6, VMM: yes load_backend: loaded CUDA backend from /app/
libggml-cuda.so
load_backend: loaded CPU backend from /app/
libggml-cpu-sapphirerapids.so
build: 5830 (bac8bed2) with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu
system_info: n_threads = 12 (n_threads_batch = 12) / 12
| CUDA : ARCHS = 500,610,700,750,800,860,890
| USE_GRAPHS = 1
| PEER_MAX_BATCH_SIZE = 128
| CPU : SSE3 = 1
| SSSE3 = 1
| AVX = 1
| AVX2 = 1
| F16C = 1
| FMA = 1
| BMI2 = 1
| AVX512 = 1
| AVX512_VBMI = 1
| AVX512_VNNI = 1
| AVX512_BF16 = 1
| AMX_INT8 = 1
| LLAMAFILE = 1
| OPENMP = 1
| REPACK = 1


Получил скорость на 2 GPU:
prompt eval time = 53671.03 ms / 1268 tokens ( 42.33 ms per token, 23.63 tokens per second)
eval time = 389557.42 ms / 1731 tokens ( 225.05 ms per token, 4.44 tokens per second)


На одном RTX 4090D 48GB:
prompt eval time = 58561.21 ms / 1273 tokens ( 46.00 ms per token, 21.74 tokens per second)
eval time = 371584.74 ms / 1566 tokens ( 237.28 ms per token, 4.21 tokens per second)

Запустил эту же модель на ik_llama.cpp на одной RTX 4090D:

prompt eval time = 21474.45 ms / 1265 tokens ( 16.98 ms per token, 58.91 tokens per second)

generation eval time = 396856.15 ms / 1690 runs ( 234.83 ms per token, 4.26 tokens per second)

Вывод:

  • Для обычных моделей llama.cpp и ik_llama.cpp приблизительно одинаковы по скорости генерации токенов. По обработке промпта llama.cpp в 2.7 раза быстрее, - думаю что это из-за AMX.

  • ik_llama.cpp работает в 2-3 раза быстрее только с оптимизированными моделями (_R4):

PP: 164 t/s vs 58 t/s

TG: 8.5 t/s vs 4.2 t/s

Интересно, если в ik_llama.cpp завезут AMX, - она вообще уйдёт в отрыв по скорости обработки промпта?

Отправил инфо про это разрабам тоже: https://github.com/ikawrakow/ik_llama.cpp/issues/437#issuecomment-3040885214

## 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

Спасибо за ссылки. Кстати там тоже написана эта же цифра - около 20ГБ/с на ядро.

Насколько я смотрел проекты, то поддержка AMX толком ещё не добавлена. Вот тут пишут какие-то фантастические цифры, которые "возможно" достичь с AMX:

https://github.com/ikawrakow/ik_llama.cpp/issues/437

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 - сомнительная. Просто кто-то написал. Вот если бы реально это как-то померить, и как оно зависит от квантизации, ...

Не совсем понятно, у вас в результатах сравнивается "Модель Qwen3-30B-A3B Q8_0" с "Модель Qwen3-30B-A3B Q8_0"?

LM Studio наврядли использует AMX. Это нужно или llama.cpp или ik_llama

4 канала памяти? Обычно с таким количество ядер процессоры имеют по 8 каналов.

Qwen-3 (примерно как Deepseek, но не open-source)

Что такое "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/

1
23 ...

Information

Rating
3,769-th
Location
Seattle, Washington, США
Registered
Activity