All streams
Search
Write a publication
Pull to refresh
28
10.2
Славик Фурсов @SlavikF

Developer

Send message

Кого-то увольняют, кого-то нет.

Я когда приехал в США, то работал на стройке. Там если хоть немного алкоголя увидят / заподозрят - сразу увольняют.

Когда стал программистом, пришёл работать в один офис в Сиэттле, там на ланч мне стали показывать буфет - вот тут вино, пиво, ... - ни в чём себе не отказывай. Кстати пьяных в офисе я не видел - всё в меру.

Читал, что Сан-Франциско в некоторых офисах народ "грибами" закидывается, чтобы работать более "творчески". В офисе, на работе.

В США можно уволить любого работника без объяснения причин.

https://en.wikipedia.org/wiki/At-will_employment

Я с удивлением читаю как в России (и Европе) работадатели страдают какими "по соглашению сторон" и тому подобное. Здесь таким никто не заморачивается.

Некоторое исключение из этой практики тут - это если работник ДОКАЖЕТ, что его уволили по причине дискриминации. Что сделать довольно непросто.

У нас тут в США интересно сделано, что большинство "обычных" рабочих получают зарплату почасовую. Всё что больше 40 часов в неделю - оплата x1.5 за каждый час. В некоторых случаях это может подниматься до x2.

А вот работники, которые зарабатывают больше - директора, доктора, программисты - называются exempt employees (буквально - исключительные работники). Зарплата у них обычно - месячная. Почасовой ставки нет, что означает, что если они работают большее количество часов - то больше они НЕ получают. Правда, я тут постоянно вижу, как такие работники быстро поняли, что если работать меньшее количество часов, то и меньше получать тоже НЕ будешь, поэтому приходят на работу к обеду, ходят по своим делам в течении дня...

Как запустить эту модель с контекстом 128К?

Достаточно ли просто в параметрах llama.cpp написать этот параметр или надо каким-то образом активировать RoPE scaling?

упирается все в физическое ограничение

Я не соглашусь.

Вот например карточка RTX 4090 работает на скорости 1000 GB/s и не упирается в физические ограничения.

Проблема с технологиями последнего поколения всегда в том, что есть какие-то сценарии (edge cases), которые ещё не очень понятны.

Вот взял я 8 каналов памяти DDR5, но похоже для DELL планки нужно было брать 1Rx8, а не 2Rx4. Сейчас про это информации нигде нет, даже в официальном гайде у производителя материнской платы, а через пару лет это будет уже известно шире, и те, кто будут делать такую систему - получает не 190ГБ/c как я, а 250ГБ/c. А с другими материнками (или chipset?) 2Rx4 будут работать нормально.

Или вот взял я Xeon W5-3425, потому что везде пишут, что на процессоре инференция упирается в скорость памяти, а не в скорость процессора. Вот только нигде не пишут, что при некотором малом числе ядер - тем или иным образом скорость упрётся в это. И похоже оптимально иметь 24 ядра, - тогда наверное можно будет получить и около 300 GB/s на 8 каналов.

Вот первопроходцы и набивают шишки.

Кстати, вот ещё некоторые обнаруженных факторов, влияющих на инференцию на CPU, которые только-только начинают быть понятными:

  • современный софт для инференции не умеет работать с несколько процессорами - только с одним. Инференция на двух процессорах работает МЕДЛЕННЕЕ, чем на одном.

  • У AMD есть процессоры с большим количество ядер, поддержкой 12 каналов DDR5 памяти, - но оказывается, что там ядра разделены на группы CCD, и если этих групп мало, то работа с памятью никогда не будет на полной скорости. Для многих моделей процессоров 8-канальные Xeon будут быстрее 12-канальных AMD.

371 GB ubergarm / Kimi-K2-Instruct-GGUF / IQ2_KL

452 GB unsloth / Kimi-K2-Instruct-GGUF / UD-Q3_K_XL

588 GB unsloth / Kimi-K2-Instruct-GGUF / UD-Q4_K_XL

Я запустил IQ2_KL квант вот отсюда:

https://huggingface.co/ubergarm/Kimi-K2-Instruct-GGUF

- Intel Xeon W5-3425, 12 ядер
- 384GB RAM DDR5-4800
- Nvidia RTX 4090D 48GB

Получил скорость генерации токенов 6.4 tok/sec

Обработка промпта - 44 tok/sec

Контекст: 32768 токенов

Я вот как раз этим и занялся. Запускал Deepseek V3, Qwen235 и тому подобное.

У меня стоит Nvidia 4090D 48GB, но большие модели не помещаются.

Сначала взял себе Dell Precision 7920, Intel Xeon Gold 5218:

  • 6 каналов памяти

  • DDR4-2667

  • я поставил 6 планок по 64 GB (на Ebay каждая планка стоит около $70). Теоретически должно получиться 128GB/s. Intel mlc показывал, что у меня скорость - 121 GB/s. Stream показывал скорость 81 GB/s.

Опытным путём выяснил, что 120 GB/s - это медленно для больших моделей.

Взял Dell Precision T7960, Intel Xeon W5-3425:

  • 8 каналов памяти

  • DDR5-4800

  • я поставил 8 планок по 64 GB (на Ebay каждая планка $260). Теоретически должно получиться 307 GB/s. Intel mlc показывает скорость до 190 GB/s. Маловато. Я стал разбираться: BIOS показывает, что у меня память работает в "Mixed mode", а как я думаю - должна в "Octa mode". Может быть проблема в том, что рэнкинг у меня 2Rx4, а я подозреваю, что с моим контроллеров памяти (Intel W790) похоже нужно 1Rx8 (такие на Ebay стоят $380 за планку и там написано что эти планки - для Dell). Получается надо выложить $3000 только за память, но я не уверен, что это решит вопрос: продолжаю разбираться - уже неделю переписываюсь в поддержкой Dell.

  • Ещё читал что процессоры поколения Intel Xeon W5-3425 способны "переваривать" около 20 GB/s на каждом ядре. У меня 12 ядер и получается, что даже если память разгонится на 307 GB/s, то процессор сможет держать только около 240 GB/s. Но пока вот получается около 190 GB/s. Так что наверное надо было брать процессор с 20+ ядрами. Но у процессоров с большим количество ядер - ниже тактовая частота, и я не уверен, что важнее.

То есть получается, что перейдя с Xeon 5218+DDR4 -> Xeon W5-3425+DDR5:

  • память ускорилась со 120 GB/s -> 190 GB/s

  • памяти стало больше: 384 GB -> 512 GB

  • я заплатил около $2500+ за апгрейд.

  • ещё на новом процессоре я получил AMX (Advanced Matrix Extensions), который значительно ускоряет обработку промптов (Prompt processing) при инференции и PCIe 5.0.

Для сравнения, у Nvidia RTX 4090D, скорость памяти: 1000 GB/s

Во первых, gasoline (бензин) это совершенно не natural gas (газ).

Во вторых тут у нас в США практически нет машин на газе (natural gas). Так что никому не может даже в голову прийти проводить какие-то исследования рынка таких автомобилей. Нет такого рынка.

А у бензиновых машин нет тормозов? Или почему в электромобилях надо решать что-то с тормозами?

Кстати: тормоза у электромашин расходуются в разы медленнее (потому что рекуперация), а покрышки - быстрее (потому что электромашины обычно тяжелее).

Товарищ Вячеслав Голованов, который "Проповедую в храме науки".

Когда вы будете свободны от религиозных занятий, то советую познакомиться, что "gasoline" - это не "с газовым оборудованием" и не "газовые автомобили", а - бензиновые.

Спасибо.

Я на этой неделе игрался с этой моделью в Invoke. Они поддерживают её в 6й версии. Там вроде бы попроще запуститься.

Работает. Но на сайте Flux Kontext выдаёт результат лучше, чем в Invoke. Надо будет попробовать с Comfy...

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

Это 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 поможет.

Information

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