- PVSM.RU - https://www.pvsm.ru -

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

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

Как ускорить машинное обучение на GPU — представлена новая open source платформа - 1 [2]
/ фото Martin Brigden [3] CC [4]

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

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

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

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

Решение от Nvidia

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

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

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

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

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

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

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

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

Как ускорить машинное обучение на GPU — представлена новая open source платформа - 2
/ фото Sander van der Wel [15] CC [16]

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

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

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

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

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

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

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

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

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


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


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


Автор: ИТ-ГРАДовец

Источник [34]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/vy-sokaya-proizvoditel-nost/298675

Ссылки в тексте:

[1] представили: https://siliconangle.com/2018/10/10/nvidia-rides-rapids-accelerate-gpus-ai-training/

[2] Image: https://habr.com/company/it-grad/blog/429286/

[3] Martin Brigden: https://www.flickr.com/photos/noddymini/16647003774/

[4] CC: https://creativecommons.org/licenses/by/2.0/

[5] позволяет ускорить: https://www.nvidia.ru/object/cuda-parallel-computing-ru.html

[6] разрабатывают с её помощью движок нейронной сети: http://images.nvidia.com/content/pdf/ufl-and-unc-success-story.pdf

[7] из них написаны на языке Python: https://datascienceplus.com/top-python-libraries-for-machine-learning/

[8] переписывать: https://toster.ru/q/459083

[9] формате: https://medium.com/rapids-ai/announcing-ursa-labss-partnership-with-nvidia-7fde985138d

[10] репозитории GitHub Rapids: https://github.com/RAPIDSai

[11] cuDF: https://github.com/rapidsai/cudf-alpha

[12] cuML: https://github.com/rapidsai/cuml

[13] интегрируют: https://nvidianews.nvidia.com/news/nvidia-introduces-rapids-open-source-gpu-acceleration-platform-for-large-scale-data-analytics-and-machine-learning

[14] feature engineering: https://en.wikipedia.org/wiki/Feature_engineering

[15] Sander van der Wel: https://commons.wikimedia.org/wiki/File:Fast_train_(4712207733).jpg

[16] CC: https://creativecommons.org/licenses/by-sa/2.0

[17] есть мнение: https://www.guru3d.com/news-story/nvidia-introduces-rapids-open-source-gpu-acceleration-platform.html

[18] планирует: https://techcrunch.com/2018/10/10/nvidia-launches-rapids-to-help-bring-gpu-acceleration-to-data-analytics/

[19] доступна: https://www.oracle.com/corporate/pressrelease/oracle-nvidia-bring-cloud-101018.html

[20] помог усовершенствовать: http://www.alphr.com/artificial-intelligence/1010027/nvidia-machine-learning-gpus-rapids

[21] словам: https://twitter.com/NvidiaAI/status/1050536532115947524

[22] использует: https://www.bizjournals.com/sanjose/news/2018/03/29/nvidia-uber-self-driving-software-platform-nvda.html

[23] ROCm: https://github.com/RadeonOpenCompute/ROCm

[24] используется: https://rocm.github.io/languages.html

[25] поддерживает: https://overclockers.ru/itnews/show/80510/amd-predstavlyaet-novuju-versiju-programmnogo-obespecheniya-radeon-open-compute-rocm-samoj-universalnoj-platformy-s-otkrytym-ishodnym-kodom-dlya-vychislenij-na-graficheskih-processorah

[26] свертку тензора: https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%91%D1%80%D1%82%D0%BA%D0%B0_%D1%82%D0%B5%D0%BD%D0%B7%D0%BE%D1%80%D0%B0

[27] Как IaaS помогает развивать бизнес: три задачи, которые решит облако: https://iaas-blog.it-grad.ru/tendencii/kak-iaas-pomogaet-razvivat-biznes-tri-zadachi-kotorye-reshit-oblako/

[28] Эффект GDPR: как новый регламент повлиял на IT-экосистему: https://iaas-blog.it-grad.ru/bezopasnost/effekt-gdpr-kak-novyj-reglament-povliyal-na-it-ekosistemu/

[29] «Как дела у VMware»: обзор новых решений: https://iaas-blog.it-grad.ru/novosti/kak-dela-u-vmware-obzor-novyx-reshenij/

[30] Telegram-канале: https://t.me/iaasblog

[31] NetApp от А до Я: обзор технологий вендора: https://t.me/iaasblog/174

[32] Почему хороший IaaS-провайдер не строит свой ЦОД: https://t.me/iaasblog/173

[33] Что еще есть у VMware: инструменты виртуализации: https://t.me/iaasblog/172

[34] Источник: https://habr.com/post/429286/?utm_source=habrahabr&utm_medium=rss&utm_campaign=429286