Тренировка нейронной сети на ноутбуке с eGPU

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

Можно использовать два варианта:

  • Облачные сервера с GPU. Из наиболее распространенных бесплатных: Google Colab, Kaggle. Но там есть ограничение по времени тренировки сети и по аппаратным ресурсам. Скорее всего переподписка значительная, поэтому производительность может быть довольно низкой. Не раз сталкивался с просадкой скорости тренировки в несколько раз. Из платных относительного недорогие варианты GPU облачных серверов (хостингов): FloydHub, PaperSpace, ExoScale, Alibaba Cloud. Обзор на NVidia Тестирование Nvidia GPU. Добротное сравнение GPU хостингов.
  • Внешний eGPU корпус с видеокартой и ноутбук с портом Thunderbolt 3 (теоретическая производительность до 40 Gb/s, реальная скорее 5 Гб/с). Сравнение eGPU платформ здесь + производительная видеокарта (не Tesla, которая серверная), подобрать которую можно здесь. Собственно, под производительные «горячие» и длинные видеокарты основной вариант — Razer Core X, поддерживающий энергопотребление видеокарт до 500 Вт.

Естественно, в данном случае есть большие сомнения по поводу производительности eGPU, поскольку Thunderbolt интерфейс — узкое место по скорости.

Мне удалось найти лишь одно сравнение облачных GPU серверов на видеокартах Tesla K80 12 GB VRAM (спаренный GPU, суммарно 24 Gb) и eGPU с картой Nvidia GTX 1070Ti 8GB VRAM (через eGPU Sonnet Breakaway).

Честно говоря результаты довольно удивительные. Во всех тестах комбинация ноутбук + eGPU с не самой производительной картой Nvidia GTX 1070Ti выдавал почти вдвое выше скорость, нежели супермощные Tesla в облаке. Вероятнее всего ресурсы GPU сервер деляться между подписчиками сервиса, т.е. в эксклюзивное пользование видеокарта если и предоставляется, то на короткое время. Возможно пользователям отдается в пользование ограниченное число ядер GPU, поэтому есть просадка.

Сравнение производительности eGPU с облачным GPU сервером на CIFAR 10 (CNN)
Сравнение производительности eGPU с облачным GPU сервером на MNIST (CNN)
Сравнение производительности eGPU с облачным GPU сервером на PTB (LSTM)

Финансы

Сравним затраты на оба варианта реализации лаборатории для работы на ноутбуке:

НаименованиеeGPUFloydHub GPU
eGPU Razer Core X 300 USD
Nvidia GTX 1070Ti 8GB 430 uSD
GPU9 USD/мес * 12 мес = 108 USD/год
Сервер1.2 USD/час * 8 ч * 21 день = 201 USD/мес. * 12 мес = 2419 USD / год
Итого:730 USD / 3 года = 243 USD/год2527 USD/год

Получаем, что в случае eGPU единовременные затраты составят порядка 730 USD. При этом средний срок эксплуатации решения 3 года или 243 USD/год.

Получаем, что аренда GPU сервера обходится примерно в 10 раз дороже, чем приобретение eGPU + видеокарты. Это без учета в два раза меньшей производительности, скорее всего вызванной переподпиской ресурсов GPU.

Отмечу, что это весьма недорогой сервис по сдаче GPU в аренду. Если смотреть решения, например, от IBM, то там ежемесячная стоимость начинается от 1200 USD на виртуальном сервере. Но прим этом решении видеокарта наверняка предоставляется в эксклюзивное пользование.

Видеокарты с 8 Gb недостаточно для решения сложных задач deep learning. Новая Nvidia M6000 с 24 Gb VRAM будет стоить около 2350 USD. Совокупные затраты в этом случае вырастут примерно до 2650 USD единовременно и окупятся примерно через год, если сравнивать с арендой GPU сервера. В этом случае уже надо смотреть какие затраты предпочтительнее CAPEX в случае с пприобретением eGPU или OPEX при аренде облачных GPU.

Полезные ссылки

Spread the love
Запись опубликована в рубрике IT рецепты, IT решения для бизнеса. Добавьте в закладки постоянную ссылку.

Добавить комментарий