Мир, дружба, oneAPI: открытая платформа Intel упростит разработку для чипов AMD, ARM, NVIDIA, POWER и FPGA

01.10.2020 - Просмотров: 93

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

Архитектура Intel oneAPI

По мере того, как вычислительные и ИТ-технологии проникают во все сферы жизни, рождаются новые виды нагрузок. Например, в последнее время очень популярной стала поддержка целочисленных форматов, таких как INT8 для задач машинного обучения, где точность, достигаемая в формате FP64, может быть принесена в жертву скорости и эффективности. Процессоры "подвешивают" все новые инструкции, появляются совершенно новые классы вычислительных устройств — и над всеми ними встает вопрос о том, как эффективно писать программное обеспечение.

Многие видят ответ в создании унифицированных слоев, как, например, недавно упомянутый VMware с ее проектом Monterey. Аналогичная точка зрения у Intel есть и у ее проекта OneAPI. Эта разработка представляет собой унифицированную и открытую программную платформу, позволяющую абстрагироваться от аппаратной архитектуры устройств и писать код, использующий все доступные вычислительные ресурсы, будь то CPU, GPU, DPU или другие. Основой OneAPI является язык DPC++, который в свою очередь основан на стандартах C++ и Kronos SYCL.

Один API для управления всеми (видами вычислений)

Впервые мир узнал об одном API в конце 2018 года, и сегодня проект достиг важной вехи: компания официально объявила о выпуске одного API 1.0. Проект, как уже упоминалось выше, имеет открытые спецификации, которые можно найти в соответствующем разделе сайта, посвящённом oneAPI; новинка имеет собственный репозиторий на GitHub. OneAPI включает в себя базовые библиотеки, компилятор DPC++ на основе LLVM/Clang, ряд библиотек производительности Intel, а также инструменты анализа и отладки кода.

Также важно, что проект включает инструмент миграции кода CUDA — так все программные богатства, накопленные для педалей газа NVIDIA, могут быть доступны для других платформ. Особо следует отметить богатство библиотек для создания приложений с использованием машинного обучения и аналитики: oneDNNL, одна библиотека обработки видео и другие. Также можно попробовать oneAPI в специальной облачной "песочнице", развернутой Intel специально для разработчиков, заинтересованных в новых методах разработки ПО.

Поскольку и сама платформа, и лежащая в ее основе LLVM-инфраструктура открыты, относительно легко расширить возможности OneAPI, что и делает ряд организаций. Например, Codeplay работает на совместимости с NVIDIA, URZ занят добавлением расширений DPC++ в проект hipSYCL, который работает с любым CPU (OpenMP), NVIDIA GPU (CUDA) и AMD Radeon (HIPC/ROCm). А некоторые однобиблиотеки от самой Intel уже имеют поддержку ARM и POWER. Для своих собственных FPGA у Intel также есть опыт, но Xilinx, похоже, пока за бортом. Последний, однако, имеет свое собственное видение процесса разработки.

Источник:

Читайте также