Обновить

Как разбить GPU на несколько частей и поделиться с коллегами: практическое пособие по работе с MIG

Время на прочтение13 мин
Охват и читатели18K
Всего голосов 46: ↑46 и ↓0+46
Комментарии11

Комментарии 11

А можно наоборот: как объединить несколько GTX 1050 Ti
Или это разорит nvidia?)

Вы можете посмотреть, как это имплементировано в tensorflow https://www.tensorflow.org/guide/gpu?hl=ru#using_multiple_gpus

Но кстати мы пытались таким образом запустить модель на нескольких партициях MIG и получили отрицательный результат. Вот ссылка на источник
https://forums.developer.nvidia.com/t/docker-doesnt-detect-mig-gpu-devices/201921/2

компании знают о шеринге GPU как о технологии, но пока не применяют ее.

работает на ограниченном количество видеокарт — A100 и A30;

Хм, интересно, почему же?

А если серьёзно, то ещё интереснее было бы попробовать тренировать небольшие сетки используя 7 "кусочков" одной большой карты как 7 разных карт. Когда-то давно я пробовал что-то такое делать, но это не работало, так как в документации был такой пассаж:

There is no GPU-to-GPU P2P (both PCIe and NVLINK) support in MIG mode, so MIG mode does not support multi-GPU or multi-node training. For large models or models trained with a large batch size, the models may fully utilize a single GPU or even be scaled to multi-GPUs or multi-nodes. In these cases, we still recommend using a full GPU or multi-GPUs, even multi-nodes, to minimize total training time.

А сейчас такая поддержка появилась?

Как раз ответил выше в комментарии, что обучать модельку на нескольких партициях MIG не получится. Вот на форуме представители от nvidia обозначают (но не раскрывают) проблему https://forums.developer.nvidia.com/t/docker-doesnt-detect-mig-gpu-devices/201921/2

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

Например в кубернетесе поды при атаче GPU смотрят на лейбл nvidia.com/gpu, который нельзя обозначить не целым числом (то есть нельзя написать что хочу 0.5 GPU). Соответственно инстанс какого-нибудь jupyterlab заберет себе целую видеокарту, остальным инженером придется ждать либо вам покупать на каждого свою GPU)))

MIG и Timeslicing например решают эту проблему. MIG на уровне железа, обезпечивая защиту по памяти, Timeslicing - по сути просто обманка кубера, чтобы из nvidia.com/gpu=1 можно было сделать nvidia.com/gpu=N, где N любое число

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

Думаю если 5 инженеров в команде проблем не будет. Но и в такой команде А100 врятли используют)

В командах 20-30+ договориться сложнее, соответственно могут создаваться очереди.

Плюс все еще есть кейс, рассмотренный в статье - запуск сразу нескольких инференсов на одной видеокарте. Тут стоит рассматривать конкретные проблемы конкретной организации.

Когда смотрел последние две конференции (от билайна и от яндекса по куберу), заметил что вопросом по разделению GPU интересуются, но обзор конкретных технологий откидывают пока что в беклог. Возможно действительно пока такой проблемы и не стоит, но думаю в дальнейшем с ростом команд по ML точно появится) Тем более карты все сложнее достать...

Кстати, а есть инсайды, на рынке карты поколения Ada появятся?

В общем и целом могу сказать, что на рынке запросы есть и даже что-то в наличии.

Но чисто дома побаловаться еще можно будет не скоро(

А не дома?

К сожалению не владею информацией о конкретных поставщиках(

Из графика видно, что при запуске одной реплики инференса пропускная способность на A100 будет ниже, чем на T4 и V100.

Вот это основной нюанс. 7 штук Т4 в GCP стоит практически столько же или даже дешевле чем одна A100, а на большинстве задач дают значительно лучший перформанс и более простой и гибкий сетап чем A100 разделенная на 7 частей.

Поэтому технология интересная, но практическое применение несколько ограниченное, по моим впечатлениям. Но при этом не сомневаюсь что есть случаи когда это актуально.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
slc.tl
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
Александр Шилов