ОБНОВЛЕНИЕ (12.12.20): RTX 2080Ti по-прежнему быстрее для больших наборов данных и моделей!

Двумя наиболее популярными фреймворками глубокого обучения являются TensorFlow и PyTorch. Оба они поддерживают ускорение NVIDIA GPU с помощью набора инструментов CUDA. Поскольку Apple не поддерживает графические процессоры NVIDIA, до сих пор пользователям Apple оставалось машинное обучение (ML) только на ЦП, что заметно ограничивало скорость обучения моделей машинного обучения.

С компьютерами Mac, работающими на новом чипе M1, и фреймворком ML Compute, доступным в macOS Big Sur, нейронные сети теперь можно обучать прямо на Mac, что значительно повысило производительность.

Согласно недавнему блогу Apple:

«Новый форк tenorflow_macos для TensorFlow 2.4 использует ML Compute, чтобы позволить библиотекам машинного обучения в полной мере использовать не только ЦП, но и ГП на компьютерах Mac с процессором M1 и Intel для значительного повышения производительности обучения. Это начинается с применения оптимизаций более высокого уровня, таких как объединение слоев, выбор соответствующего типа устройства, компиляция и выполнение графа как примитивов, которые ускоряются BNNS на ЦП и шейдерами Metal Performance на графическом процессоре ».

Поскольку на прошлой неделе я получил новый M1 Mac Mini, я решил попробовать один из моих сценариев TensorFlow с использованием новой платформы Apple. Я установил tenorflow_macos на Mac Mini в соответствии с инструкциями сайта Apple GitHub и использовал следующий код для классификации элементов из набора данных fashion-MNIST.

Сначала я запустил сценарий на своей машине Linux с процессором Intel® Core ™ i7–9700K, 32 ГБ ОЗУ, 1 ТБ быстрого SSD-накопителя и видеокартой Nvidia RTX 2080Ti.

На обучение и тестирование ушло 7,78 секунды.

Затем я запустил сценарий на своем новом Mac Mini с чипом M1, 8 ГБ унифицированной памяти и 512 ГБ быстрого хранилища SSD. Новый чип Apple M1 содержит 8 ядер ЦП, 8 ядер графического процессора и 16 ядер нейронного ядра.

Обучение и тестирование заняли 6,70 секунды, что на 14% быстрее, чем у моего графического процессора RTX 2080Ti! Я был удивлен.

Производительность чипа Apple M1 вместе с платформой Apple ML Compute и вилкой tensorflow_macos TensorFlow 2.4 (TensorFlow r2.4rc0) впечатляет. На данный момент для компьютеров Mac M1 недоступны следующие пакеты: SciPy и зависимые пакеты, а также серверные / клиентские пакеты TensorBoard. Надеюсь, скоро будет доступно больше пакетов. Добавление поддержки PyTorch было бы в моем списке на первом месте.

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

ОБНОВЛЕНИЕ (12/12/20): RTX2080Ti все еще быстрее для больших наборов данных и моделей!

Большое спасибо всем, кто прочитал мою статью и предоставил ценные отзывы. Особая благодарность Дэмиену Далла-Розе за предложение набора данных CIFAR10 и модели ResNet50 и Джошуа Коху за предложение perf_counter для более точного измерения времени. Вот новый код с большим набором данных и большей моделью, которую я запускал на M1 и RTX 2080Ti:

Сначала я запустил новый код на своей машине Linux RTX 2080Ti.

На обучение и тестирование ушло 418,73 секунды. Я тренировал его всего 10 эпох, так что точность невелика. Загрузка графического процессора колеблется от 65 до 75%.

Затем я запустил новый код на M1 Mac Mini.

На более крупной модели с большим набором данных M1 Mac Mini занял 2286,16 секунды. Более чем в пять раз дольше, чем машина Linux с графическим процессором Nvidia RTX 2080Ti! Согласно монитору активности Mac, загрузка ЦП была минимальной, а графический процессор вообще не использовался.

Поскольку M1 TensorFlow находится только в альфа-версии, я надеюсь, что в будущих версиях будут использоваться преимущества ядер GPU и Neural Engine для ускорения обучения машинному обучению. Время покажет.

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

Спасибо, что нашли время прочитать этот пост.

Эндрю

@tampapath