LINUX.ORG.RU

Супер-компьютер для ML

 ,


0

2

Есть задача собрать супер-компьютер для ML. Практически без ограничения на бюджет. Деньги не мои, и я пока не знаю, на какой сумме скажут что слишком, пока не говорят.

Предположительно будут гоняться сетки на питоне, там кажется была библиотека для параллелизации этих сеток DataParallel, вроде не сложная в применении. Пока без графики, но в будущем может и этого коснется.

На текущий момент, что я предполагаю, это закупиться RTX 4090 пять штучек, или может больше если найду подходящуюю материнку.

Или может лучше NVIDIA A100? И чем лучше, кроме того, что там 40Гб? Согласно техническим характеристикам, у A100 «Memory bus width» в размере 4096, в то время как у Rtx4090 всего 384. Но процессоров меньше и частота меньше. Но стоит почему то в 3-4 раза больше. На что влияет эта МемориБасВидх?

Будет ли на такую конфигурацию хорошо параллелиться этот DataParallel?

Является ли это оптимальным вариантом, и не будет ли каких либо затыков с этим. Или может это вообще не так делается?



Последнее исправление: victor79 (всего исправлений: 1)

Насколько я знаю у суперЭВМ обычно не видеокарты, а множество ЦП.

Если бюджет не ограничен, то я бы делал на «Эльбрусах», так как больше нигде такую крутую технику не увидеть.

Кстати, перемножение матриц для него самое то должно быть.

zx_gamer ★★★
()
Последнее исправление: zx_gamer (всего исправлений: 1)

«предположительно», «кажется». Прекрасное ТЗ. Ну «суперкомпьютер» это не тазик из ДНС набитый видюхами. Или «неограниченный бюджет» это примерно 5 нулей в рублях?

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

mgdz
()
Ответ на: комментарий от mgdz

Может ребятам cuda совсем не нужна

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

Была задача - посчитать. Что именно, сказать не могу. Сначала сделал предварительный вариант для cpu. Там считало, но очень печальненько. Купили RTX 4090, стало считаться повеселей. Понаблюдал я это и пооптимизировал на что соображалки хватило. В результате теперь руководство сказало, что хоть десяток таких 4090 купим. Но я их опечалил, что десяток в один компьютер не поставить.

И вот теперь размышляю, какую конфигурацию все же можно собрать.

Видел еще упоминание, что на одну обычную материнку вообще больше двух не поставить.

victor79
() автор топика
Ответ на: комментарий от victor79

десяток в один компьютер не поставить.

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

МемориБасВидх (Ширина шины памяти, в моем мире) влияет на скорость чтения-записи в эту самую память. Объем памяти влияет на то, сколько данных в эту самую память можно положить, и соответственно на размер Вашей модели. тут, как правило, работает очень простое правило: больше - лучше, но Вам, как автору кода, очевидно виднее, сколько памяти нужно сейчас, и куда оно в ближайшем будущем может дорасти по требованиям.

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

mgdz
()
Последнее исправление: mgdz (всего исправлений: 1)
Ответ на: комментарий от victor79

десяток в один компьютер не поставить

Ну 10х4090 действительно воткнуть проблематично, а вот H100 - вполне!
https://www.supermicro.com/en/products/system/GPU/5U/SYS-521GE-TNRT
Правда, конечно надо определиться, на чём выгоднее считать. Если требования к памяти не велики, 4090 может и выгоднее оказаться.

GAMer ★★★★★
()
Ответ на: комментарий от victor79
  1. Вначале определись где это все будет стоять и как охлаждаться. Генерация тепла там будет весьма значительна. А значит еще и шумно. Причем охлад это важно, если не будет хорошего отвода тепла, то ты из мощных видях ничего не выжмешь.

  2. ML это не только CUDA, но и много чего на проце гонять, соотв. нужен еще хороший проц и куча оперативы.

  3. Данные должны быстро подгружаться, соотв. нужны хорошие диски.

  4. Сырые данны и базы нужно где-то хранить, соотв. нужно еще место под бекапы, на HDD, а они чувствительны к температуре, соотв. их нужно вынести подальше от расчетных узлов.

В конечном счете видяхи тебе будут стоить меньше половины всей системы.

PS: Строй систему от проца EPYC на 128+ потоков. У него 128 pci-e линий – можно много видях подключить, 8-канальная память и т.д.

soomrack ★★★★★
()

вот, кстати, для ТСа толковый гайд как отправная точка, чтобы не будоражить публику всякими «суперкомпутерами за неограниченный бюджет»
https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/

z0idator
()
Последнее исправление: z0idator (всего исправлений: 1)

Является ли это оптимальным вариантом, и не будет ли каких либо затыков с этим. Или может это вообще не так делается?

Можно попробовать использовать «гугловый» ускоритель.

Насколько я понимаю, для работы нейронных сетей требуются множественные умножения со сложениями целых чисел в единицу времени. Про «Эльбрусы» тут верно уже сказали, что их внутреннее устройство задумано под эти множественные умножения и сложения целых чисел. В связке с «гугловыми» ускорителями может получиться что-то новенькое.

Enthusiast ★★★
()

Надо сначала понять сколько видеопамяти, оперативной памяти и виртуальной памяти (вручную выделенной в файл memory map) требуется. От этого уже плясать нужны ли RDMA, InfiniBand, nvidia-peermem.

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 3)