
Комментарии 42
купил за полторы тыщи 1080 на 8гб и гоняю нейронки для картинок и кода в докерах
мне нравится, почти бесплатно
а 5060 или 3090? оче дороха
можно взять ещё одну 1080 и мост рублей за 500-1000 и получить 8+8 гб.
если конечно узкими местами не станут материнка/cpu и/или блок питания.
3090 ~750$ сейчас +-.
плюс в отличии от rtx 40 и 50, 3090 поддерживает NVLink(~400$).
какой то оверпрайсные мосты для ампер по сравнению с более старыми.
А где вы нашли NVLink по ~400$? Большинство предложений $100-200.
KoboldCPP умеет работать с не соединёнными видеокартами.
Я тоже гоняю нейронки на 1080 ti (11 Гб). Вот только когда начал заниматься нейронками профессионально (обработка фотоснимков -- я фотограф), обучение своих моделей, то понял, что мне не хватает ни памяти, ни скорости. Причём, доходит до того, что ставлю утром модель на обучение и вижу, что, придя с работы, оно ещё не обучится.
Добавьте, пожалуйста, табличку с результатами всех тестов в конец статьи, чтобы было бы понятнее. Сложно сравнивать производительность выискивая результаты в тексте.
Видеопамять видеокарты RTX 5060 Ti 16 ГБ нельзя объединить. Эта модель не поддерживает мультиграфическую конфигурацию (SLI)
Интересно, как возможно объединить память видеокарт без SLI/NVLink? Не хватает технического описания реализации такого.
Я не сильно профи, но имхо она не обьединяется в привычном смысле этого слова как по SLI. Вместо этого слои модели раскидываются, часть в одну карту, часть в другую. Они при этом работают не совсем параллельно, сначала первая видеокарта считает свои слои, затем через тот же pcie этот полуфабрикат перебрасывается во вторую видеокарту, которая подхватывает вычисления для следующих слоев и считает дальше. По сравнению с линками это медленнее, но промежуточный результат весит относительно (модели) немного, поэтому pci шина успевает это обрабатывать.
Это называется Parallelism. Прекрасные объяснения есть тут и тут. Вкратце, есть множество техник/способов такого разделения со своими особенностями. Например, Data Parallelism (по сути, загрузка множества копий модели каждая в свой GPU) и оно не требует быстрого интерконнекта между GPU, ибо там данные почти не ходят, но и "объединения карт" там нет. Есть Tensor parallelism - там разрезается модель на N-слоев (каждый слой делится на N частей и отправляется в свою GPU). И вот тут оно намного более требовательное к полосе, ибо при запросе данные ходят очень активно между картами. Есть еще Pipeline parallelism и т.д.
А дальше есть 3 варианта, как GPU могут общаться между собой - PCIe, NVLINK (SLI нет уже), Ethernet/IB. NVLINK - самый быстрый. Потом Ethernet/IB или PCIe (в зависимости от системы и конфигурации).
И как раз вот тут автор и стрельнул себе в ногу, выбрав 5060 Ti, у которой шина PCIe 5.0 x8. Т.е. всего 30GB/s при скорости VRAM у 5060 Ti в 450GB/s. Взял бы хотя бы 5070 Ti было бы в два раза быстрее, потому что там PCIe 5.0 x16 (хотя справедливости ради там и VRAM 900GB/s), но тогда бы математика по стоимости не сошлась.
И вот ровно по той причине, что PCIe СИЛЬНО (больше, чем в 10 раз) медленнее даже GDDR7 (я молчу тут про HBM), делать тензорный или pipeline parallelism на картах без NVLINK - такая себе затея. Дешевле (с точки зрения $/token/s) взять более мощную и дорогую карту, куда модель влезет целиком. Нынче это, например, 5090 c 32GB VRAM за ~3k$ или RTX Pro 6000 c 96GB VRAM за ~10k$. Понятно, что есть и H100/H200 и B200, но это уже другая лига.
Спасибо за описание.
То есть получается если есть "материнка" с 1 x PCIe 5.0 (в режиме x8), 1 x PCIe 5.0 (в режиме x16) и максимально эффективно это поставить 2 "видюхи" GeForce RTX 5070 Ti PCIe 5.0 16 ГБ GDDR7, 256 бит и GeForce RTX 5060 Ti PCIe 5.0 16 ГБ GDDR7, 128 бит.
Да нет. У вас скорость обмена между картами ограничена самым медленным компонентом. И это будет PCIe 5.0 x8 в 5060 Ti. То, что у вас в 5070 Ti есть еще 30GB/s сверху совершенно ни на что не повлияет. Да и вообще, ставить разные карты под одну модель - такое себе, ибо распределять сложно.
Наиболее "эффективно" - брать карту, куда модель влезет целиком и вообще не ходит в PCIe, а не заниматься multi-gpu инсталляциями. Насколько это возможно, подъемно и на самом деле нужно, как обычно, зависит от задачи/бюджета/ограничений и прочего
Tensor parallelism - там разрезается модель на N-слоев (каждый слой делится на N частей и отправляется в свою GPU). И вот тут оно намного более требовательное к полосе, ибо при запросе данные ходят очень активно между картами. Есть еще Pipeline parallelism и т.д.
И как раз вот тут автор и стрельнул себе в ногу, выбрав 5060 Ti, у которой шина PCIe 5.0 x8. Т.е. всего 30GB/s при скорости VRAM у 5060 Ti в 450GB/s.
Да не на столько драматично. Для Tensor parallelism в режиме генерации токенов в пике хватает 5 гб/с. Обмен тензорами же происходит не размером в целую модель, а только результирующими. Столбик RX:


И вот ровно по той причине, что PCIe СИЛЬНО (больше, чем в 10 раз) медленнее даже GDDR7 (я молчу тут про HBM), делать тензорный или pipeline parallelism на картах без NVLINK - такая себе затея.
Если гнаться за идеальными цифрами, то да, но на практике ускорение против Pipeline parallelism будет в любом случае. Урезая шину, подготовка промпта PP упадет драматично, но она всё ещё огромна, поэтому важнее именно генерация новых токенов TG, которое почти не проседает от количества линий. А учитывая, что даже pcie4.0 x1 дает 4гб/с, то затея стоящая в любом случае.

ИМХО это очень сильно зависит от размера моделей и ее параметров. Для маленьких моделей оно одна, для моделей с большим число параметров пусть и с меньшим квантованием - будет другое. В MoE и reasoning models там совсем все драматично.
На картинке, которые вы привели (от сюда) 2x Llama 3 8B in Q8 (1 модель на двух картах), пусть и пишется про "схожие паттерны" 34/70B), а вторая - Mixtral-8x7B-Instruct-0.1-GPTQ. Я соглашусь, что на 8B там будет не так много нагрузки. Но возьмите DeepSeek R1/V3 и там все будет намного хуже.
Насчет processing/generation — это как раз очень наглядно. Processing (prefill) - compute-bound обычно и делается параллельно. Generation (Decode) делается последовательно и там нету большого объема передаваемых данных. Prefill напрямую влияет на time-to-first-token, т.е. вбили промпт и сидим ждем пока оно начнет писать. Особенно больно это при большом input типа text summarization, кодинге и т.д, а также по мере роста длительности беседы (потому что обрабатываются все прошлые сообщения в рамках окна, которое резко растет последнее время). Я уже молчу про Deep Research, т.е. супер много prefill.
Короче, я соглашусь, что для маленьких, простых моделей, с низким контекстным окном, полоса не так критична. Для больших моделей с большим контекстом и требованиями по низкому time-to-first-token — это становится проблемой. И так же полоса становится все более и более критичной по мере увеличения мощности compute и скорости RAM - оно просто съедает выигрыш. Именно поэтому инференс сейчас активно двигается в сторону больших систем типа GB200NVL72 или B200 NVL8, которые ранее использовались в основном для тренинга.
ИМХО это очень сильно зависит от размера моделей и ее параметров
Так размер модели обсуждаемый в этом посте - тот что влезет в 24/32гб VRAM. А вы переходите на гипотетические драматические ситуации промышленного инференса на B200 с множеством параллельных запросов.
В MoE и reasoning models там совсем все драматично.
Но возьмите DeepSeek R1/V3 и там все будет намного хуже.
В R1/V1 всего 37B активных параметров, будет точно также по скорости. Проблема только как вместить всю модель в VRAM.
Та же Qwen3-30B-A3B летает на домашних картах с 1000 t/s на pp и 130 t/s на tg, так как активных параметров всего 3B.
DeepSeek дома запускают на одной GPU получая ускорение через -ot exps=CPU, т.к. никакого тензорного параллелизма не хватит чтобы уместить 671B в домашний VRAM. При чем как раз 2 5060 тут могут выступить лучше одной 3090, скорости у них будут одинаковые из-за распараллеливания работы, а контекста вместят больше.
Насчет processing/generation — это как раз очень наглядно.
Если вместо 800 t/s будет 400 t/s на pp (x4 вместо x16), это всё равно с огромным запасом для домашнего использования, 64к контекста переварятся за 3 минуты в первый раз, а дальше частично закэшируются, даже 100 t/s будет вполне достаточно.
Если речь про идеальные цифры, то да, а если про реальные - то даже для x1 это имеет смысл, а не "такая себе затея" и "как раз вот тут автор и стрельнул себе в ногу".
Для больших моделей с большим контекстом и требованиями по низкому time-to-first-token — это становится проблемой.
Именно поэтому инференс сейчас активно двигается в сторону больших систем типа GB200NVL72 или B200 NVL8, которые ранее использовались в основном для тренинга.
Тут уж говорим либо про домашний инференс, либо про промышленный. Сколько у вас получается получить на B200 и какой поток на тензорный параллелизм показывает?
Я на домашнем ПК получал скорость pp 30 t/s для 64к на DeepSeek R1 671B, квант который целиком влезал в RAM + 1 GPU, время до первого токена десятки секунд. Да, медленно, но драматизма не вижу, если бы целиком влезло в VRAM, было бы на порядок быстрее даже на медленной шине.


т.к. никакого тензорного параллелизма не хватит чтобы уместить 671B в домашний VRAM.
Хватит)
Окей, я готов признать, что я погорячился и, вероятно, из-за проф. деформации сделал излишний перенос с промышленных систем на домашние.
При этом я по-прежнему считаю, что мнение, что инференс не требователен к полосе GPU2GPU в общем случае, ошибочным и/или неполным и считаю важным это подсветить:
1.) Чем больше у вас параметров в модели (пусть и при меньшем числе разрядов на параметр), тем больше требования. 7-8B - нынче это очень маленькие модели и сейчас очевиден тренд на рост моделей при одновременном снижении разрядности параметров (а значит при +- тех же требованиях по VRAM). 40-70B INT4 влезает в ~30-35GB VRAM.
2.) Чем больше у вас TP (т.е. чем больше у вас "объединяется" карт), тем больше данных ходит через GPU2GPU создавая нагрузку. 8 GPU на сервер, в общем-то нормальная история нынче, 4 так вообще везде ставится.
3.) GPU2GPU влияет в основном на prefill, а не Decode. И это критично, если:
а.) У вас есть требования по TTFT. Для пром. систем они практически всегда есть и задаются в качестве исходного требования. Ожидания в минуты часто является просто не допустимым. Например, в MLPerf Inference это 6 секунд для LLama 3.1 405B и 0.5 секунды для Llama 2 70B, в среднем же обычно, для чат-ботов берут что-то порядка до 2-5 секунд. Чтобы обеспечить низкое время TTFT нужен очень быстрый prefill, а это, в свою очередь, резко задирает требования по GPU2GPU. С другой стороны, супербыстрый Decode нужен реже, потому что мы (человека) читаем со скоростью 200-1000 слов в минуту максимум. Если Decode идет с такой скоростью, то обычно быстрее не нужно. Исключение - очень большой и длинный Reasoning.
б.) Большой размер входящего окна. Размер окна нынче очень быстро и сильно растет. Та же Llama 405B имеет 128к токенов против 4k у Llama 70B.
в.) Задача подразумевает обработку большего числа входящих данных. Особенно если это новые данные. Например Coding, Text Summarization, Translate, Deep Research, RAG, etc.
4.) По мере роста вычислительных способностей карт и объема их памяти, bottleneck начинает смещаться. 5090 имеет 104TFLOP FP32/16 и 1.8TB/s VRAM, что в 5 раз быстрее в FP32, на 30% быстрее в FP16, на уровне по скорости VRAM по сравнению с A100 с NVLINK. RTX Pro 6000 BSE еще быстрее и имеет больше RAM при этом PCIe и не имеет NVLINK.
5.) Все проблемы с полосой GPU2GPU вылезают супер явно на multi-node inference. Понятно, что там и задержки начинают играть большую роль, но и требования по полосе заметны.
Короче, выше написанное не является оспариванием ваших аргументов (во многом справедливых), а скорее дополнением и комментарием против заявлений общего типа вроде "скорость PCIe не критична для инференса". Она может не являться проблемой (особенно если мы говорим про домашние условия и требования на уровне "ну да медленно и мало, но хоть как-то"), а может и очень даже являться (особенно если мы про современные и промышленные системы, где "как-то" не варант). Как обычно "it depends" от задачи и условий.
Спасибо за прекрасную и содержательную беседу!
Скорость PCIe не критична для инференса. Единственное на что она хоть как-то влияет - это если вы работаете в режиме с unified memory, когда у вас постоянно идет подкачка в GPU из ram
Разница на v100 32GB c/без nvlink что-то меньше 20% в row split режиме llama.cpp. и незаметна в layer split режиме.
Дешевле (с точки зрения $/token/s) взять более мощную и дорогую карту, куда модель влезет целиком.
Это очень сомнительное утверждение.
Во первых в 32gb влезет или gemma 3 27b или qwq 32b, и то и то для большого контекста хочет много vram. Во вторых всё что больше 32gb - это сразу иксы по цене, кроме разве что китайской 4090 с удвоением VRAM.
Скорость PCIe не критична для инференса. Единственное на что она хоть как-то влияет - это если вы работаете в режиме с unified memory, когда у вас постоянно идет подкачка в GPU из ram
Разница на v100 32GB c/без nvlink что-то меньше 20% в row split режиме llama.cpp. и незаметна в layer split режиме.
Там речь про запуск в режиме Tensor Parallelism, например, через vLLM.
В Tensor Parallelism каждый слой считается параллельно на всех GPU, вычисление элементов слоя разбивается на отдельные матричные операции, которые нужны для общего результата, и каждая GPU считает свой кусочек.
Первая GPU считает Y1 = X * A1, вторая Y2 = X * A2, третья Y3 = X * A3.

После этого GPU1 получает [Y2, Y3], GPU2 получает [Y1, Y3], GPU3 получает [Y1, Y2]. Теперь каждая GPU собирает итоговый Y = [Y1, Y2, Y3].
Передача результатов вычислений туда сюда требует пропускной способности либо pice, либо nvlink, либо ещё как. Размеры этих кусочков хоть и несопоставим с размером модели, так как все веса уже предзагружены в GPU, но всё равно намного больше, чем в llama.cpp. За счет такого распределения вычислений видеокарты лучше утилизируются. Ну, допустим, на двух GPU вместо 30 t/s, можно получить 50 t/s на той же конфигурации.
LLM из-за того, что их веса загружены в память и статичны, могут выполнять параллельную обработка множества запросов почти без потери скорости. Например, если в llama.cpp указать параметр --parallel N, где N количество слотов, то можно пользоваться моделью одновременно с кем-то без задержек, либо запрашивать сразу несколько ответов. Максимальный размер контекста делится на количество слотов.

И если в таком же режиме запустить Tensor Parallelism, то требования к пропускной способность pcie или nvlink резко возрастут, кратно количеству слотов.
Взял бы хотя бы 5070 Ti было бы в два раза быстрее, потому что там PCIe 5.0 x16
Стоит упомянуть что консьюмерских чипсетов с 2x PCIe 5.0 x16 на рынке нет. Так что это сразу надо переходить в HEDT сегмент с Xeon/Threadripper.
ну все как обычно кроется в нюансах. 3090 сейчас на авито можно купить за 60к рублей, даже при текущем курсе в 78 это даже не 800 баксов. но у 3090 есть проблема с охлаждением модулей памяти со стороны бекплейта, странно, что автор про это не говорит) поэтому к 3090 надо еще покупать прокладки и обслуживать карту своими или чужими некривыми руками. про 5060 тоже слегка лукаво - нужно не просто pci x16, а версию свежую - v1, v2, v3 вряд ли подойдут) ну и плата будет на самая плохая, раз есть два слота x16 на достаточном расстоянии. но ценник свежей платы и проца будет ух, но почему-то это не учитывается в статье. 3090 у меня шуршит на cc150 за 5 тыщ рублей, плата за 4 (хиро 8). с 5060 затраты на железо будут кратно больше (наверное можно купить еще одну 3090).
про 5060 тоже слегка лукаво - нужно не просто pci x16, а версию свежую - v1, v2, v3 вряд ли подойдут) ну и плата будет на самая плохая, раз есть два слота x16 на достаточном расстоянии.
с 5060 затраты на железо будут кратно больше (наверное можно купить еще одну 3090).
Никакой разницы не будет. Если нет второго x16, а у x1 слота есть вырез, то можно прям в него подключать видеокарту. Подойдут даже x1 pcie 1.0 подключенные через удлинитель.
Для инференса ширина pcie не играет роли, так как данные грузятся 1 раз и дальше тензоры уже крутятся на внутренней vram и скорость шины уже не важна, выдавая на выход лишь небольшую порцию данных. По сути, тоже относится и к играм, если игра влезает целиком в vram.
Скорость pcie важна для обучения, и то если обработка батчей происходит быстрее, чем скорость загрузки этих батчей, которые часто бывают небольшого размера на домашнем обучении.
Более актуальный совет, это выбирать 5060 размером 2-слота, а не 2.5, так как нижняя карта, в зависимости от материнки, может упереться или ей будет не хватать воздуха от слишком близкого расположения с нижней заглушкой корпуса, где блок питания.
есть 3090 ti, у которых память вроде только с классической стороны.
среди разнообразия же 3090 есть варианты с более продуманной системой охлаждения.
например есть версия с активным охлаждением сверху.
инженеры некоторых брендов(не asus) додумались поставить тепловые трубки сверху.
видел тесты с кастомнымыми вариантами дополнительного пассивного/активновного охлаждения с неплохими результатами.
Раньше все видео карты скупали любители майнинга, теперь любители ИИ.
Куда бедному геймеру податься? :`(
А сам тест интересен.
Так AMD-шные карты же есть, они для нейронок плохо подходят.
Майнинг практически напрямую приносил деньги, а нейронки на потребительских картах это по большей части удел энтузиастов без материального выхлопа.
P.S.: 3 года назад купил 3060ti за 41к, в этом году - 5060ti за 46к, с учетом инфляции цены даже упали
Отличное сравнение, люблю Хабр за такие статьи. Получается, даже 2 карты, начинающиеся с 5... не дают преимуществ в скорости по сравнению с лучшим представителем серии 3... (думал, уж 2 то всяко поборют...)
Они дают увеличение размера контекста или возможность загружать модели в существенно лучшем кванте. Автор сравнивал Q4, который гарантированно поместился в 24Гб, если бы он немного поднял качество сжатия, то 3090 существенно проиграл бы в производельности, потому что часть слоев ушла бы в оперативку.
Интересно было бы почитать про миниПК с сотней Гб VRAM - GMKtec EVO-X2 на базе AMD Ryzen Al Max+ 395. Выглядит как отличное решение для запуска серьезных LLM.
Нет Cuda.
Сразу минус FA и минус куча современных оптимизаций.
Приколы с бенчмарками от производителя тоже говорят многое.
За свою цену это очень слабое решение. Лучше взять 3090. И проблемы с программной частью тоже не красят
С одной стороны да. С другой, AI MAX ЕМНИП умеет до 128 гигов shared memory. Т.е. по объему памяти это вещи просто несравнимые.
Вопрос, насколько 128 гигов медленной памяти будет быстрее, чем 24 гига быстрой. И будут ли.
Я поглядывал на нее для генерации видео, но там (WAN2.1) я так понял узким местом является производительность самого GPU даже на 24 гигах, поэтому 128 на медленном чипе будут просто бесполезны. Ну разве что в OOM не будут падать, но проще на 24 умерить пыл и просто апскейлить видео, а не генерировать сразу в большом разрешении.
Сразу в голове сплыл сценарий использования:
Демо рендр в 480р на 3090, и на ночь отправить генерировать по тому же промту на ai max в 4 экземплярах
Если брать задачи где не требуется ответ здесь и сейчас, вроде генерация изображений или автоматическая сборка сайтов, написание статей для автоматической генерации контента на сайтах, то вполне приемлемый вариант
Жаль нет тестов этой коробки в реальных задачах, выглядит как мечта
Или бу макбук на м процессорах на 128 общей памяти, там вроде лучшее от двух миров будет.
Лучшее от всех миров это https://www.servethehome.com/the-nvidia-dgx-spark-is-a-tiny-128gb-ai-mini-pc-made-for-scale-out-clustering-arm/ или https://www.servethehome.com/this-is-the-asus-ascent-gx10-a-nvidia-gb10-mini-pc-with-128gb-of-memory-and-200gbe/ :)
Тут и 128GB Unified RAM, и CUDA, и Blackwell, и возможность две штуки собирать в стек. И стоит 3-4k$, что дешевле MacBook Pro c 128GB RAM.
И главный минус - их существование только в статьях интернета. Купить их до сих пор, насколько знаю негде. А учитывая, как нынешнее поколение nvidia появляется в продаже, есть подозрение, что во вменяемой рознице по обещанной цене они будут в самом лучшем случае к следующему году, если вообще будут..
Очень медленный ram, увы.
Вопрос к экспертам, так как не увидел прямого ответа в комментариях выше. Если уже есть 3090, можно ли докупить к ней 3060ti на 12gb так как очень часто для 30б моделей не зватает совсем чуть-чуть, памяти, чтобы дотянуться до адекватных квантов и контекста около 40 тыс? или это провал и надо целиться во вторую 3090?
Сам себе отвечу:
https://www.reddit.com/r/LocalLLaMA/comments/1kgs1z7/309030603060_llamacpp_benchmarks_tips/
Видеокарты для нейросетей: две RTX 5060 Ti 16GB или одна RTX 3090 24GB? Тест LLM‑инференса