Комментарии 77
Есть ли возможность увеличить контекст, используя несколько GPU?
Среди MoE моделей вчера вышла новинка Hunyuan 80B-A13B с 256к контекстом, добавление поддержки в llama.cpp в работе.

Интересно, спасибо. С контекстом правда у Hunyuan для русского языка не очень, хоть он и 256к, но он примерно в 1.35 раза менее эффективен чем у DeepSeek для токенов на русском, поэтому книга целиком не влезла в контекст, требуется 289к, у deepseek 215к.
Сегодня появился новый претендент. Kimi K2 - новая открытая MoE модель на 1T параметров, если точнее 1026B, с 32B активными. Сделана на архитектуре deepseek, поэтому MLA присутствует, и поддержка должна появиться довольно быстро.
И самое главное, это не мыслящая модель, значит не будет тысячами бесполезных токенов размышления, при этом качество по бенчмаркам конкурентоспособное:

А что для пользователей 3060 (12) с многоядерными зионами и озу 128 ? Есть ли свет в конце туннеля? У меня полноценный дипсик работал со скоростью 0.1 t/s с подкачкой с nvme...Не, ну работал то нормально, правда неделю ждать приходилось.
А что для пользователей 3060 (12) с многоядерными зионами и озу 128 ? Есть ли свет в конце туннеля?
Ну 130гб квант с -ot exps=CPU
и -ctk q8_0 -ctv q8_0
в теории должен в притык влезть и сколько-то контекста вместить, у меня не точные цифры про 10гб, точнее это с небольшим запасом, на деле там меньше.
Фактически 1-битная модель, это на самом деле 1.58-битная модель - это минимально возможный размер, когда есть 3 значения: -1, 0, 1, меньше уже нельзя создать квант. Даже 1-bit BitNet, это тоже 1.58-битные llm. Так что даже если эту 1.66-битную уменьшить на это чуть-чуть, особо выигрыша по размеру не будет.
Спасибо! (Лайк и подписка).
Есть ли разница и повышение хэшрейта аж на 30% при переходе с Windows на Linux?
Справедливо ли всё написанное для AMD/Radeon? Для каких карт ROCm есть? Можно заставить работать? Не факт что соберётся? Не взлетит? RX 7600 XT 16GB?
Б/у-шные Tesla с Ali?
Где находится предел выгоды перехода с 3090/4090 на "профессиональные" Radeon Pro W7000 (W7800/w7900)?
Начали ли появляться ARM-платы (одноплатники со встроенными процессорами) c PCIe-4.0/5.0 способные задействовать больше 1ТБ памяти? Больше 100 ГБ?
Б/у AMD Epyc по-прежнему наше "всё" - если хотим впихнуть взрослый ДикПик в оперативу целиком?
Есть ли разница и повышение хэшрейта аж на 30% при переходе с Windows на Linux?
Я тестировал сразу на Linux, мне уже не хотелось собирать ik_llama под Windows, так как под виндой у меня не настроено окружения для сборки, и я на эту статью потратил 5 дней и уже немного устал от всего этого.
Справедливо ли всё написанное для AMD/Radeon? Для каких карт ROCm есть? Можно заставить работать? Не факт что соберётся? Не взлетит? RX 7600 XT 16GB?
У ik_llama фокус на CPU и CUDA. Позавчера я собирал ik_llama vulkan, хотел добавить в сравнение RX 6600, и он работал в разы медленнее чем в vulkan в llama.cpp, поэтому смысла нет. Не тестировал на ROCm, но думаю там такой же результат будет.
В плане llama.cpp всё будет работать нормально с -ot
и на rocm, и на вулкане, только не удастся воспользоваться этими квантами от ik_llama и нужно будет подобрать квант от unsloth или bartowski.
А в плане RX7600 лучше подождать и посмотреть на Intel B60 24гб и цену, у интелов обычно шина больше и поэтому память быстрее, а XPU поддержку intel уже добавили в pytorch, что и вне llm может быть полезно.
Б/у-шные Tesla с Ali?
V100 на 32гб отлично впишется, говорят на таобао они щас дешевые.
Где находится предел выгоды перехода с 3090/4090 на "профессиональные" Radeon Pro W7000 (W7800/w7900)?
Если устраивает турбинный шум, то лучше китайскую 4090 на 48гб.
Б/у AMD Epyc по-прежнему наше "всё" - если хотим впихнуть взрослый ДикПик в оперативу целиком?
Эпики быстрые, много быстрой памяти, но ни нормальную тихую башню не поставить, ни корпус нормальный, ни дорогущую память потом ни куда не деть. Это подходит тем, кто точно знает зачем ему эпики, и зачем ему именно квант Q4 или даже Q8.
Просто принципиально кванты выше чем UD-Q2_K_XL по сути ничего не дают, несколько процентов это не существенно, тут нужен DeepSeek R2 чтобы качество принципиально выросло, гнаться за Q8 квантом не имеет практического смысла.
Сейчас в продаже появляются планки 64гб DDR5, это будет 256гб в домашний комп, туда влезает UD-Q2_K_XL, если DeepSeek R2 не вырастет в размерах, то этого хватит, если разжиреет, то да, снова эпики и зеоны будут единственным вариантом.
Б/у AMD Epyc по-прежнему наше "всё" - если хотим впихнуть взрослый ДикПик в оперативу целиком?
У AMD появилась какая-то новая игрушка: AMD Ryzen AI Max+395, 128Гб общей для ГПУ и ЦПУ памяти, где под ГПУ отводится до 112Гб. Но все это лаптоп, а не десктоп: https://www.amd.com/en/developer/resources/technical-articles/2025/amd-ryzen-ai-max-395--a-leap-forward-in-generative-ai-performanc.html
Если нормально зайдет аудитории, есть ненулевой шанс, что раскрутят и на десктопы с большим объемом памяти.
Зашла нормально, на ютубе и реддите полно сравнений с M4 Max, rtx 4090 и т.д. По соотношению цена/скорость лучше всего видеокарты с широкой шиной памяти (nvidia xx90), но если нужно более 24 Гб, то или китайские 4090 48g или тогда уже этот AI Max+395 (у обоих решений цена 2к+).
Вот хороший обзор
Исходя из опыта и обсуждений различных конфигураций. Скорость генерации токенов - inference - напрямую зависит от результирующей псп. Влияние ОС на ПСП - вроде меньше 2%(кроме случае нестабильной работы).
>AMD/Radeon? - сделали два шага вперед, можно запустить все что может запустить inference, но в долгую можете столько камней насобирать, что никто не рискуют за свои деньги.
Б/у-шные Tesla с Ali?
В зависимости от поколения могут не поддерживать определенные виды вычислений - страдает скорость.
>Где находится предел выгоды перехода с 3090
1x3060 12gb - входной порог.
1x3090 24gb - можно поиграться дома.
2x3090 ~48gb - можно обзапускаться всякого локального, работает хорошо. Но хочет кушать и охлаждаться.
3x3090 самое интересное дома. Дальше одна 96gb карточка. Но есть предположение, что это оверкил. Интересно поиграться - не интересно работать - реальная скорость работы слишком низкая. Проще взять подписку у большого провайдера за 20-200$$ в месяц.
>Б/у AMD Epyc по-прежнему наше "всё"
Рынок говорит что да. В какой то момент их раскупили и они не стали проседать в цене.
Но зреют модели с унифицированной памятью, в теории могут быть хорошим сдвигом в сторону LLM, на практике - мало кто рискует за свои деньги. 3090 за 50к в рублях интереснее.
Буквально на днях проверял работу в лине на облачном gpu и сравнивал с win-домашним. На удивление домашний даже чуть побыстрее был. Разница в районе единиц процентов. С другой стороны на облачном еще может влиять интерференция от других пользователей. Но в любом случае речь не про десятки процентов.
Могу предположить, что речь про десятки процентов пошла оттого, что в своё время рендеринг в blender 3d под линуксом оказался быстрее на 30%, чем на том же компьютере, но в винде. Сейчас ситуация даже там выровнялась (винда всё ещё показывает просадку скорости, но разница - от 2 до 6%), но осадочек в народной памяти остался.
Спасибо, полезная статья и подталкивает уже начать собирать своего «домового». Вопрос знатокам: если взять GeForce RTX 5060 Ti 16GB + материнку с PCIe 5.0 + AMD Ryzen 9 9950X3D + 192 ГБ DDR5, будет ли комфортно использовать модели, например, Q4 32b, а также подобные, как в статье? Перебирал разные варианты, и ниже 300 т.р. не выходит c 2мя GPU картами.
Самое эффективное железо которое вы можете купить - б/у 3090, в любом количестве. Только оно все горячее.
Из интересных альтернатив - железо на унифицированной памяти - mac a3/a4, amd ryzen ai 395. Но - половина софта может не запуститься с коробки. Так что на свой страх.
да и топовый процессор с X3D и кучей ядер не ускорит особо инференс, упор идёт в скорость ОЗУ (~100 Гб/сек для DDR5 6400). 1 ядро обрабатывает 20гб/сек, можете ради экономии купить что-то на 6-8 ядер, а на сдачу возьмите 3090.
Пока кажется, что две б/у видеокарты GeForce RTX 3090 с 24 ГБ памяти (в сумме 48)— оптимальный выбор для домашнего использования в пределах до 300 тысяч рублей. Однако есть риск, что GPU может быть «уставшей».
Бенчмарк Qwen3 32B Q4_K_M на 4060ti 16gb, влезло 48 слоев из 65:

В системный промпт скопирован текст всей книги, context shift включается автоматически, попросим пересказать сюжет:
Сделал это на онлайн-версии, получил сообщение, что загрузилось 85% текста, никакой контекст шифт не включился, я так понял, она просто обрезала текст.
попросить точно процитировать эпиграф из самого начала. В ответе полностью выдуманный текст, ничего общего с оригиналом:
при этом эпиграф процитирован идеально (что ожидаемо)
Урежем книгу до 100к токенов, теперь текст полностью влезает в контекст.
а это как сделать?
В каком месте книги кто-то сказал "Звёзды слишком яркие."? Процитируй весь диалог
А вот тут он вчистую нафантазировал
Сделал это на онлайн-версии, получил сообщение, что загрузилось 85% текста, никакой контекст шифт не включился, я так понял, она просто обрезала текст.
context shift это в ik_llama/llama.cpp, это их придумка, которая скорее мешает, чем помогает если про неё не знать, в нативной версии трансформера такого нет.
а это как сделать?
Из txt файла удалять куски текста с конца и смотреть через llama-tokenize результат, когда будет 100к, значит достаточно.
Хороший специалист и плохой русский язык. Теперь стало обычным явлением писать плохо.
Добрый день
Подскажите, а вы не встречали, можно ли с MoE моделькой провернуть следующее:
Есть RAM для одного экземпляра модели, 2x GPU (с объемом VRAM одного GPU достаточном для загрузки слоёв активного эксперта).
В RAM загрузить один экземпляр модели, а в VRAM одного GPU загрузить слои активного эксперта, а в VRAM второй GPU - ещё один экземпляр эксперта активного эксперта.. И отдельными процессами запускать инференс, параллельно через роутинг.
В плане, я видел как в RAM 2х экземпляра грузят модели, и двумя процессами отдельно инференсят используя роутинг. Например, есть 1024 GB RAM и 2 GPU, и параллельно запускают два отдельных Qwen3-235B-A22B + Qwen3-235B-A22B.
Но, если RAM мало, то может есть хаки с тем, чтобы оставить один экзепляр всей модели в RAM.
На ум приходит аналогия с совместным использованием библиотек процессами (одна либа в памяти, и разные процессы ее юзают).
На ум приходит аналогия с совместным использованием библиотек процессами (одна либа в памяти, и разные процессы ее юзают).
Есть параметр --parallel N
, где N количество параллельных запросы к одной и той же модели. Памяти расходуется столько же, так как на N слотов будет общий размер контекста, но чтобы это нормально работало, должно хватать вычислительных мощностей, чтобы справиться с параллельной работой.
1 запрос, скорость 41 t/s:

4 одновременных запроса, скорость одного слота упала до 28 t/s, но суммарно 112 t/s:

Да вот как раз, чтобы скорость не падала и поднимают несколько экземпляров.
Две модели и каждой выделить узел Numa + свою GPU норм, если достаточно RAM..
А насколько GPU Загружена была при 4х параллельных запросах?
А насколько GPU Загружена была при 4х параллельных запросах?
При 1 запрос: cpu 11%, gpu 95%
При 4 запросах: cpu 16%, gpu 86%
Это возможно проблема или особенность llama.cpp, сейчас там общий kv-кэш, параллельный вариант пока не реализован: https://github.com/ggml-org/llama.cpp/issues/10860
Как я понимаю, все эти LLM локально запускать на личных ноутбуках вообще никто не сможет ещё N лет.
Сильно зависит от размера, а размер зависит от требуемых задач. Методы квантизации развиваются, методы сгружения части работы в оперативку тоже улучшаются. Так что никто не знает.
Плюс есть подключаемые по USB ускорители нейронок. Они и сейчас есть, но они маленькие - их создатели не ожидали такого повышения спроса на размер, и раньше стремились к уменьшению энергопотребления. Тоже могут скоро выдать рабочий вариант.
Ну вот у меня ноут купленный еще во времена ковида с мобильной 3080 правда с 16Гб видеопамяти, phi-4 reasoning c 14b параметров вся влезает в видеопамять и выдает 30 токенов в секунду, сильно быстрее чем человек может читать:

mistral-small3.2 на 24b параметров занимает 26Гб, влезает на 59% в видеопамять и на 41% в обычную, она выдает 19 токенов в секунду, все также сильно быстрее, чем успеваешь прочитать.
Больше чем на 24 миллиарда параметров запускать не пробовал. Так что все реально даже на старых ноутах их запускать. Правда небольшие модели.
Жоска. Я бы, наверное, игрался под жирным (по памяти) маком на М чипе.
умеют ли современные LLM запрос аля "найди в книге фрагмент" превращать вместо долгой работы "нейронов" в типичный Select from ... Where Text like "искомый фрагмент" и исполнить его ? наверное это было бы в тысячи раз экономичнее
Так это узкий кейс. Кто в здравом уме использует модели как ctrl+f, если это не для тестирования? Тут это тестирование на хранение контекста, а в реальной жизни “искомого фрамента” не будет, а будет вопрос на человеческом языке “а какое пиво пил главный герой с этим, как его, у него еще ник странный был, “убийца” или что-то типа того?"
не специалист в этой теме, но возникает закономерный вопрос, а ии-модели могут предварительно делать какую то индексацию/нормализацию контекста, выделять ключевые признаки, индексировать только их и держать в памяти, а конкретику кэшировать и возвращаться к ней при необходимости? это вопрос в контексте использования для базы нормативных документов например
Ищите по слову RAG
А насколько теоретически топовый MBP16 с 128 под это дело годится?
Мне просто под обычные задачи такое совсем не надо, но если есть возможность прилично запускать LLM, то можно подумать над переплатой тыщи в полторы прям за топ.
Спасибо за статью - узнал много нового про параметры запуска в которых трудно было разобраться самому.
Правильно ли я понял, что MLA есть только у DeepSeek и поэтому на больших контекстах DeepSeek работает лучше любых других моделей?
Правильно ли я понял, что MLA есть только у DeepSeek
На данный момент да, пока не было замечено других моделей на MLA.
Есть такой проект TransMLA через который можно мигрировать через пост-обучение с GQA на MLA. По их замерам преобразованная модель лучше себя показывает чем исходная:

и поэтому на больших контекстах DeepSeek работает лучше любых других моделей?
Если сравнивать с моделями на GQA (Group Query Attention), это примерно все открытые модели на момент выхода R1, то да. Если сравнивать с закрытыми моделями, то там по разному, есть явные лидеры, вроде Gemini 2.5 pro, которые обгоняют всех, а есть такие с кем R1 сравнима или лучше их.
Ещё бывают и другие эксперименты с вниманием, вот, например, недавно вышла открытая модель Minimax M1, они используют гибридный Lightning Attention, как раз только что вышла статья разбора архитектуры (https://habr.com/ru/articles/923588/), она ещё дешевле в обучение, ей нужно меньше вычислений чем R1 и у неё контекст 1м, но нет такой эффективной экономии памяти как у MLA.
В общем тут нет какого-то однозначного ответа:

А вы не знаете, ik_llama.cpp так же поддерживает xpu (intel), как и llama.cpp? При загрузке слоев вы указываете CUDA0, CUDA1, а для XPU тоже есть аналогичный выбор устройства в ik_llama.cpp?
Фантастическая работа проделана! Даже не могу выразить под каким впечатлением нахожусь.
Как такое можно использовать на практике, если сам обычно за ноутом, а GPU подключены к серверу?
В основном интересует Roocode. Наверное, Copilot можно на "удаленную локальную" модель натравить..
Есть ли обертка а-ля OpenAI, позволяющая так гибко управлять выгрузкой на разные GPU и прочим? Даже обычные модели с увеличенным контекстом были бы интересны.
./llama-server
- запускает сервер, есть OpenAI-совместимое API (http://127.0.0.1:8080/v1), можно защитить токеном (задается через --api-key
) или через SSH-подключение запросы гонять.
--host 0.0.0.0
можно дополнительно задать, чтобы был порт доступен извне (по умолчанию - 127.0.0.1).
В целом, практически весь софт умеет OpenAI-совместимое API предоставлять, с которым Roo Code работает.
Без GUI (а-ля LM Studio / Ollama) я проживу. Если llama-server
позволяет кучу параметров задать (как в статье, кого куда загружать) и обращаться к нему через OpenAI совместимое API - это прекрасно.
Но если этот llama-server надо ручками сопрягать с используемым в статье ik_llama.cpp
, это мне, скорее всего, уже сложновато будет.
Поиграюсь. Спасибо!
За статью респект, очень интересно. Вот только не понял уверенности, что китайцы не использовали для обучения своих моделей разного рода Флибусты и русские (и не только) книги им прекрасно известны, может и не наизусть. У них там с авторским правом как-то "попроще" отношения, есть ощущение, что и модели во многом из-за этого получаются сильные.
Так в начале ж есть тест, до загрузки книги в контекст вместо лабиринта там фантазии на тему ночных дозоров....
Отличная статья, но внезапнее всего было упоминание Лабиринта отражений. Не так часто вспоминаю об этой книге, а зря.
предпологаю есть ещё вариант, есть raid ssd через pci вроде как до 24шт на одной плате видел, говорят скорости близкие к ram
PCIe 5.0 x16 обеспечивает теоретическую пропускную способность в 64 ГБ/с, что в лучшем случае соответствует скорости двухканальной памяти.
Для больших моделей этого слишком мало.
Да и стоимость такого решения вызывает сомнения - подозреваю, что проще взять б/у сервер на AMD EPYC.
а если 2 таких и будет уже лучше скорость, при этом объём можно любой будет использовать
Ага. Только 32 линии PCIe не у каждого процессора есть (актуальные потребительские процессоры по 24 линии имеют).
Так что старый AMD EPYC, с его 8 каналами DDR4 все равно впереди. А у современных AMD EPYC 12 каналов DDR5, что еще примерно в 2-3 раза быстрее получается.
А уж если добавить двухпроцессорные материнки, где по 8/12 каналов паяти на каждый процессор...
Ну а объем... Сколько там его надо? Самая большая модель сейчас - Deepseek-R1 весит 700GB с чем-то (неквантованная), что с лихвой перекрывается подобными монстрами.
Хотя llama 4 Behemoth может выйдет - она да, весить побольше будет ) Но там скорость работы на CPU уже совсем печальной будет, не смотря на все 24 канала памяти...
а что насчёт этих результатов?
Скрытый текст

Поискал - использовали 3 карты PCIe 5.0 x16 и Ryzen Threadripper PRO 7985WX (с 128 каналами PCIe 5.0). И да, там 8 каналов DDR5, что обеспечивает примерно в 3 раза большую скорость оперативной памяти относительно показанной.
Матрица RAID 0, представленная на выставке Computex в этом году, включает три карты Apex Storage X16 Gen5 и 32 новых твердотельных накопителя E28 PCie 5.0 NVMe от Phison. Такая конфигурация достигает 113,6 ГБ/с при последовательном чтении и 104,6 ГБ/с при записи, а смешанная скорость достигает 146 ГБ/с.
P.S. интересно, а если все 128 канала PCIe 5.0 забить по максимуму - будет быстрее оперативки?
С AMD Ryzen Al Max+ 395 128gb 8000MHz на что можно рассчитывать?
все вроде как запускают 70b
@rodial Это просто процессор для x86 архитектуры, он не решит ее основную проблему узкой шины для памяти. Он совершенно не подходит для запуска gpt ИИ.
Самое доступное на текущий момент это GPU, причем благодаря некоторым ухищрениям теперь даже не нужно размещать всю модель именно в GPU.
"Он совершенно не подходит" чепуха, вполне себе на нём запускают gpt и имеют не самую худшую производительность, и используют не cpu, а встроенный gpu, который в играх имеет fps на уровне rtx 4060, например 90b занимает почти всю память и имеет скорость 3,5т/с, в более лёгких моделях скорость выше, к тому же пока не используется npu ядра, а их скоро обещают начать использовать в том же lm studio
Купил себе 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, то есть смысла гонять на обоих карточках нет.
а если запустить сразу два процесса, одному отдать первую видеокарту, другому вторую? не уверен именно про deepseek как он может работать на 128гб ram для меня загадка, но так как используется mmap, т.е. файл мапится на память а значит кешируется сразу для всех процессов, возможно это позволит буквально удвоить производительность.
Надеюсь, если получится настроить RAM, то получится разогнать TG раза в два.
Если не сложно, выложите замер скорости в aida64, чтобы примерно ориентироваться.
Если запускаю сразу на двух карточках - то скорость получается на 5-6% быстрее чем на одной RTX 4090D, то есть смысла гонять на обоих карточках нет.
--override-tensor "blk.(3|4|5|6|7|8|9|10).ffn_.*=CUDA0"
Если переносить на GPU кванты R4 (большинство ffn как раз такие), которые предназначены только для работы на CPU, то ускорения не будет, это работает просто как быстрая RAM, если обычной не хватает. Квантованные в R4 тензоры нужно перепаковать на лету, поэтому попробуйте компилировать с -DGGML_CUDA_IQK_FORCE_BF16=1
.
Ещё при multi-GPU рекомендуют убирать параметр -ts и работать только с -ot, чтобы сэкономить память.
Intel Xeon 3425 (12 cores / 24 threads), есть AMX.
В ik_llama сейчас нет поддержки AMX.
Есть в llama.cpp, поэтому стоит попробовать UD-...-XL кванты и скомпилировать с флагами:
-DGGML_NATIVE=OFF -DGGML_AVX512=ON -DGGML_AVX512_BF16=ON -DGGML_AVX512_VBMI=ON -DGGML_AVX512_VNNI=ON -DGGML_AMX_TILE=ON -DGGML_AMX_INT8=ON -DGGML_AMX_BF16=ON
Но в первую очередь для AMX стоит попробовать https://github.com/kvcache-ai/ktransformers
Они сосредоточены на оптимизации AMX, не знаю, что у них со скоростью памяти, но когда-то их цифры tg были выше, чем у остальных. Не знаю как сейчас после внедрения AMX и -ot в llama.cpp.
Боже, как все сложно, сколько нюансов...
IMHO такие посты и комменты надо прицельно скармливать ИИ, чтобы получить набор флагов под свое железо. Простому смертному, не специализирующемуся на всем этом, без шансов...
Боже, как все сложно, сколько нюансов...
Было бы ещё понятно, ради чего эти нюансы. Хорошо если процентов 20% удастся получить прироста, а с другой стороны за счет чего? Скорость памяти же осталась той же, так что может и 20% не будет.
Даже про AVX-512 мало информации, при том, что AVX-512 есть на десктопных Ryzen 9000 процессорах, но найти информацию про разницу AVX2 и AVX512 на одном проце по прежнему нереально.
А если будет, ну было 8 t/s, станет 9.6 t/s, на практике это не та разница которая переворачивает всё, если вы про эти нюансы не знали.
-DGGML_CUDA_IQK_FORCE_BF16=1
в моём случае дает прирост 4.5%, вроде не плохо, но в цифрах это всего лишь с 8.6 t/s до 8.99 t/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?
ktransformers посмотрел, но как-то уже слишком муторно его запускать... Сложно как-то.
Запустить просто ktransformers тот ещё квест, при том, что они не любой квант поддерживают в принципе.
Так что да, скорее всего нет смысла пытаться запустить, их секрет ускорения был в -ot флаге и реализации MLA, что сейчас есть везде, и если в llama.cpp поддержка AMX работает, то там уже не должно быть заметной разницы в скорости.
У меня всё на Ubuntu, так что aida64 я запустить не могу - оно только для Windows.
В целом mlc достаточно, у меня цифры в mlc ниже, чем в аиде, но в пределах 10%.
Но если есть интерес, то можно запускать через PortProton, aida64 запускается по двойному клику в виндой, бенчмарк скоростей работает и совпадает с виндовым запуском.
Сейчас попробую llama.cpp. Её надо компилировать? Или можно запустить через Docker?
Раньше у них были отдельные билды для avx2 и avx512, сейчас единый билд, только не понятно, всё теперь объединено или нет.
Может и не нужно компилировать и всё уже добавлено, но проверить это можно только при запуске, посмотрев какие флаги включены.
Запустить эту же самую модель на 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
Запускаем настоящую DeepSeek R1 671B на игровом ПК и смотрим вменяемая ли она на огромном контексте (160к)