Хабрахабр

Как ускорить машинное обучение на GPU — представлена новая open source платформа

Nvidia представили open source платформу Rapids, задача которой ускорить работу алгоритмов машинного обучения на GPU. Рассказываем об особенностях инструмента и его аналогах.


/ фото Martin Brigden CC

Проблема обучения нейросетей

В списке технологий компании Nvidia есть архитектура параллельных вычислений CUDA. Её цель — ускорить проведение вычислений за счет передачи части задач GPU вместо CPU. В некоторых случаях это позволяет ускорить работу приложений и алгоритмов в 18 раз.

Например, исследователи из университетов Флориды и Северной Каролины разрабатывают с её помощью движок нейронной сети для квантовых симуляций. По этой причине она нашла широкое применение в сфере машинного обучения.

Многие из них написаны на языке Python. Для разработки алгоритмов МО используется большое количество различных библиотек. В качестве примера таких инструментов можно привести Python-библиотеки для машинного обучения scikit-learn и pandas. Но не все они поддерживают работу с CUDA. При этом код некоторых компонентов приходится переписывать вручную, что бывает сложно, так как нужно знать особенности программирования для GPU. Чтобы запустить Python-код в архитектуре CUDA, исследователи используют отдельные библиотеки Numba или PyCUDA.

Решение от Nvidia

С целью автоматизировать перенос кода, компания Nvidia представила новую открытую платформу Rapids. Разработчикам не нужно прибегать к разным библиотекам: они просто пишут код на Python, а Rapids автоматически оптимизирует его для запуска на GPU.

Данные хранятся в формате Apache Arrow, едином для всех инструментов платформы. Для сопоставления процессов Rapids использует общую базу данных, которая лежит в памяти GPU. Это решение помогает ускорить процесс машинного обучения в 50 раз по сравнению с системами, в которых используются и графические, и центральные процессоры.

При этом на платформе Rapids доступны инструменты, с помощью которых на графическом чипе можно провести весь процесс работы с нейронными сетями: от подготовки данных до вывода результата.

Например, там есть библиотека cuDF для подготовки данных и тренировки нейронной сети, и библиотека cuML позволяет разрабатывать алгоритмы машинного обучения, не вдаваясь в подробности программирования для CUDA. Количество решений в репозитории GitHub Rapids активно пополняется.

Создатели проекта планируют добавить в Rapids инструменты для визуализации данных, анализа графов и глубокого обучения. Nvidia продолжит развивать платформу. Также в программу интегрируют фреймворк Apache Spark.

Что думают о платформе

В технологическом сообществе поддержали релиз Rapids, но её дальнейшее развитие вызвало несколько вопросов у экспертов и пользователей.

Генеральный директор Anaconda Скотт Коллисон (Scott Collison) сказал, что Rapids упростит сбор и подготовку данных для обучения сложных систем ИИ. Например, в поддержку нового решения высказались менеджеры Cisco, Dell, NetApp, Lenovo и других компаний. По его словам, Rapids приведет к росту производительности в задачах, связанных с созданием признаков (feature engineering). С ним согласен создатель Apache Arrow и pandas Уэс Маккинни (Wes McKinney).


/ фото Sander van der Wel CC

Система работает только с картами Nvidia, и выпуск платформы может быть маркетинговым ходом, чтобы привлечь новых клиентов. Однако в сообществе также есть мнение, что Rapids нельзя считать действительно open source проектом. Компания пока не уточняла, будет ли платформа работать с устройствами других производителей.

Кто уже использует Rapids

IBM планирует внедрить платформу в сервисы для работы с системами искусственного интеллекта: PowerAI, Watson и в IBM Cloud. О поддержке Rapids объявила и Oracle — платформа доступна на инфраструктуре Oracle Cloud.

Первой Rapids помог усовершенствовать алгоритмы системы, отвечающей за управление товарными запасами. Новый продукт Nvidia также протестировали Walmart и Uber. Что касается Uber, то компания использует Rapids в разработке систем беспилотных автомобилей. По словам представителей ритейлера, Rapids ускорил развертку алгоритмов машинного обучения.

Альтернативное решение

Не только Nvidia разрабатывает платформу для ускорения МО. Например, компания AMD занимается проектом ROCm (Radeon Open Compute). Это открытая платформа для высокопроизводительных вычислений на GPU.

В том числе c картами Nvidia. Особенность ROCm состоит в том, что она не зависит от языка программирования и способна работать практически с любой видеокартой. Он упрощает преобразование приложений CUDA в портируемый код на С++. Для этого используется специальный диалект C++, который называется HIP. Код конвертируется автоматически специальной системой Hipify.

Среди них можно выделить BLAS, FFT и свертку тензора. При этом ROCm поддерживает большое количество библиотек Math Acceleration Libraries.

Эксперты ИТ-индустрии отмечают, что решения с открытым исходным кодом для акселерации гетерогенных и GPU-вычислений, подобные ROCm и Rapids, дают разработчикам возможность эффективнее использовать вычислительные ресурсы и получать большую производительность от имеющегося в распоряжении железа.

P.S. Несколько материалов из Первого блога о корпоративном IaaS:

P.P.S. Кратко об IaaS-технологиях — в нашем Telegram-канале:

Показать больше

Похожие публикации

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»