Intel представил nGraph, компилятор для систем машинного обучения
22 марта 2018 года
Компания Intel опубликовала наработки проекта nGraph, в рамках которого развивается открытый компилятор, набор библиотек и runtime для компиляции в исполняемый код моделей глубинного машинного обучения, подготовленных при помощи различных фреймворков. Код проекта написан на языке С++ и распространяется под лицензией Apache 2.0.
nGraph позволяет экспериментировать и создавать прототипы систем машинного обучения не привязываясь к конкретному фреймворку и не заботясь о том, как адаптировать подготовленные модели нейронной сети к тренировке и эффективному выполнению на различных классах устройств. В настоящее время в nGraph реализована прямая поддержка компиляции моделей, подготовленных для фреймворков TensorFlow, Apache MXNet и Neon (Intel Nervana), а также косвенная поддержка моделей Caffe2, PyTorch и CNTK (Cognitive Toolkit), которая обеспечивается через промежуточное преобразование в универсальный формат ONNX (Open Neural Network Exchange).
На выходе может формироваться оптимизированный машинный код, готовый для исполнения на системах на основе архитектуры Intel (x86, Intel Xeon, Xeon Phi), на GPU (NVIDIA CUDA) и на специализированных процессорах Intel NNP (Nervana Neural Network Processor). В ближайшее время ожидается поддержка FPGA и чипов Movidius. nGraph пытается избавить разработчиков от необходимости выполнения трудоёмких задач по оптимизации модели для конкретного типа устройств, ограничивающих область применения и усложняющих портирование на новые устройства.
Предоставляемое в nGraph промежуточное представление графа вычислений (nGraph IR) абстрагирует детали реализации конкретных устройств и даёт возможность разработчику сосредоточится на научной работе, алгоритмах и моделях, не заботясь о формировании оптимального машинного кода. Каждый узел или операция в данном графе представляют один шаг вычислений, который производит на выходе ноль или несколько тензоров (многомерные массивы данных) на основе нуля или более тензоров на входе.
Каждая операция nGraph IR является сборочным блоком, из которых можно скомпоновать более сложные операции, предоставляемые различными фреймворками машинного обучения. Для каждого фреймворка подготовлена обвязка, которая транслирует модели со специфичными операторами в унифицированное промежуточное представление nGraph. При формировании машинного кода абстрактная функциональность устройств преобразуется в комбинацию общих и специфичных для конкретных устройств преобразований над графом.
По сравнению со штатными компиляторами MKLDNN (MXNet) и TensorFlow XLA, в nGraph задействованы дополнительные оптимизации для процессоров Intel и других целевых платформ. Например, при тестировании производительности тренировки модели на системе с CPU Intel Xeon Platinum 8180, прирост производительности в отдельных тестах достигает 30% по сравнению с MKLDNN и 40% по сравнению с TensorFlow XLA.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.