URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 112442
[ Назад ]

Исходное сообщение
"Amazon открыл код компилятора NNVM для систем машинного обуч..."

Отправлено opennews , 08-Окт-17 13:04 
Компания Amazon представила (http://www.tvmlang.org/2017/10/06/nnvm-compiler-announcement...) компилятор NNVM (https://github.com/dmlc/nnvm), предназначенный для компиляции предоставляемых системами машинного обучения высокоуровневых графов вычислений в оптимизированный набор машинных кодов. Код проекта распространяется (https://github.com/dmlc/nnvm) под лицензией Apache 2.0.


Система поддерживает компиляцию моделей в форматах OpenML (https://www.openml.org/) (поддерживаются фреймворки Keras (https://keras.io/) и  Caffe (http://caffe.berkeleyvision.org/)), Apache MXNet (http://mxnet.io/) и недавно представленного (https://www.opennet.ru/opennews/art.shtml?num=47166) FaceBook и Microsoft открытого формата ONNX (Open Neural Network Exchange), при помощи которого могут передавать модели обучения из фреймворков  Caffe2 (https://www.opennet.ru/opennews/art.shtml?num=46406), PyTorch (http://pytorch.org/) и CNTK (https://www.opennet.ru/opennews/art.shtml?num=43756) (Cognitive Toolkit).  На выходе может генерироваться код для различных бэкендов, включая ядра для вычислений на стороне GPU при помощи CUDA, OpenCL и Metal, а также промежуточный код LLVM, на основе которого могут формироваться машинные инструкции для архитектур x86 и ARM или представление WebAssembly.

Компиляция включает в себя несколько стадий:

-  Формирование промежуточного представления графа вычислений на основе данных, полученных от  различных фреймворков машинного обучения.
-  Оптимизация полученного графа вычислений и выделение операторов с подпрограммами обработки данных в графе.
-  Компиляция операторов в исполняемые модули и развёртывание для различных аппаратных бэкендов с минимальными зависимостями. Для построения кода на основе промежуточного представления используется стек TVM (https://github.com/dmlc/tvm/), предоставляющий предметно ориентированный язык для обеспечения работы используемых в модели операторов при помощи набора базовых реализаций, оптимизированных для различных целевых аппаратных платформ, а также вычислительных примитивов, таких как многопоточность, кэширование и разбиение циклов на блоки (tiling).

Архитектура NNVM позволяет легко добавлять новые фронтэнды, операторы и оптимизации графа, без необходимости изменения базовых интерфейсов. Полученные после компиляции модули могут быть сгенерированы в виде кода на c++, python, javascript, java, objective-c для запуска на серверах, мобильных устройствах, встраиваемых системах и в web-браузере.

Проведение тестирования генерации кода для CPU ARM и GPU NVIDIA показало, что формируемый компилятором итоговый код превосходит по производительности фреймворк MXNet. Размер формируемого модуля зависит в основном от размера runtime TVM, который при сборки для Raspberry Pi  и мобильных устройств занимает около 300 Кб.

URL: https://aws.amazon.com/blogs/ai/introducing-nnvm-compiler-a-.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=47351


Содержание

Сообщения в этом обсуждении
"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Борщдрайвен бигдата , 08-Окт-17 13:04 
Помнится, аналитики высочайшего уровня в новости об ONNX истово доказывали, что спецификация формата обмена моделями нейросеток «нинужна», васянокод и вообще EEE.
А поди ж ты, амазон со своим тулкитом подключился.

"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Аноним , 08-Окт-17 21:24 
Аналитики с опеннета такие аналитики с опеннета

"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Аноним , 12-Окт-17 17:22 
Как же не нужна?! Без этого впаривать правильно натренированные нейросети не получится. А в чью пользу они будут натренированы - догадайся.

"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Vkni , 08-Окт-17 21:38 
Рабовладельцы таки что-то отдают в OSS, удивительно.

"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено НяшМяш , 08-Окт-17 21:46 
Не будешь холопов подкармливать - откуда рабы возьмутся?

"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Vkni , 09-Окт-17 01:23 
> Не будешь холопов подкармливать - откуда рабы возьмутся?

Ну Амазон - это известная галера. Даже для программистов, а что уж говорить про всяких складских людей.


"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено . , 09-Окт-17 03:24 
Что, не прошел интервью на программиста? Погоди ... ох ши ... даже на грузчика?! ... 8-о

"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Vkni , 09-Окт-17 04:48 
> Что, не прошел интервью на программиста? Погоди ... ох ши ... даже
> на грузчика?! ... 8-о

В том-то и дело, что прошёл как-то. До сих пор спамят.


"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено Аноним , 12-Окт-17 17:23 
> Ну Амазон - это известная галера. Даже для программистов, а что уж
> говорить про всяких складских людей.

А это не они галеру автоматизировали? Заменяя грузчиков на роботов и автоматику. Програмеров тоже заменили бы, но пока не получается.


"Amazon открыл код компилятора NNVM для систем машинного обуч..."
Отправлено J.L. , 09-Окт-17 14:48 
//offtop

> промежуточный код LLVM, на основе которого могут формироваться машинные инструкции для архитектур x86 и ARM или представление WebAssembly

это разве все существующие в LLVM бэкенды ? что ограничивает набор бэкендов только этими ?

> Оптимизация полученного графа вычислений и выделение операторов с подпрограммами обработки данных в графе.
> Компиляция операторов в исполняемые модули и развёртывание для различных аппаратных бэкендов с минимальными зависимостями. Для построения кода на основе промежуточного представления используется стек TVM

возможно ли без стояния в гамаке это использовать без NNVM, для "просто программы" ?