Сравнение Google TPUv2 и Nvidia V100 на ResNet-50 |
||||||||||||||||||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-04-30 13:07 Недавно Google добавила к списку облачных услуг Tensor Processing Unit v2 (TPUv2) — процессор, специально разработанный для ускорения глубокого обучения. Это второе поколение первого в мире общедоступного ускорителя глубокого обучения, который претендует на альтернативу графическим процессорам Nvidia. Недавно мы рассказывали о первых впечатлениях. Многие просили провести более детальное сравнение с графическими процессорами Nvidia V100. Объективно и осмысленно сравнить ускорители глубокого обучения — нетривиальная задача. Но из-за будущей важности этой категории продуктов и отсутствия подробных сравнений мы чувствовали необходимость провести самостоятельные тесты. Сюда входит и учёт мнений потенциально противоположных сторон. Вот почему мы связались с инженерами Google и Nvidia — и предложили им прокомментировать черновик этой статьи. Чтобы гарантировать отсутствие предвзятости, мы пригласили также независимых экспертов. Благодаря этому получилось, насколько нам известно, самое полное на сегодняшний день сравнение TPUv2 и V100.
Экспериментальная установка Ниже сравниваются четыре TPUv2 (которые образуют один Cloud TPU) с четырьмя Nvidia V100. У обоих полная память 64 ГБ, поэтому на них можно обучать одинаковые модели с одинаковым объёмом обучающей выборки. В экспериментах мы обучаем модели одинаково: четыре TPUv2 в Cloud TPU и четыре V100 выполняют задачу синхронного параллельного распределённого обучения. Тест пропускной способности Мы измерили пропускную способность по количеству изображений в секунду на синтетических данных, то есть с созданием данных для обучения на лету, при различных размерах выборки (batch size). Заметьте, что для TPU рекомендуется только размер выборки 1024, но по многочисленным просьбам читателей мы сообщаем и остальные результаты. Производительность (изображений в секунду) на различных размерах выборки на синтетических данных и без аугментации. Размеры выборки «глобальные», то есть 1024 означает размер 256 на каждом из чипов GPU/TPU на каждом шагеПри размере обучающей выборки 1024 практически отсутствует разница в пропускной способности! TPU лишь немного впереди с разницей около 2%. На меньших размерах обучающей выборки происходит падение пропускной способности на обеих платформах, а графические процессоры работают чуть лучше. Но как упоминалось выше, такие размеры обучающей выборки в настоящее время не рекомендуются для TPU. Следуя рекомендации Nvidia, мы провели эксперимент с GPU на MXNet. Использовалась реализация ResNet-50 в образе Docker (mxnet:18.03-py3), доступном в облаке Nvidia GPU Cloud. С размером обучающей выборки 768 (1024 слишком много) GPU обрабатывают около 3280 изображений в секунду. Это примерно на 3% быстрее, чем лучший результат для TPU. Но как упоминалось выше, реализация MXNet не очень хорошо сходится на нескольких GPU с таким размером обучающей выборки, поэтому здесь и ниже сосредоточимся на реализации TensorFlow. Стоимость в облаке Cloud TPU (четыре микросхемы TPUv2) в настоящее время доступен только в облаке Google. Он подключается по запросу к любому инстансу VM только когда требуются такие вычисления. Для V100 мы рассмотрели облачное решение от AWS (V100 ещё не доступны в облаке Google). Основываясь на результатах выше, мы можем нормализовать количество изображений в секунду за доллар для каждой платформы и провайдера.
С такими ценами Cloud TPU выходит явным победителем. Тем не менее, ситуация может выглядеть по-другому, если вы рассматриваете аренду на более длительный срок или покупку оборудования (хотя в данный момент такой вариант недоступен для Cloud TPU). Таблица вверху также включает цену зарезервированного инстанса p3.8xlarge на AWS при аренде на 12 месяцев (без предоплаты). Это значительно повышает производительность в расчёте на один доллар до 374 изображений/с на $1. Для GPU есть и другие интересные варианты. Например, Cirrascale предлагает ежемесячную аренду сервера с четырьмя V100 примерно за $7500 (около ~$10,3 в час). Но для прямого сравнения требуются дополнительные тесты, поскольку это оборудование отличается от оборудования на AWS (тип CPU, память, поддержка NVLink и т.д.). Точность и сходимость В дополнение к отчётам производительности мы хотели проверить, что вычисления на самом деле «осмысленны», то есть реализации сходятся к хорошим результатам. Поскольку сравнивались две разные реализации, можно ожидать некоторого отклонения. Поэтому наше сравнение — это не только показатель скорости оборудования, но и качества реализации. Например, реализация TPU предполагает очень ресурсоёмкие шаги предварительной обработки и фактически жертвует пропускной способностью. По информации Google, это ожидаемое поведение. Как увидим ниже, оно оправдано. Как показано выше, точность топ-1 после 90 эпох для реализации TPU на 0,7 п.п. лучше. Это может показаться незначительным, но добиться улучшения на этом очень высоком уровне чрезвычайно сложно. В зависимости от приложения такие небольшие улучшения могут значительно повлиять на результат. Давайте посмотрим на точность топ-1 в разных эпохах во время обучения моделей. Точность топ-1 на контрольном наборе для двух реализаций Резкие изменения в приведённом выше графике совпадают с изменениями в скорости обучения. Тенденция сходимости лучше в реализации TPU. Здесь финальная точность достигается 76,4% после 86 эпох. Реализация GPU отстаёт и достигает финальной точности 75,7% после 84 эпох, тогда как для достижения такой точности на TPU требуются лишь 64 эпохи. Вероятно, улучшение конвергенции TPU связано с лучшей предварительной обработкой и аугментацией данных, но для подтверждения этой гипотезы необходимы дополнительные эксперименты. Экономически выгодное решение на основе облачных цен В конечном счёте имеют значение время и стоимость, необходимые для достижения определённой точности. Если взять решение на уровне 75,7% (лучшая точность, достигнутая реализацией GPU), то можно рассчитать стоимость достижения этой точности на основе требуемых эпох и скорости обучения в изображениях в секунду. Это исключает время для оценки модели в промежутках между эпохами и время на запуск обучения. Цена для достижения точности топ-1 75,7%. *Зарезервирован на 12 месяцевКак показано выше, текущая ценовая политика Cloud TPU позволяет обучить модель с нуля до точности 75,7% по ImageNet менее чем за 9 часов за $55! Обучение до сходимости 76,4% стоит $73. Хотя V100 работают так же быстро, но более высокая цена и более медленная сходимость приводят к значительно более высокой стоимости решения. Опять же, обратите внимание, что сравнение зависит от качества реализации, а также от цены облака. Интересно было бы сравнить разницу в энергопотреблении. Но в настоящее время нет общедоступной информации о потреблении энергии TPUv2. Вывод Что касается базовой производительности на ResNet-50, то четыре чипа TPUv2 (один модуль Cloud TPU) и четыре графических процессора V100 в наших тестах одинаково быстры (разница в пределах 2%). Вероятно, за счёт будущих оптимизаций ПО (например, TensorFlow или CUDA) производительность улучшится, а соотношение изменится. Источник: habr.com Комментарии: |
|||||||||||||||||||||