Собираем Свой Суперкомпьютер Недорого

    thumbnail


    Нынче никого не удивишь достижениями искусственного интеллекта машинного обучения (ML) в самых разных областях. При этом доверчивые граждане редко задают два вопроса: (i) а какая собственно цена экспериментов и финальной системы и (ii) имеет ли сделанное хоть какую-то целесообразность? Самым важным компонентом такой цены являются как ни странно цена на железо и зарплаты людей. В случае если это все крутится в облаке, нужно еще умножать стоимость железа в 2-3 раза (маржа посредника).


    И тут мы неизбежно приходим к тому, что несмотря на то, что теперь даже в официальные билды PyTorch добавляют бета-поддержку ROCm, Nvidia де-факто в этом цикле обновления железа (и скорее всего следующем) остается монополистом. Понятно, что есть TPU от Google и мифические IPU от Graphcore, но реальной альтернативы не в облаке пока нет и не предвидится (первая версия CUDA вышла аж 13 лет назад!).


    Что делать и какие опции есть, когда зачем-то хочется собрать свой "суперкомпьютер", но при этом не хочется платить маржу, заложенную в продукты для ультра-богатых [мысленно вставить комментарий про госдолг США, майнинг, крах Бреттон-Вудсткой системы, цены на здравоохранение в странах ОЭСР]? Чтобы попасть в топ-500 суперкомпьютеров достаточно купить DGX Superpod, в котором от 20 до 100 с лишним видеокарт. Из своей практики — де-факто серьезное машинное обучение сейчас подразумевает карточки Nvidia в количестве примерно 8-20 штук (понятно что карточки бывают разные).


    Основная оговорка — в этой статье мы поговорим про билд, в котором нужно делать много стандартных операций (для чего обычно используют видеокарты), но не нужно астрономически много RAM (вообще вроде как даже топовые процессоры ThreadRipper от AMD поддерживают много RAM, но материнских плат таких нет). Вообще все эти вещи довольно очевидны и просты, но я нигде не видел их собранными в одном месте без купюр.


    Видеокарта


    Итак нам стало понятно, что нам нужны карточки Nvidia для вычислений. Но не торопитесь покупать карты Quadro или Tesla или покупать официальные сборки, потому что зачастую в сборках заложена маржа в 50-60%. Обращаю внимание также на то, что все "метрики" в этой статье приведены весьма примерные и условные (скорее коррелирующие с нашей ежедневной работой, цены меняются постоянно, а тренды — нет), потому что всегда найдется какой-то вид нейросетей на каком-то особом модном виде тензоров от Гугла, где все будет работать не так. Также опустим и то, что из-за короны и бума майнинга розничные цены неадекватны, но как говорится "This time is not different" и можно всегда будет закупиться на дне пузыря.


    Как ни странно, с точки зрения потребителя с картами все просто. Вообще есть довольно популярная и длинная статья про выбор и сравнение карточек, она довольно неплохая, но автор явно в силу своего бекграунда упускает некоторые вопросы админства и сравнивает целесообразность опций только с точки зрения первичного рынка США (и очень много букв). Полезную выжимку этой статьи я уже писал тут а для целей этой статьи выжимка уже более подробная и такая:


    • Карточки для обучения:


      • По критерию цена / качество при прочих равных игровые карточки всегда лучше "специализированных". Например я лично сравнивал самые мощные из доступных карт 3090 против А100. А100 "быстрее" 3090 примерно в 2 раза… но по официальной цене дороже в 5-6 раз;
      • Рассматривать стоит игровые карточки начиная с поколения "Pascal" (серия 10), серия 20 всеми была признана неуспешной и дорогой, даже базовые карточки же архитектуры Ampere (серия 30*) превзошли флагманы прошлого поколения (спасибо AMD, которая "почти" догнала Nvidia);
      • Лучшая карта всех времен и народов — подержанная 1080 Ti с Авито. Не нужно пугаться отсутствия гарантии или годового пробега (два или три года постоянного майнинга — я бы не стал брать, касательно игр — тут все попроще). Просто грамотно осматривайте и тестируйте карты при покупке, погоняйте "пушистый бублик" хотя бы минут 20, осмотрите маркировку карты, банально прочитайте что выдают дрова и бенчмарки. При должном обращении — ресурс карточки составляет примерно 3-4 года постоянного использования (в сухом прохладном помещении, периодически выдувая пыль);
      • На пальцах топовые карты Ampere примерно в 2 раза быстрее 1080 Ti (а иногда и в 3). Мы даже не рассматривали покупку 3080 по банальной причине, что Nvidia зажала для них памяти (вероятно мотивируя пользователей 4K мониторов или использовать DLSS или покупать 3090). Причем я слышал странные слухи про 3080 с 16 или 20 GB памяти (в ноутбуках?);
      • Также немаловажно что в поколении 20* появились тензорные ядра, и хоть в игровых картах они в первую очередь предназначены для таких вещей как DLSS и как-то обрезаны, но тем не менее на части задач вкупе с использованием AMP или APEX они позволяют получить ещё прирост в скорости в два раза. Это объемная тема, я описывал свои мысли тут, и конечно читайте доку от Nvidia;

      Screenshot 2021-03-12 114522


      Кто знает, уточните — что это такое вообще? Какие-то секретные склады Nvidia?

      • C 3090 с "турбиной" правда вышел казус, она вышла настолько удачной, что по слухам из-за того что "серьезные" люди стали предпочитать ее дорогим картам Tesla под давлением от Nvidia несколько производителей сняли ее с производства;

    • Карточки для продакшена:


      • Я сталкивался с большим количеством заблуждений касательно деплоя на карточках и отразил большую часть тут;
      • Вообще если нет особых требований от админов (или система допустим собирается в super-tower корпусе который вставляется в стойку), то можно использовать те же игровые карты;
      • Но если по какой-то причине вам реально нужны карты с низким TDP или реально однослотовые или пассивные — то есть интересные однослотовые решения линейки Quadro RTX и старая Tesla T4, цена которой хоть как-то адекватна (до пузыря). Минус Quadro состоит только в несколько завышенной референсной цене;

    • Охлаждение:


      • Карточки серии Ampere "холодные" — 3-4 3090, стоящие рядом, без каких-либо настроек не греются выше 70-75 градусов, когда 80-85 это норма для 1080 Ti;
      • Если карты будут стоять на "уголках" (без корпуса) или в корпусе для майнинга — то по сути неважно какая там система охлаждения;
      • Если карты будут стоять рядом — то неизбежно обязательно покупать карточки с "турбиной" (центробежный вентилятор, выталкивающий воздух из корпуса);
      • Особняком стоят карточки такого форм-фактора — гибрид водянки и воздуха, но их и раньше было почти невозможно купить. Я пользовался ими немного у знакомого, они реально особо не греются выше 50 градусов;
      • Отдельно стоит упомянуть кастомные однослотовые версии обычных карт с водянкой (пример). Понятно, что их тоже практически невозможно купить. А если делать самому, то тут сборка сразу становится нетривиальной (я интересовался, кастомная вода, установка радиатора, зачем-то реболлинг, кастомная водянка, знатоки — уточните болячки таких билдов);

    • PCIE lanes:


      • Чем больше, тем лучше, но насколько PCIE 4.0 помогает — я пока не понял, вроде и так ничего не тормозило никогда;
      • До 4 карт в 1 сервере вам абсолютно точно достаточно PCIE 3.0 8x на 1 карту;
      • По рассказам людей, на 6-8 картах, этого тоже в принципе достаточно;
      • Я не собирал сервера с кастомной водой на 7-8 карточек, поэтому мне тут тяжело сказать;
      • Читайте документацию процессора и материнской платы;

    • Питание:


      • Это миф, что нет нормальных консьюмерских блоков питания на 4 3090. Есть блоки питания Super Flower и Platimax на 1500-2000 Ватт, прекрасно зарекомендовавшие себя. И если вы завтра не выбираете железо, чтобы обслуживать ML задачи уровня условного ВК, то высока вероятность что для продакшена вам вообще хватит 1 сервера (с исследованиями — сложнее). Так же для исследований совсем не нужно двойное резервирование по питанию;
      • Если по какой-то причине вы не можете купить один блок на 2000 ватт, то можно просто купить плату для синхронизации двух блоков по 1000 ватт;
      • Вообще утилиты Nvidia позволяют настроить потребление карт, но можно просто рассчитывать мощность из расчета 300 Вт в пике на 1 карточку + 30% запаса мощности блока питания;


    Диски


    hdd_vs_flash_trends


    Источник: WDC: No SSD/HDD Crossover

    Вообще можно понятно привести старый график показывающий, что цены падают все еще и на SSD и на HDD, но никак не пересекутся. Но самое адекватное описание ситуации, которое я видел, можно глянуть тут.


    Если коротко и немного с добавлением ML:


    • SSD скорее всего никогда не догонят по цене HDD;
    • Меньше какого-то размера нет смысла НЕ покупать NVME SSD;
    • Для медленной помойки и бекапов конечно нельзя НЕ использовать HDD (или даже внешнее хранилище);
    • Точка "перехода" из быстрого в медленное хранилище у всех будет разной, но на рынке сейчас есть довольно дешевые SATA3 SSD на 1-4 терабайта;

    И раз уж мы собераем "дешевый" суперкомпьютер из нескольких нод, то можно к нему и собрать и сетевую помойку тоже недорого (раз, два, три). Дальше в принципе можно стандартными средствами Linux даже SSD подкачку сделать для RAID массива (я пока просто обходился десятым RAID на 10 Gbit сети для наших задач). Единственный момент — нужно недорого найти 10 Gbit/s оборудование, с этим может быть сложнее, но многие топовые материнские платы сейчас имеют 2 10 Gbit/s порта и на рынке есть пара недорогих PCIE решений.


    Материнская Плата, Шасси


    Допустим с выбором карточек определились. И тут мы переходим к самом интересному — к шасси, на котором предстоит сборка. Большими мазками для обычных граждан и не только условно легко доступны 4 основных типа систем:


    • Nvidia DGX и его аналоги от менее пафосных вендоров. Там все прекрасно, кроме цены. Если очень грубо прикидывать, там стоят самые дорогие компоненты, и сверху еще маржа примерно в два раза поверх цены этих компонентов;
    • Кастомные сборки от кастом шопов. Самый яркий пример это вот эта контора. По ним в принципе можно даже проектировать свои сборки (правда допустим в декстоп сегменте там могут быть старые материнские платы). Видно также, что более новые сборки там как раз доступны с 3080 и 3090. Минус такого подхода — опять же такая компания хоть и на бумаге формально представляет "поддержку", но по анекдотам эта поддержка естественно не глобальная и решение проблем занимает время. Простым языком — админить это все равно надо самому, никто не поедет решать вашу проблему в воскресенье именно в вашей стране. Единственная экспертиза таких ребят, которая не валяется на дороге, это взять на себя геморрой по сборке кастомной воды на 8 карт и дать на это гарантию, но опять же по анекдотам людей — вода (а особенно в свете "холодных" Амперов) не стоит свеч. Появление таких кулеров как Ice Giant делает воду вообще менее привлекательной долгосрочно;
    • Сборки на основе серверных платформ от SuperMicro или Gigabyte (или любой крупной аналогичной фирмы). Раньше моя претензия к таким платформам была в том, что в разумных ценах там никогда не было NVME дисков и были сильно устаревшие сокеты процессоров Intel. Сейчас подтянулись новые серверные решения на базе AMD и минус по сути только в цене. Естественно "официально" поддерживаются только карты Tesla и нужна только ECC память и серверные процессоры (как правило дороже в 2-3 раза);
    • Сборки на основе "профессиональных" и "экстремальных" материнских плат на обычном консьюмерском железе. В качестве корпуса можно использовать просто любой качественный большой ATX корпус или даже корпус для майнинга;

    Первую категорию мы смело отметаем, т.к. мы хотим все-таки экономить. Вторая и четвертая категории по сути идентичны, но мы не хотим платить 50% маржи за гарантию (которую при покупке новых деталей и так дает производитель) и "поддержку" (и какие-то детали проще купить подержанными, например те же 1080 Ti на первое время). Получается, что выбор на самом деле между специализированными серверными платформами и самостоятельной сборкой. Есть еще пятый вариант — заколхолзить на основе Б/У или "пустого" серверного корпуса применив смекалку, но по сути этот вариант просто является адаптацией варианта четыре к установке в стойку, но нужно или иметь такие железки под рукой или знать где покупать и как проверять (мне пару раз предлагали по цене металлолома какие-то старые салазки — но там всегда или не было посадочных мест под PCIE в нужном количестве, или было вопросы к питанию — а колхозить не хотелось).


    Если внимательно посмотреть на характеристики серверных шасси и "профессиональных" материнских плат, то можно найти несколько интересных закономерностей (по сути они и размер вашего бюджета будут диктовать ваш выбор):


    • В Intel сейчас любят кидаться камнями, но процессоры ThreadRipper от AMD по номинальной цене просто прекрасны и неплохо так внесли новую струю на рынок. Серверные решения на базе EPYC такой же процессорной мощности… стоят просто в 2-3 раза дороже;
    • Существует много профессиональных материнских плат на 6-7 PCIE слотов или плат для энтузиастов с 4 двойными PCIE слотами. Но все современные интересные карточки (без кастомной воды) с турбиной занимают 2 слота. И производители карт (судя буквально по наличию только одной или двух таких карты за несколько лет) не заинтересованы делать однослотовые карты (а зачем? геймеру никогда не нужно больше 2-4 карт). Никто не запрещает взять материнскую плату на 6-7 слотов от ASUS, майнерский корпус (или просто уголки из Икеи) и собрать все аки майнер на райзерах (найти работающий на x8-x16 райзер это то еще развлечение). Но у такой системы будет несколько минусов — нельзя вставить в стойку, райзеры у меня лично постоянно глючили и отваливались, опредленный колхоз, отсутствие удобной фурнитуры и повышенный уровень шума (при прочих равных). Далеко не все ДЦ принимают такие системы для хостинга;
    • Получается, что если совсем абстрагироваться от конкретных цен в моменте, то есть всего 3 интересных опции: (i) или полностью консьюмерская сборка желательно на не ушатанных картах со вторичного рынка реалистично тянущая 4-6 карт (вопрос готовы ли вы геморроиться на райзеры, уголки и / или корпуса для майнеров) (ii) очень похожая сборка, но допустим на базе super-tower от Gigabyte или SuperMicro (оно будет вставляться в стойку — тут основная фишка в этом, но часть деталей будет дороже) (iii) сборка на основе серверной платформы;
    • Опция (i) максимально выгодна, если вы можете собрать N машин по 4-6 карт и может стоить в 3-5 раз дешевле опции (iii) за счет цены самого шасси, повышенной цены процессора и повышенной цены ECC RAM;
    • Опция (ii) или (iii) неизбежна, если у вас есть обязательные требования по установке в стойку (колхозные варианты с переделкой старых шасси тут опускаем, т.к. у меня нет опыта, но может кто-то из коммьюнити делала). В нагрузку вы получите скорее всего дублирование блока питания, но для исследований это просто не нужно;
    • Я бы предположил, что опция (iii) становится привлекательной, если почему-то вы хотите ставить сразу 8-12 видеокарт в один сервер;

    Еще отдельно отмечу, что я не использовал однослотовые видеокарты Quadro RTX для обучения нейросетей, но чисто по характеристикам кажется, что две такие карты примерно эквивалентны одной 3090, было бы также интересно выслушать тех, кто пробовал, в комментариях.


    basic_config_example


    Просто пример базового конфига на базе серверного шасси. Обратите внимание, что только само шасси стоит столько же, сколько может стоить целый бокс, если карточки купить подержанные!

    Процессор и Шасси


    Тут на самом деле все просто. Процессор вы по сути выбираете выбирая материнскую плату (я описал основные моменты, которые кажутся мне важными).


    В случае выбора серверной платформы — вы сразу получаете шасси с блоком питания. В случае самостоятельной сборки — нужно еще найти корпус куда это все влезет, но благо на 4 карты это не представляет сложностей.


    Сеть


    У меня пока не было потребности (ну или скажем так, мы всегда умудрялись оптимизировать свои расчеты), где нужно было бы соединять несколько нод для расчетов используя скажем DistributedDataParallel из PyTorch (на одной ноде все конечно прекрасно работает). Не могу оценить хватит ли для него "стандартных" 10 Gbit/s без установки дорогих сетевых карт на 40+ Gbit/s. Отдельный вопрос конечно что с этим делать, т.к. такая плата скорее всего займет еще один PCIE-слот.


    Пока тут могу рассказать только про один хак — в "профессиональных" и "экстремальных" материнках зачастую бывает 1-2 разъема по 10 Gbit/s (и иногда даже третий гигабитный). В совсем дешевом варианте (только цена патч-корда высокой категории, но на коротком расстоянии даже "плохие" патч-корды показывают 10 гигабит) две такие материнки можно соеденить напрямую друг с другом и получить "суперкомпьютер". Если таких разъема два, то можно в мастер ноду уже воткнуть два патч-корда. Но чтобы соединить сеть больше, уже придется найти 10 гигабитный свич (внезапно найти подержанный Mikrotik не проблема, но они обычно очень сложны в настройке).


    Финальные Ремарки и Исправления Ошибок


    Буду очень рад, если знающие люди, кто строил такие системы и сети поделятся в комментариях опытом, проблемами, результатами своих экспериментов и мотивацией при выборе своей платформы!


    Об Авторе


    Александр Вейсов — основатель / владелец комании Силеро (silero.ai), небольшой независимой компании, которая занимается разработкой продуктов в сфере распознавания, синтеза речи и NLP. Публике Хабра Силеро может быть известна по датасету Open STT, моделям silero-models или VAD-у silero-vad. На российском рынке компания распространяет свои решения через прямые продажи / проекты и вендоров / системных интеграторов софта.

    Only registered users can participate in poll. Log in, please.

    А сколько боксов / серверов для ML вы собрали?

    • 5.6%112
    • 9.8%2-521
    • 0.5%5-101
    • 3.7%10+ (собрал целый ЦОД)8
    • 13.5%ни одного, как раз планирую29
    • 67.0%посмотреть ответ144
    Open Data Science
    Крупнейшее русскоязычное Data Science сообщество
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 97

      +5

      Да, игровые видеокарты для работы с нейросетями подходят гораздо лучше, чем профессиональные. Но дело не в наценке за "профессиональность", а в том, что функционал профессиональных карт оказывается невостребован.


      Так, производительность FP32 у Tesla P100 и GTX1080 примерно одинакова. Но вот производительность FP64 у Tesla P100 в 20 раз выше, чем у GTX 1080. Очевидно, что если вам для работы требуются вычисления в FP64, то покупка профессиональной карты себя полностью оправдает.


      Но нейросетям не нужна запредельная точность. Им достаточно и FP16, и даже FP8. Подробнее про это можно почитать, например, тут:
      https://www.ibm.com/blogs/research/2018/12/8-bit-precision-training/


      Профессиональные карты, помимо высокой производительности FP64, имеют также и высокую производительность FP16 — она примерно в полтора раза выше, чем FP32. Но использование FP16 для ML не является выгодным из-за высокой цены на профессиональные карты.


      Далее: ECC память. Нейросети обладают огромной избыточностью. Случайные ошибки, скорее всего, останутся полностью незамеченными. Да и валидация после каждой итерации позволяет ошибки, если они вдруг появятся, обнаружить.


      Ну виртуализация (разбиение одной карты на несколько vGPU). Для ML-задач она нафиг не нужна.

        +1

        +


        Я "делил" одну А100 на несколько штучек во время тестирования, ну и кроме очевидной некой "сырости", мне показалось, что это делается для образования или для продакшена, но не для обучения "маленьких" сетей.


        Насчет FP16 — по цене понятно что даже с обрезанностью это выгоднее. А по скорости — тут зависит уже от конкретной сетки. На каких-то даже и без AMP 3090 в 3 раза быстрее 1080 Ti.

          0
          tf.config.experimental.set_virtual_device_configuration (нынче tf.config.set_virtual_device_configuration) позволяют разбить даже 1080ti, причем как угодно. Единственное ограничение — объем памяти.
            0

            Не знаю будет ли в ТФ оно реально работать как два процесса или они будут толкаться.


            В PyTorch две сетки среднего размера толкаются (мелкие не толкаются особо), а с MPS правда в сложном сетапе с DDP у меня как-то не особо запустилось прямо.


            Правда DDP для сделан для такого и вообще с новыми дровами 2 процесса на одной карте не запустишь с ним уже — вылетает exception.

              +2
              Были сеточки которые загружали GPU всего на четверть, через этот финт на одном gpu учились по 4 сетки. Просадки по скорости не было
          0

          Ещё есть такая фишка, что у консьюмерских Turing и Ampere в Tensor Cores понерфили FMA FP16->FP32.
          Производительность такая же, как для FP32->FP32, и в два раза меньше, чем у FP16->FP16.
          У аналогичных Quadro RTX 32-битный аккумулятор при FP16 FMA не дает замедления вовсе.
          При этом для mixed precision на консьюмерских всё равно остается выгода от меньших требований к пропускной способности.

          +1
          По поводу 3090 и 3080 с блоками питания есть нюанс. Не стоит собирать из старых моделей, потому-что есть вероятность ухода блока питания в защиту от резкой полной нагрузки даже на одну 3090.
            0

            Да, совсем забыл, надо добавить по идее про это тоже. У 3090 Turbo — ДВА 8-пиновых разъема питания, если кто не в курсе. Это очевидным образом влияет на выбор блока(ов) питания.


            image

              +2
              Майнеры давно освоили перепайку серверных БП, можно недорого взять БП на 2500Вт класса платинум/титаниум. Поэтому 8pin разъемы это вообще не проблема.

              Место размещения определяет и корпус. В датацентр вам надо делать ящик 4-6U, и в него пихать по максимум вентиляторов невзирая на шум. Кожуха с карт можно в таком случае вообще снять, то есть превратить карты в тонкие и безвентиляторные. Райзеры появились весьма интересные в последнее время.

              Если же хочется собрать свой крей, то есть уникальный суперкомпьютер в специально выделенном помещении, то я бы не отказывался от воды. Вода это по сути бесплатная производительность и теплый бассейн для сотрудников. И карты и процессоры дадут на воде +20%, и в суммарных затратах это будет ощутимо (когда карты и процессоры стоят не один и не два килобакса за штучку).

              Тип памяти определяют процессоры по сути, если устраивают недорогие многоядерные низкочастотные зионы, то к ним бонусом пойдет серверная DDR3 ECC память.

              Читал, правда руками не щупал, бывают адаптеры PCIe2PCIe. Для соединения сборки из небольшого количества материнских плат, это может быть интересно.
                0
                можно недорого взять БП на 2500Вт класса платинум/титаниум

                А не подскажете где?


                В датацентр вам надо делать ящик 4-6U

                Вы имеете в виду "майнерский" корпус, или какие-то определенные модели, которые легко переделать под свои нужды?
                Меня просто в свое время остановило нежелание особо ничего колхозить, т.к. 4 карты против 6 — это не особо разница прямо, проще просто два бокса рядом друг с другом поставить.


                Читал, правда руками не щупал, бывают адаптеры PCIe2PCIe.

                Интересно кто-то пробовал ли такое.


                Если же хочется собрать свой крей, то есть уникальный суперкомпьютер в специально выделенном помещении, то я бы не отказывался от воды.

                Честно говоря не спрашивал принимают ли воду в какие-то дата-центры, но предположу, что для этой опции надо уже иметь свою небольшую серверную.

                  0
                  Райзеры появились весьма интересные в последнее время.

                  А кто-то такое пробовал для DL?
                  Они не мешают там друг другу?


                  Для майнинга понятно наверное, что точно норм.
                  Так мы упремся в процессор по сути, но топовые ThreadRipper или платы с 2 процессами в принципе доступны, наверное реальная проблема может быть в памяти.


                  Хотя опять же, недавно видел такую ссылку — https://www.amd.com/ru/processors/ryzen-threadripper-pro

                    0
                    Так мы упремся в процессор по сути, но топовые ThreadRipper или платы с 2 процессами в принципе доступны, наверное реальная проблема может быть в памяти.


                    Разумеется упремся в пропускную способность памяти, поэтому после определенного кол-ва ядер, дальнейшее их увеличение не особо сказывается на задачах, где важна большая пропускная способность памяти. Если бы с ростом кол-ва ядер еще бы росла пропускная способность памяти, это было бы интересно. Например для каждых 16 ядер, своя шина памяти(адресная+данных), свой контроллер памяти, тогда да, параллелизуемые задачи решались бы намного быстрее.
                      0
                      Например для каждых 16 ядер, своя шина памяти(адресная+данных), свой контроллер памяти, тогда да, параллелизуемые задачи решались бы намного быстрее.
                      Каждые 16 ядер упаковываются в отдельный корпус, и втыкаются в отдельные слоты. Обыватели говорят про такое «двухпроцессорный сервер», NUMA.
                    +1
                    Как вариант — «авито серверный блок питания».

                    В принципе любой дешевый 4-6U корпус + напильник + шуруповерт + дремель = корпус суперкомпьютера. Есть и майнерские рековые корпуса, в том числе в виде наборов «склепай и покрась сам».

                    Я думаю что просто не нужна вода в серверной. Хотя были проекты такие, воду подавать в вертикальные конструкции шкафов. Но грубо говоря, оплачивая место в стойке вы платите в том числе и за +16 в зоне забора воздуха.

                    А какая им разница, PCIe x8 оно и есть x8.

                    Не очень понял какая проблема в памяти у топовых ThreadRipper? Но надо понимать, делаем дешево или топово. Сотни гигабайт RAM в любом случае будут очень недешевы.
                      0
                      Не очень понял какая проблема в памяти у топовых ThreadRipper?

                      Проблема в том, что материнские платы поддерживают зачастую только 256 GB RAM.
                      Если умудриться впихнуть через такие райзеры даже в геймерскую материнку 8 3090, то теоретически по памяти могут начать проблемы с ее нехваткой.


                      А какая им разница, PCIe x8 оно и есть x8.

                      Я видел тесты, когда искусственно занижается пропускная способность шины добавлением паразитного трафика, и гистограммы FPS начинают проседать и появляются фризы. Может с DL может быть что-то такое.

                      +1
                      У майнеров есть корпуса на 6 карт для размещения в стойке. с ними одна проблема — карты устанавливаются не над материнкой, а за ней и райзеры в виде шлейфов подключить не получится. А вот райзеры из ссылки выше — довольно интересны (те что x8), но дадут еще +$50-60 на карту. На 6 карт — $350. Может лучше эту сумму добавить чтобы купить что-то типа такого?
                      С водой есть свои приколы — нужно обеспечить герметичность внутри корпуса, по-хорошему радиатор и вентиляторы нужно выносить за пределы корпуса, а для этого надо вывести трубки, причем так, чтобы они не перегибались, продумать возможность долива жидкости и слива/залива при необходимости обслуживания и т.п.
                      Но в эксплуатации вода в очень хороша
                        0
                        А вот райзеры из ссылки выше — довольно интересны, хотя они всего 4x

                        Там вроде есть BIFURCATED RISER X16 TO 2X8 (SET) — или я чего-то в упор не вижу?


                        Но в эксплуатации вода в очень хороша

                        все что описано выше с водой уже тянет на настоящий суперкомпьютер =)
                        как вариант брать гибридные карты просто
                        но их не купить просто так

                          +1
                          Там вроде есть BIFURCATED RISER X16 TO 2X8 (SET) — или я чего-то в упор не вижу?

                          да, чего-то не туда сначала посмотрел
                          как вариант брать гибридные карты просто
                          но их не купить просто так

                          не. ну вот будет допустим 6 карт, у ним 6 радиаторов и 12 патрубков определенной длины. Как все это хозяйство размещать я не представляю. А оставлять тепло внутри корпуса — тогда не очень ясно зачем вода :)
                            +1
                            Да, в один слот х16 можно поставить две видеокарты в режиме x8 или четыре x4. 50$ на карту, если карта уровня 3090 — в пределах погрешности цены.

                            По совсем хорошему, нужны не вентилятор и радиаторы, а теплообменник. Внутренний контур чистая вода, внешний контур водопровод — забираем холодную отдаем горячую. Никаких 6 радиаторов и 12 патрубков.

                            256 гигов это немало, 512 можно получить используя двухпроцессорные платы на 2011 сокете. Ну или экспериментировать.
                              0
                              BIFURCATED RISER X16 TO 2X8 (SET)

                              Интересно есть ли такие на PCIE 4.0
                              Гугл поиск пока показал "ждем"


                              не. ну вот будет допустим 6 карт, у ним 6 радиаторов и 12 патрубков определенной длины. Как все это хозяйство размещать я не представляю

                              Есть анекдот как человек 4 карты такие поставил в ATX корпус "кубик".
                              Как больше — не знаю, наверное идет к корпусам для майнинга.
                              Вообще есть корпуса такого типа — https://ru.thermaltake.com/core-x9.html — они огромные и там можно и сверху и снизу поставить радиатор.

                                0

                                Посмотрел еще тарифы — 4U размещать дороже чем ATX корпус, но это наверное детали уже.


                                Вообще если есть крутые реально работающие райзеры, то заколхозить наверное можно куда угодно.


                                Да, в один слот х16 можно поставить две видеокарты в режиме x8 или четыре x4. 50$ на карту, если карта уровня 3090 — в пределах погрешности цены.

                                Уточню на всякий, а вы пробовали? Вот на тех райзерах из ссылки или каких-то похожих? Нет проседаний по скорости?

                                  +1
                                  Нет, еще не приехали они. И для двух карт с одного слота BIOS нужно править или брать у них плату которая такое умеет.

                                  В цене размещения, энергопотребление займет основную долю. Так, 2500 Вт стоит 22000 рублей, а 4U всего 4000.
                                    0

                                    Про Биос это очень существенный комментарий. А то я подумал что воткнул и вперёд. А на какой мамке делать будете?

                                      +1
                                      На x79 китайской. Вот ссылка по доработке BIOS.
                                    +1

                                    Ставили bifurcated raisers в билд с 6 картами для ML: https://www.kaggle.com/c/riiid-test-answer-prediction/discussion/209585#1144383

                                      0

                                      Интересно, 16 ядер хватило на 6 карт?
                                      Прикольно что Биос уже из коробки это поддерживал
                                      Как делали питание?

                    +1
                    Скриншот с ценами свежий? Где по таким ценам 3090 турбы раздают? прикупил бы парочку
                      0

                      Нет, скриншот я сделал из письма в почте, когда приценивался =)
                      Мне уже тогда наценка в 30-40% против официальной цены показалась большой, но в итоге карточками я очень доволен.
                      Вероятно неспроста их сняли с производства.

                      +1
                      Эмм, а если для текущих задач арендовать время от времени cloud GPU (по ценам — по разному, но средние конфиги около 1$ в час, +-) — так не выйдет дешевле? Плюс, цены со временем на вычисления снижаются, а доступная мощность растет…
                        0

                        Много копий сломано на том, кормить ли Амазон и обсуждениях того, что кажущиеся астрономическими чеки стартапов это всего лишь 1 год зарплаты 10 человек в Америке плюс 30-40% костов на сервисы GAFA (реклама + хостинг).


                        Но тут действует простое правило — если рассматривается покупка нового по официальной цене — то точка водораздела проходит где-то в районе года эксплуатации (с учетом простоя). Если вы покупаете подержанные карточки… то точка может наступать сильно раньше =)

                          +1
                          Мы недавно собрали вообще на «бюджетных» k80.
                          Плюс, на сейчас, они — майнерам не интересны, и купить можно очень за не дорого.
                          По крайней мере дешевле 1080.
                            0

                            Тут действует правило — все что можете купить дешево, если можно набрать эквивалентную мощность в ваш корпус.
                            Я как-то купил Titan X Maxwell за 10 при цене 1080 Ti в районе 30-40.
                            Но у старых карт будет больше проблем с новыми фишками фреймворков.
                            И греются они больше.

                              +1
                              О, супер! Тоже смотрю на них и думаю прикупить, благо на авито они недороги по сравнению с игровыми. Позвольте несколько вопросов:
                              1. Вы можете сравнить производительность к80 и игровых типа 2070,2080, 3080, 3090? Я встречал упоминание вскользь что производительность на уровне 2070супер, но это скорее было предположение. Интересно услышать из первых рук.
                              2. у к80 два чипа, тоесть это две карты в одном корпусе. и память 24гб. Вопрос по памяти- она делится на два- по 12 на чип или туда можно запихнуть гигантскую модель на все 24 гб?
                              как вообще в системе видится эта карта? как два ускорителя?
                              3. софтовых проблем нет? с дровами и поддержкой в современных фреймворках? тензорфлоу2 на них работает?

                              Как вообще впечатление от этой машины? Не разочаровались?
                              Заранее признателен за ответ.
                                0

                                Присоединяюсь, тоже интересно.
                                По идее должно быть что-то типа 1080 Ti, но больше памяти
                                Может греется сильнее
                                Как решили вопрос с охлаждением (она пассивная)

                                  0
                                  По охладу я уже думал. Текщие решения такие:
                                  image
                                  и
                                  image

                                  Но я думаю пойти дальше- содрать внешний пластик, оголить радиатор и приделать на него два вентилятора из днс по 250 рублей. На старых 1070 с умирающими вентиляторами такая схема работает годами.

                                  Но на последней фотке мы видим что человек поставил еще обдув на память первого гпу. Видимо есть проблемы с этим. Возможно нужно делать бекплейт с задувом под него.
                          +1
                          Отличная статья, спасибо!

                          Найти работающий на x8-x16 райзер это то еще развлечение.

                          На самом деле гибкие райзеры — вариант жизнеспособный, но думаю, что нужно тестировать на совместимость с конкретной материнкой. У меня хорошо работают Phanteks длиной 60 см и HLX-LINK c Aliexpress тоже длиной 60 см — на все 16x и с 0% ошибок.

                          Однако, обнаружилось интересное явление, которое долго не удавалось отладить — некоторые карты 3090 Founders Edition на некоторых задачах выбивают защиту по току на материнке (материнка после этого включается только после физического отключения питания). Поэтому, наверное, все же предпочтительнее райзеры с возможностью инжекции питания, либо отдельно покупать инжекторы.

                            0

                            А как понять есть ли такая возможность? И как выглядят инжекторы?


                            Не совсем понимаю — большие карты ведь питаются от блока питания напрямую, или там какая-то хитрость ещё с питанием через pcie?

                              0

                              Ещё кстати есть мнение что FE карты лучше никогда не брать, у меня 1080 Ti одна такая (выиграл) и она горячее собратьев

                                0
                                Тоже к этому склоняюсь. 3090 FE достаточно холодная по температуре ядра, но у нее конструктивная недоработка, проблема с охлаждением памяти.
                                +1
                                На таких райзерах есть разъем для подключения питания от БП.

                                Пример:
                                riser.maxcloudon.com/en/bifurcated-risers/22-bifurcated-riser-x16-to-4x4-set.html
                                  0

                                  Вероятно речь про вот это? Как-то сразу не обратил внимания, белая, сливается.


                                  Screenshot 2021-03-17 094316

                                    +1
                                    Да, это оно… в данном случае, это стандартный разъем питания PCI-E, как на видеокарте. Но на разных райзерах разные разъемы бывают. Тут, вроде, нет единых стандартов.
                                      0

                                      понятно, прикольно
                                      вкупе с материнкой из треда ниже, с такими райзерами даже без бифуркации возможности уже безграничны становятся
                                      была бы такая материнка еще под ThreadRipper а не EPYC, было бы совсем хорошо!

                                  +1
                                  Уже писал, но добавлю еще тут, так как здесь это более уместно, не сочтите за спам:
                                  Считается что 25-30% карта потребляет с матери через pci-e разъем. Именно поэтому сильножрущие карты могут сжечь мать (для 5х3090 это составит в районе 500+ ватт или 40 ампер по 12вольтовой линии) — горит разъем питания на матери или дорожки от него. Выглядит примерно так:
                                  image

                                  Но райзеров с поддержкой питания больше чем x1 я не встречал.

                                  Также еще важное по райзерам: существуют райзеры с тремя разными разъемами питания- считается, что лучше те, которые под такойже разъем как доп питание видеокарты- незнаю как он правильно называется. Худшим считается разъем как на сата хдд. молекс- посерединке. Разъем питания на райзере- также является одной из точек возгорания. Учитывая низкокачественность как самих райзеров, так и этих разъемов- это точка повышенного внимания.
                                    0
                                    Но райзеров с поддержкой питания больше чем x1 я не встречал.

                                    Вроде по ссылке в треде выше как раз такой?

                                      0
                                      Да, такой. Но нужно пробовать его. Мне в руки попадал один подобный экземпляр — китайцы много чего заманчивого выкладывают на али. Завести не удалось. Плюс тут нужно понимать как работает pci-e-мультиплексор на матери — например на некоторых бытовых матерях, где есть два х16 разъема, при обнаружении подключения к первому на второй дается только 8 линий. Причем логика этого процесса у разных производителей разная. Поэтому конечный вывод можно сделать только при непосредственном тестировании железки.
                                  +1
                                  Попробую угадать… на картинке AsRock Rack ROMED8-2T. На ней распаян дополнительный разъем PCI-E Power (как на видеокарте) и в инструкции написано, что, если больше 2х видеокарт в системе его обязательно надо подключить к блоку питания.
                                  Проверьте, а то вдруг, кто-то просто инструкцию не прочитал.

                                    0

                                    Неплохая штука (ну… только дороговата).


                                    Но не до конца пойму, зачем райзеры, 4 турбо карты поколения Ampere (да на картинке FE там другие кулеры) туда встанут просто напрямую. Или это корпус такой?

                                      +1
                                      Корпуса были взяты из расчета установки 6 турбокарт или 4 обычных. Но турбо оказалось не купить :)
                                      +1
                                      Проверьте, а то вдруг, кто-то просто инструкцию не прочитал.

                                      Ну за дураков-то не надо людей считать.
                                        +1
                                        Не… я и не думал… но иногда такие ошибки всё-же, к сожалению, случаются, потому и написал, на всякий случай…
                                        Я сначала на фотке посмотрел, но, там, как раз место где этот разъем находится и не видно.
                                        +2
                                        То есть мать за 60 тысяч и к ней можно купить дешевый EPYC 7261 за 30-70 тысяч и получить 128 PCI-E lanes? Вот это круто. Кажется я знаю, на чем буду собирать следующую систему.
                                          +1
                                          Да. Примерно такой логикой и руководствовался при сборке. До кризиса с поставками электроники мать стоила 500 долларов. К ней EPYC 7302 на 16 ядер (не самый дешевый, но под мои задачи показался оптимальным вариантом с небольшим запасом на вырост).
                                          При этом, через пару-тройку лет можно будет сильно добавить оперативки и купить EPYC третьей серии (Milan) с большим количеством ядер, если будет такая необходимость.
                                            +1
                                            Я на Threadripper 1900X и Gigabyte X399 Aorus Exteme собрал, обошелся без райзеров, 4 GPU слота там правильно расположены
                                              +1
                                              В моей сборке, разве что, еще присутствуют вот такие штуки, так что линий в Threadripper не хватило, и райзеры пригодились:
                                              image
                                                +1
                                                Там вообще не просто все с этими линиями. Несмотря на 64 линии, под PCI-E выдается максимум 48, то есть карты работают в режиме 16x-8x-16x-8x. Из-за этого потенциал для апгрейда довольно куцый — процессоры под сокет TR4 которые не 1900X стоят дорого, турбинные карты ограничивают выбор.
                                                В целом решения есть, но что-то новое я бы собрал на EPYC, я почему-то думал что их дешевле 200к за комплект мать+проц не бывает.
                                                  0

                                                  Теперь я тоже знаю какой билд планировать в будущем)

                                        +1
                                        Зачетный дев-бокс
                                        +1
                                        Цены на карточки уже не найти, конечно, но за статью спасибо
                                          0

                                          Да понятно, повторюсь — это скриншот из почты.
                                          Это скорее иллюстрации цены платформы.
                                          С карточками-то все понятно(

                                          0

                                          Из комментов я реально узнал для себя новые вещи:


                                          • Про очень интересную материнку и недоступность ThreadRipper PRO
                                          • Что на авито продают блоки питания очень дешево и массово (майнинг)
                                          • Про модные райзеры

                                          Но осталась все-таки еще пара вопросов, которые публика обошла стороной:


                                          (0)


                                          Пока все в основном писали про материнки, карточки и корпуса.
                                          Но никто не написал про сеть какие-то свои хаки или находки.
                                          Я вот просто не знаю (хватало, руки не доходили, ноды все слишком разношестные) нужно ли больше 10 гигабит сети чтобы тренить сетки через DDP.
                                          Такое обычно очень плохо гуглится.


                                          (1)


                                          16 GB RTX 3080 W/ 8704 CUDA Cores

                                          Кто-нибудь все таки знает что это такое тут?

                                            +1
                                            Недавно проскакивала новость, что Threadripper Pro таки будут продаваться, но купить их все равно будет, наверно, сложно.
                                            А, на перечисленные ваши вопросы ответов у меня, к сожалению, нет )).
                                            В качестве хака могу посоветовать установить 14 видеокарт через райзеры в вышеупомянутую материнку, пробросить в виртуальные машины, и посмотреть сколько там будет трафика.
                                              +1
                                              По поводу сети — посмотрите на статистику дропнутых и переотправленных пакетов во время работы, если она растёт — вы упираетесь в сеть.
                                              Spark на больших объемах и 40Гб/с сеть неплохо утилизирует.
                                                +1
                                                Кто-нибудь все таки знает что это такое тут?

                                                Ноутбучная версия: videocardz.com/newz/nvidia-geforce-rtx-3080-mobile-confirmed-with-6144-cuda-cores-and-16gb-of-memory. Десктопной такой нет, варианты 3070/3080 с увеличенным объемом памяти nvidia отменила.

                                                Еще лайфхак: слышал, что 40 гигабит недорого делают на б/у infiniband железе с ебэя.
                                                  0

                                                  У знакомого в офисе коллеге купили такой ноут
                                                  Если не забудет, спросит его как оно

                                                    +1
                                                    Да, 354a мелланокс относительно не дорог (немного дороже 10 гигабитных sfp+ карт). Может работать как IB так и Eth.
                                                    Потребуется еще dac кабель примерно такой MC2207130-001
                                                    Основной затык, пожалуй, в свитче. Eth свитч с QSFP будет довольно дорог.
                                                    Как вариант если нужно объединить несколько серверов (gpu/data), то можно их залинковать по IB, а для доступа к остальной сети использовать встроенные гигабитную сетевуху. В этом случае можно посмотреть на бюджетную IS5022 (свитчи с гетвеем IB<->Eth стоят на порядок-полтора дороже). Но сам такое не пробовал.
                                                      0

                                                      А вас не затруднит накидать пару ссылочек на новое / старое, чтобы прицениться и понять, где вообще это искать?

                                                        +1
                                                        Да не вопрос — ebay.com :)
                                                        2х портовый qsfp (40 гигабит) — Mellanox CX354A-FCBT (ebay)
                                                        QCBT можно пережить в fcbt, но китайцы по-моему и так все перешивают в старшие модели и продают уже как старшие модели.
                                                        Есть еще однопортовый (cx353a), но смысла нет — деньги те же, а порт один. дока1 дока2
                                                        Для подключения лучше использовать пассивные медные патчкорды (dac кабели)
                                                        dac кабель — MC2207130-001 (1 метр) или MC2207130-002 (2 метра).
                                                        Никакие трансиверы в этом случае не нужны. Смотреть на ebay, хотя на авито может что-то интересное пролетать
                                                        IB свитч mellanox is5022 (ebay)
                                                        Для Eth смотреть свитчи с qsfp портами. Скорее всего это будут большие железки для установки с стойку. На ебее есть интересные (и относительно недорогие) варианты, но из-за размера/веса и возможных проблем с таможней тащить их не очень интересно.

                                                        Еще особенность 40 гигабит — по сути это 4*10 гигабит агрегированных линка. Есть кабели которые позволяют разбивать 40 гигабитный порт на 4 по 10 гигабит (пример) но только со стороны свитча + требуется поддержки свитча
                                                        Также у мелланокса есть переходники для подключения в 40 гигабитный порт 10 гигабитных модулей (sfp+) MAM1Q00A-QSA

                                                        И еще здесь можно много интересного найти
                                                          0

                                                          Хм, читал что-то насчет волн апгрейдов с 10 до 40 и с 40 до 100.


                                                          Глупый вопрос, а сейчас разве не должны распродавать серверное оборудование на 100 гигабит, т.к. все апгрейдятся на 100+?


                                                          Или все еще на 40 переходят?


                                                          для Eth смотреть свитчи с qsfp портами. Скорее всего это будут большие железки для установки с стойку

                                                          я вот урвал 10 гигабитный маленький
                                                          их вообще не бывает маленьких?

                                                            +1
                                                            100 гигабит, как я понял, тоже распродают. Цены по enterprise-меркам тоже очень низкие (например, $400-500 за адаптер), но это уже в разы дороже, чем 40 гигабит.
                                                              +1
                                                              100 гигабитный мелланокс — это начиная с cx456a. Стартует он где-то с 300.
                                                              А вот свичи… 25/100 б/у с ебея там — думаю где-то от $2к. Здесь, думаю, ценник будет стартовать от 400-500тыр
                                                              +1
                                                              Вот я не уверен, что «все апгрейдятся на 100+». Если в датацентрах они может и нужны, то в обычном энтерпрайзе далеко не всем нужно даже 100 гигабит. И встречал статью, в которой разбирался переход с 10/40 на 25/100. В реальности латенси почти такой-же, цены — в разы дороже, и учитывая что большинству 10/40 хватает — смысла перехода нет. Железки обычно скидывают, когда по ним наступает EOL и нет поддержки. Для 25/100 железок это время еще не наступило.
                                                              Учитываю какие потоки свитчи должны перемалывать — очень врядли что-то из маленького найдется хотя бы даже на 4-8 QSFP портов.
                                                              Кстати, какой маленький 10 гбит свитч взяли? что-то из микротика?
                                                                0

                                                                Мне в чате еще написали мол что люди пробовали для тренировки сеток
                                                                Мол 10 гигабит хватает
                                                                Но у меня банально двух одинаковых нод и задачи нет чтобы проверить =)


                                                                Если коротко подытожить


                                                                • 10 гигабит — бесплатно, только свич найти
                                                                • 40 гигабит — провода, найти свич (скорее всего рековый), 100-200 баксов за 1 карточку, PCIE порт лишний кушает
                                                                • 100 гигабит, то же самое, но свич еще сложнее найти, 1 карточка 300-400+ баксов

                                                                все верно?

                                                                  +1
                                                                  ну не бесплатно )
                                                                  10 гигабит — даже если интегрированная, то rj45 свитч выйдет скорее всего немного дороже sfp+, и, вероятно, будет шумнее, а латенси будет чутка больше.
                                                                  40 гагибит — патчкорд $25, карта $65. Свитч будет дороже чем для 10 гигабит

                                                                  25/100 гигабит — все дороже 10/40, наверно раз в 5
                                                                    +2
                                                                    Мол 10 гигабит хватает
                                                                    Можно прикинуть — при обучении идет обмен градиентами, соответственно требуемая полоса пропорциональна размеру модели и количеству шагов оптимизации в секунду. Десятимегабайтная модель, апдейтящаяся 10 раз в секунду, требует порядка 100 мега_байт_ на ноду. Соответственно на гигабитном канале 50% времени будет идти прогон, 50% времени — обмен градиентами. На 10 гигабитах ситуация получше, но, с другой стороны, зачем такой модели, которая обучится за пару дней на одном GPU, сетевые решения? Если в пределах одной машины можно устроить молотилку на 4-8 GPU. Не понимаю.
                                                                      +1

                                                                      Получается что если применить такой расчет, то 500-мегабайтной модели, делающей 2 шага в секунду нужно в районе 10 гигабит, а 50-мегабайтной — где-то гигабит. В принципе сходится.


                                                                      о, с другой стороны, зачем такой модели, которая обучится за пару дней на одном GPU, сетевые решения

                                                                      Да банально оценка цены дальнейшего масштабирования. Такие статьи это хороший повод собрать опыт в одном месте.

                                                                +1
                                                                Большое спасибо!
                                                          +1
                                                          Для себя я заначил вот это видео — там строят на дешевых компонентах 10гбпс. Возможно Вам пригодится: youtu.be/y1HLAkb2lrU
                                                            0

                                                            ну он зачем-то на оптике 10 гигабит делает
                                                            10 гигабит можно на cat 6 сделать
                                                            даже cat 5 работает на малом расстоянии


                                                            и карточки сетевые есть дешманские за 5-7 тыр
                                                            тут даже вторичка не нужна =)


                                                            а все топовые мамки для DL 10 гигабит на борту часто и так имеют

                                                          0
                                                          Рекомендация покупать 10 серию видеокарт вредная. В 10 серии нет тензорных ядер, а дальше они есть, и карты 20 серии с тензорными ядрами примерно в 3 раза быстрее в fp32 и в 9 раз быстрее в fp16 для обучения нейронок, чем аналогичные карты 10 серии.
                                                            +1
                                                            Рекомендация покупать 10 серию видеокарт вредная.

                                                            10 серию надо покупать исключительно подержанными (и не убитыми) только по интересной цене. Идеальный вариант — с малым пробегом у дяденьки, кто собрал комп для красоты.


                                                            карты 20 серии с тензорными ядрами примерно в 3 раза быстрее в fp32

                                                            В fp16 сравнивать смысла нет, т.к. 10 серия просто не предназначена для этого.
                                                            А тут интересный вопрос, прирост по скорости будет зависеть скорее от задачи.
                                                            Вообще кажется странным, что если бы там реально на всех задачах было x3, то карты бы наверное пошли в массы все-таки.
                                                            Ну и плюс бенчмарки многочисленные на реальных сетках показывают далеко не x3.

                                                              +1
                                                              У меня есть и то и то, я могу сказать только что все упирается в текущий рынок. За определенную сумму все карты выше определенного уровня хороши (совсем дешевые плохи из-за того, что занимают PCI-E слот, который стоит денег). Так что если на multi-GPU плевать и система собирается под инференс или под гридсерч, можно подумать.

                                                              В сентябре 1080Ti стоили 30 тысяч, 2070S стоили 40 тысяч новые, 2080S стоили столько б/у. Между 70S и 80S не такая большая разница чтобы покупка б/у окупалась, но вот 1080Ti на этом фоне смотрелись так себе.
                                                              Плюс 1080Ti: 11 гб памяти против 8 у 2070Super.
                                                              Плюсы 2070S: такая же производительность на 32 битах, но холоднее при этом (градусов на 10-15 в турбинном исполнении), есть 16 бит.
                                                              Как сейчас с рынком не знаю. Бегло похоже, что 2070S до сих пор предпочтительнее.

                                                              По поводу 16 бит. Главный плюс float16 не столько в приросте скорости, сколько в том, что это эффективное удвоение доступной памяти, а это много. То есть помимо прироста скорости еще и скорость тренировки выше из-за на 30% большего батча. Память — это хорошо.

                                                              Прирост скорости штука более тонкая. Если постоянно тренируешь один и тот же тип CNN — это одно, прирост будет двухкратный и без проблем. Если сравнивать поколение к поколению (то есть 1080Ti и 2080Ti) — верю и в трехкратный. Но. По сути это лишний «гиперпараметр», усложнение всей конструкции. Возможно где-то потребуется лишняя нормализация, возможно сторонний код незаметно кастанет все в 32 бита. Я вот вчера обнаружил, что при возврате на 32 бита у меня нет замедления вообще. Полгода назад было, сейчас нет. Потому что кастомные слои с гитхаба. Пофиксить не проблема. Но тем не менее, если бы у меня были 3090, я бы не запаривался с 16 битами вообще, это не бесплатная вещь.
                                                              +1

                                                              Шина предусматривает подачу питания, а иногда даже контроль и управление оным.
                                                              И это питание используется, как минимум для поддержания работы интерфейса, контроллера питания, и тд.
                                                              Бывают кейсы когда ублюдочный рейзер и/или гениальная разводка бытовой платы и/или вы решили подправить биос и наплодить сущностей или мать сама умеет и их плодить но не разу не ждёт такой нагрузки.
                                                              Лечится паяльником, но нужно понимать что по хорошему это отдельный контур питания.

                                                                +3
                                                                Я занимаюсь подобного рода «суперкомпьютерами» достаточно давно и накопилось прилично опыта. Добавлю свои три копейки. Всё, о чем я пишу, опробовано и испробовано мной лично, если не указано обратное.

                                                                Итак, поехали.

                                                                1. Размещение оборудования

                                                                1а. Если мы говорим о дешевом вычислителе, то зачем нужно размещать его в общественном датацентре (ну если вы конечно не аффилированны с оным)?
                                                                Нужно подумать о своем небольшом помещении с хорошей продуваемостью — и будет вам счастье. Если нужен доступ с разных мест- микротики и впн — сейчас это несложно, зато вы уходите от суровых ограничений датацентров на габариты, что важно не только для удешевления, но и для долговечной работы карт, которые вам не придется плотно упаковывать в тесные корпуса; Понятно, что датацентр может быть необходим из неких политических моментов, типа политик инвесторов и тд, но я рассуждаю исключительно в терминах денег и технических решений. Я занимаюсь этим на свои деньги и пришел именно к такому формату;

                                                                1б. Продуваемость помещения зависит от мощности оборудования и геометрии самого помещения. Если вы делаете это не сами, то посоветуйтесь с вентиляционщиками- при всей банальности вопроса- треки воздушных потоков весьма неординарны и без опыта в этом деле — непредсказуемы.
                                                                Помните, что 2070супер кушает 130 Вт, 3090- до 370 Вт в зависимости от настроек питания гпу; То есть пара ферм 5х3090 в пиковой нагрузке будет выдавать 4квт тепла, которые вам надо удалить из помещения вместе с воздухом и обеспечить приток холодного воздуха того же объема. Бытовой распространенный напольный вентилятор диаметром 45см и мощностью 120вт работающий на выдув- это тот минимум с которого нужно начать.
                                                                1в. Кондиционеры не решают. Они только будут жрать кучу электричества. Решает забортный воздух. Даже летом.

                                                                2. Технические моменты реализации вычислительной фермы
                                                                2а. Корпус
                                                                Корпус ненужен. Корпус это зло. Нужен каркас, как у майнеров. И не ставьте карты плотно. Пусть между ними будет 10см и как можно больше воздуха; Ограничением также выступает длина хвостов питания от БП;
                                                                2б. Питание и райзеры
                                                                i) Вопросы питания и райзеры связаны непосредственно. Примите как данность что вам нужно питание карт через райзеры иначе на мощных картах у вас загорится либо разъем питания на матери, либо дороги на самой матери; Я использую обычные майнинговые райзеры на одну линию pci-e у которых есть разъем для подключения питания. Да, это х1, но мне пока лень паять чтото самодельное на х16 с доп.питанием; зависит, естественно, от задач- если нужно постоянно гонять из основного озу в память гпу большие объемы — то надо уширять шину.
                                                                ii) Схема питания. Можно использовать один мощный БП, можно использовать несколько БП по следующей схеме: Один (более сильный) БП питает мать и дает питание на райзеры (для расчетов мощности считаем, что через райзер карта потребляет 30 процентов своего тдп), второй и последующие БП питают карты через разъемы доп питания на самих картах. Не перепутайте, в сети полно примеров сгорания систем; питание карт через райзеры электрически связано с питанием матери, поэтому должно осуществляться одним БП, доп питание на картах же электрически не связано с матерью- незнаю как это сделано, но это факт); Такая схема питания удешевляет сборку, но увеличивает габариты фермы.
                                                                Можно приобрести так называемые синхронизаторы для одновременного запуска ведомых бп от ведущего, но это излишне, можно просто перемкнуть на-вечно скрепкой у ведомых бп нужные пины и они будут всегда включенными. Для карт это нормально- я питал так и древние 1070 и текущие 3090;
                                                                При использовании нескольких бп нужно включать их в розетки однообразно, тоесть чтобы ноль и фаза были на одних и техже контактах БП. При использовании ассиметричных (г-образных) вилок- это не проблема. Да, это геморрой, но это экономит деньги. Но мы тут как раз за этим)
                                                                iii) Блоки питания. Я негативно отношусь к переделанным серверным БП, ибо в сети полно примеров на тему умирания карт при сбое в таких бп. Хотя, признаюсь, блоки на 3КВт от IBM выглядят очень вкусно и притягательно и я неоднократно думал перейти на них, но мысль о сгорании нескольких карт 3090 меня сразу отрезвляет.
                                                                Я использую или фирменные Zalman EBT на 1200 Вт (когдато они были по приятным ценам в ДНС) или фирменные же маломощные блоки на 750Вт от нормальных брендов типа того же Залмана, Термалтейка и тд — одно время в ДНС были приличные термалтейки по низкой цене и аж с 60месячной гарантией — от жадности я их купил много и теперь приходится использовать. В последнее время я использую китайские БП высокой мощности (1.6, 1.8, 2.4 КВт), продающиеся в майнинговых инетмагазах;
                                                                iiii) Кондиционирование питания. При высокой стоимости оборудования- это обязательный момент. Я использую стабилизатор двойного преобразования Штиль Инстаб. У них есть интересные модели, которые берут на вход 3 фазы и выдают однофазные 220вольт. Дорого (примерно 100тр на 20КВА или 16КВт), но необходимо. Без них можно лишится всего в один момент, если вдруг электрик перепутает фазу с нолем или сделает обрыв ноля.

                                                                2в. Материская плата (и процессоры).
                                                                Тут все просто. Нам нужна мать с большим количеством линий pci-e для подключения карт и ссд и с поддержкой нужного объема озу;
                                                                Если вам достаточно 64 гб озу — то это дешевые бытовые платы прошлых поколений типа MSI Z270-A PRO или аналогичные; Именно на таких у меня все и крутится.
                                                                Текущие бытовые платы я рассматривать смысла не вижу- они поддерживают только 128гб а стоят дорого;
                                                                Для тех кому надо больше 128 гб озу- огромный выбор серверных плат, например на авито много двухпроцессорных плат Супермикро предыдущего поколения с сокетом 2011-3 и чипсетом с612, поддерживающих процессоры Xeon E5-2600 v3/v4 и имеющих 16 слотов DIMM куда можно установить до 2Тб (в зависимости от модели), например — SuperMicro MBD-X10DRi. Этот вариант я собираюсь реализовать в ближайшее время. Поддержка же процессоров как v3 так и v4 дает большой разбег по итоговой стоимости, хотя основная часть стоимости тут будет память, конечно.
                                                                Также отдельно стоит сказать о вот таком моменте- я использую переходники для подключения м2 ссд в pci-e x16 слоты. Многие матери не позволяют грузиться с них, но в целом это не проблема- быстрый ссд используется для хранения обрабатываемых данных, а загрузка системы происходит с обычных сата ссд. Почему-то такой вариант многих отпугивает и народ упорно ищет платы (или шьет биосы) для поддержки загрузки с м2 — я не вижу в этом никакой надобности. Да и разделять диск с системой и диск с данными- это всегда хорошо;

                                                                3. Хранение данных. Как говорил один мой древний начальник — если можешь всё хранить локально- храни локально на одном накопителе или зеркале, если не умещается- делай локальный рейд для увеличения ёмкости, и если только оно нелезет уже никуда- думай про внешние схд и соответствующее сетевое высокоскоростное хозяйство. Я анализирую курсы валют и у меня пока нет проблем с хранением- вся база mysql на 600млн строк занимает жалкие 15гб, а выборки по нужным частям сохраненные в питоновские массивы — вообще копейки, поэтому у меня стоят ссд вд блэк на 1 тб и этого пока хватает, но в будущем планирую рейд из 4х двухтерабайтных ссд, аналогичный тому, что был приведен в пример выше. Понятно, что это не показатель, и на других задачах имеется сильно больший расход пространства и там не уйти от схд.

                                                                4. Жидкостное охлаждение
                                                                Отдельно хочется про это сказать несколько слов ибо в головах у народа часто каша и весьма вредная.
                                                                Менять имеющуюся воздушную со на водянку я сам не рискую и никому не советую. Имеется два аргумента против:
                                                                1) протечки. они случаются и иногда убивают карту и мать; погуглите- страдальцев полно;
                                                                2) память охлаждается через термопрокладки, которые со временем ухудшаются. Имея постоянный обдув фермы воздухом мы дополнительно уносим сколько-то тепла непосредственно с платы и чипов, установив же водянку мы лишаемся этого обдува, что не улучшает температурные условия работы памяти и системы питания карты;

                                                                Людям, которые готовы инвестировать несколько миллионов рублей (например от пяти) в машинное обучение можно посмотреть в сторону жидкостного погружного охлаждения- я думал об этом, но пока не решился делать. Из плюсов- стабильная низкая температура всех систем, и, соответственно, возможность повышения рабочих частот гпу и памяти гпу, и повышение срока службы. Из минусов- дорогая охлаждающая жидкость и затейливая инфраструктура для всего этого.

                                                                5. Модели карт
                                                                Начиная с 20ого сеймейства я подсел на MSI Gaming X trio и MSI Suprim X. Это достаточно дорогие карты с хорошей схемотехникой, большим количеством фаз питания, хорошей отбраковкой чипов гпу (по сравнению с, например, MSI Ventus, которые вообще не едут) и очень крутой системой охлаждения. В целом я сделал достаточно обоснованный вывод, что лучше переплатить за премиум исполнение карты и получить отсутствие геморроя, больший срок службы и большую производительность, нежели взять дешевые варианты.

                                                                Надеюсь, это будет полезно людям, которые занимаются машинным обучением.
                                                                Всем успехов в обучении их моделей!

                                                                  0

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


                                                                  Тут на самом деле нет единственно верного решения, но касательно отличий майнинга от ML могу отметить несколько моментов:


                                                                  зачем нужно размещать его в общественном датацентре

                                                                  Вообще если есть куда ставить то конечно не надо (если есть загородный дом с пустыми комнатами, гараж, итд итп)
                                                                  Если вообще балкон не на солнце и квартира большая… то очень многие на балконе просто держат
                                                                  Некоторые колокейшены принимают ATX корпуса и корпуса на уголках (если самому ставить некуда)
                                                                  Также прайсинг ML решений строится не от цены киловатта и железки, и размещение нескольких ATX боксов или стойки может быть разумно


                                                                  Ну то есть условно не всегда нужно сильно больше чем 10 карточек (лучше делать более оптимальные алгоритмы) и решение вопроса с питанием и отведением тепла по сути может стоить маржи за электричество, которую берет ДЦ.


                                                                  При построении фермы — дешевое электричество, охлаждение и размещение — очень важны. в ML — в некоторой степени меньше, т.к. масштабирование на 100 карточек на постоянку обычно уже не нужно. Ну или если нужно, на 1 неделю амазон все-таки проще. Чем полезным занять 100 карт на 100% времени целый год — если честно я не знаю. 10-20 карт — без проблем. Опять же правило года действует.


                                                                  Я использую обычные майнинговые райзеры на одну линию pci-e у которых есть разъем для подключения питания. Да, это х1,

                                                                  Для ML нужно минимум x4-x8.
                                                                  Но комментарий про питание на райзерах очень ценный.
                                                                  Я просто до этой статьи не знал, что райзеры надо питать =)


                                                                  предыдущего поколения с сокетом 2011-3 и чипсетом с612

                                                                  Для ряда ML задач процессора на этом сокеты не очень интересные по сравнению с решениями от AMD. Да и в самих матерях бывает нет слотов важных (M2).

                                                                    +1
                                                                    Тут зависит от задач. Например для включения в биржевой трейдинг нужно как можно больше мощностей.
                                                                    С другой стороны- если вычислитель нужен редко- то смысла все это городить конечно же нет, проще арендовать гпу в облаках.
                                                                    Смысл строить свой суперкомп есть только тогда, когда вы его можете загрузить круглосуточной работой, когда у вас есть пайплайн и конвейер данных. Если вы нагружаете гпу только когда приходите на работу и только на 10 минут в час- то или аренда или обычный комп в просторном корпусе под столом…

                                                                    Чем полезным занять 100 карт на 100% времени целый год — если честно я не знаю. 10-20 карт — без проблем.

                                                                    тем же самым, только больше моделей, больше вариантов параметров, больше данных, больше фич))

                                                                    Опять же правило года действует
                                                                    А что это?

                                                                    Для ML нужно минимум x4-x8
                                                                    Если не секрет, вы на каких задачах это ощущаете? Тестировали чтото на х1 и на х8 и оно дало сильную разницу?
                                                                    Я пробовал х16 (карта воткнута в слот на матери) и не увидел разницы с х1 вообще. Возможно это был чисто умозрительный пример и если поработать дольше то разница будет. Опыта нет.
                                                                      0
                                                                      А что это?

                                                                      Ну если можно минимум год постоянно юзать (хотя бы 60%-70% времени), то выгоднее собирать самому. В облаке маржа 2-3 раза. Ну и некоторые подержанные части сильно снижают кост.


                                                                      Если не секрет, вы на каких задачах это ощущаете? Тестировали чтото на х1 и на х8 и оно дало сильную разницу?

                                                                      Честно говоря в начале пути, я просто примерно на коленке прикидывал для относительно больших моделей сколько нужно пропускной способности, но сам лично тестов не делал. Может тут кто-то из публики лично сравнивал?


                                                                      Я бы предположил, что скорость нужна когда сетки довольно большие (500 мб — 1000 мб) и используется 4 карты одновременно.


                                                                      тем же самым, только больше моделей, больше вариантов параметров, больше данных, больше фич))

                                                                      Принцип 20-80 и ограниченность рынка тут сильно мешают.

                                                                      +1
                                                                      Для ряда ML задач процессора на этом сокеты не очень интересные по сравнению с решениями от AMD.

                                                                      Можете привести пример из ML где амд будет лучше интела? У меня достаточно узкая специализация- числовые ряды- и вся предподготовка непараллелится и идет практически на одном ядре, поэтому несталкивался с этим, а по работе всегда был интеллистом, поэтому мало что знаю про амд. Интересно обоснованное мнение человека, который по настоящему использует многоядерность (или амд хороши чемто еще?).

                                                                      примерно на коленке прикидывал для относительно больших моделей сколько нужно пропускной способности, но сам лично тестов не делал. Может тут кто-то из публики лично сравнивал?

                                                                      Коллеги, если кто имеет такую статистику- напишите пожалуйста- насколько и на каких задачах ширина шины до гпу начинает влиять?

                                                                        0
                                                                        Можете привести пример из ML где амд будет лучше интела?

                                                                        При обучении сеток надо грузить много данных и делать с ними операции (аугментации). Зачастую данные лежат еще в сжатом формате.
                                                                        Как правило это делается многопоточно, на 1 карточку обычно нужно 3-4 физических ядра.
                                                                        Процессоры AMD в последнее время были сильно интереснее с точки зрения количества ядер * их тактовую частоту (понятно, что там и другие факторы важны).
                                                                        На старые сокеты или нельзя найти решения с 16+ ядер, или они стоят очень дорого, или там тактовая частота 2 гигагерца против 3.5-4 у более современных.

                                                                          +1
                                                                          Понял. Спасибо.
                                                                      +1
                                                                      Спасибо, очень интересный опыт.

                                                                      Но вот не знаю… Аренда помещения + вложения в вентиляцию, фильтрацию воздуха и стабилизацию питания + электричество по коммерческому тарифу — это намного дешевле, чем стойка в датацентре?
                                                                        +1
                                                                        Так все считается. Напишите, например, Игорю Тарасову (itsoft, habr.com/ru/company/itsoft, тут можно как-то упомянуть хабровчанина чтобы он это увидел? былобы здорово), владельцу нескольких стоек в разных дата-центрах, включая NORD в Мск, спросите сколько будет стоить. Само место в стойке недорогое, но вот в купе с электричеством подозреваю что будет дорого.
                                                                        Но в целом я подразумевал ситуацию с небольшой фирмой или подразделением, которое занимается ML и которой нужны некоторые вычислительные мощности. Как правило, в такой фирме уже есть в наличии какая-то серверная комната или угол со стойкой- то есть зачатки инфраструктуры есть.
                                                                        Фильтрация воздуха- ненужна. Замените ее ежемесячным продуванием оборудования небольшим компрессором. Стабилизация питания- на 100тр вложенных денег вы получаете 16квт безопасного электричества и устройство, которое в любой момент уйдет на авито за 90.
                                                                        Понятно, что это колхоз. Но лучшие решения- это те, которые решают, а не те, которые красиво блестят. Имхо)
                                                                          0

                                                                          Ну угол значит или отдельную комнату в квартире или в офисе. Офисы снимать небольшой распределенной команде это такое, лишняя комната есть не всегда, балкон может летом выходить на солнечную сторону)


                                                                          Тариф дома и в колокейшене отличается, но не супер сильно. Так что всегда просто надо смотреть что есть доступное под рукой. На 1 — 2 боксах зимой все прекрасно стояло на балконе.


                                                                          Ещё в регионах у людей часто есть простаивающие гаражи.

                                                                            0

                                                                            Без комнаты с дверью более одного сервера начинает бесить своим шумом.

                                                                            +1
                                                                            Я по ценам датацентров знаю, проводил сравнение, и у меня железо в датацентре стоит. Эл-во в Питере — из того, что я смотрел — средняя цена 8000 за кВт в месяц, минимум 5500 в месяц (это 11 и 7,6 рубля за кВт*ч). Насчет организации в своем помещении у меня тоже была поначалу мысль, но в итоге решил: действительно, хорошо если «зачатки инфраструктуры» уже есть. Но если их нет, то самому строить/арендовать (а плюс к этому, содержать и оперативно реагировать на аварии) достаточно затратно. Ладно воздух и питание, но как насчет системы пожаротушения и охраны, например? :)

                                                                            Замените ее ежемесячным продуванием оборудования небольшим компрессором

                                                                            Была у меня когда-то майнинг-ферма, охлаждалась с помощью вентилятора прямо забортным воздухом из окна, а окно выходило на проспект. Покрылась в итоге липкой маслянистой грязью, которая не сдувалась, пришлось мыть спиртом :)

                                                                            Также пару раз наблюдал процедуру демонтажа отделки в помещении, при которой все окна открыты, и из них валят клубы пара и цементной пыли. Если такое вдруг полетит из соседнего помещения и попадет в вентиляцию, конец оборудованию.

                                                                            Исходя из этого, в своем помещении я поместил бы очистку воздуха, хотя бы грубым hepa-фильтром, в список приоритетов. Если уже есть настоящая вентиляция, то, наверное, фильтр приделать несложно.
                                                                              +1
                                                                              Если уже есть настоящая вентиляция, то, наверное, фильтр приделать несложно.
                                                                              Если есть вентиляция, а в ней есть вентилятор, то перед ним обязательно защитный фильтр. Проблема надумана, в том числе из-за агрессивного маркетинга хеп.
                                                                              Любая вентиляция это дырка с мотором, она становится дорогой и сложной когда нужно экономить на обогреве, но это не обсуждаемый случай.
                                                                                +1
                                                                                Да, совершенно верно. Мелкодисперсную пыль остановить сложно и дорого, но у нас не «чистое помещение» для науки, у нас колхозная серверная. Обычной москитной сетки достаточно чтобы задержать самые неприятные вещи- собственно насекомых, тополиный пух и прочие штуки с деревьев и капли косого дождя.

                                                                      Only users with full accounts can post comments. Log in, please.