Comments 5
Для обучения AI важна пропускная способность pcie шины или данные единоразово загружаются в память GPU и обрабатываются уже там?
Здравствуйте!
В любом случае видеокарта подключается к материнской плате через шину. Поэтому на начальном этапе данные и модель будут «проходить» через PCI Express. В этом смысле AI зависит от пропускной способности шины.
Дальше все будет зависеть от того, насколько грамотно настроен процесс обучения.
Если необходимо реализовать схему распределенного обучения, можно обратиться к NVLink или NVSwitch.
В современных реалиях данных очень много и они не влезут в память видеокарты (представьте какое-нибудь обучение на видео, к примеру вождение машины). Поэтому обучение идет мини-порциями (mini batch), как правило скорости шины вполне хватает (время работы нейросети намного больше времени передачи данных), и только на крошечных нейросетях мы увидим, что GPU почти простаивает. Хотя я тут на Хабре читал, что и для нормальных нейросетей могут быть проблемы (отследили по аномально низкой температуре GPU).
>данных очень много и они не влезут в память видеокарты
Поэтому мне и интересно имеет смысл строить кластер из GPU на дешевых мат. платах не покупая тредриперы с дорогой обвязкой. В том числе есть майнинговые мат. платы с 12 и больше слотами pcie x1
Я бы, видимо, начал с бюджетного варианта, описанного тут https://habr.com/ru/company/yandex/blog/574466/ т.е. создание максимально децентрализованной отказоустойчивой системы (понятно, что КПД не будет 100%).
В ходе разработки pytorch я наталкивался на упоминания, что вроде можно тензоры загонять асинхронно в память GPU. Т.е. загнали маленький минибатч, запустили обучение и тут же загоняем второй минибатч не дожидаясь окончания обучения (но сам не делал, т.к. видеопамяти у меня катастрофически мало). И в этом случае узким местом вполне может стать CPU.
PCIe 1.x x1 (это самая младшая версия) в теории может прогонять 600 картинок/сек (320x320 RGB пикселей). SSD диски на ней показывают скорости порядка 200 МБ/сек. PCIe 2.0 — вдвое быстрее.
ML в Managed Kubernetes: для каких задач нужен кластер с GPU