Intel one api что это

Обновлено: 06.07.2024


На проходившем в июне Intel Software Technology Day ведущие инженеры компании рассказали о софтверном проекте под названием «Intel oneAPI» — унифицированной модели программирования для облегчения разработки ПО под разнообразные вычислительные архитектуры, включающей в себя новый язык программирования. В этом посте мы приведем краткое описание данного проекта — как говорится, to be continued…

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

Билл Сэвэдж, вице-президент Intel, генеральный директор подразделения Compute Performance Developer Products

Как мы замечаем, задачи, которыми мы нагружаем доступные нам вычислительные мощности, становятся более разнообразными — так же как и архитектуры этих самых мощностей, разделяющиеся на Скалярные (CPU), Векторные (GPU), Матричные (AI accelerators) и Пространственные (FPGA). Весь этот комплекс архитектур, называемый в Intel СВМП (SVMS), требует эффективную модель программирования для получения максимальной производительности. Задача oneAPI — обеспечить простоту использования и эффективность, избавляя от необходимости вести архитектуро-зависимые варианты кода, использовать для них разные языки программирования и средства разработки.

Примером того, как Intel уже сейчас реализует кросс-платформенность разработки, является Intel OpenVINO — набор средств для разработчика ПО, обеспечивающий последовательный, оптимизированный процесс инференса для deep learning алгоритмов на базе любых СВМП архитектур Intel.

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

  • Прямое программирование. oneAPI содержит новый язык программирования Data Parallel C++ (DPC++) — открытую, всеобъемлющую альтернативу проприетарным языкам под конкретные архитектуры. DPC++ обеспечивает удобство и производительность, используя привычную для разработчиков модель программирования. DPC++ создан на базе C++, включает в себя SYCL от The Khronos Group, а также расширения, разработанные в открытом сообществе.
  • API программирование. Библиотеки oneAPI позволяют развернуть несколько доменов нагрузки, для которых возможно провести оптимизацию. Функции библиотек кастомизированы под конкретные архитектуры.

Бета-версия oneAPI для разработчиков, а также дополнительные детали, его касающиеся, будут доступны в конце 2019 года.


8 декабря 2020 года состоялся официальный выпуск (gold release) набора средств для разработки софта под различные архитектуры Intel oneAPI toolkit. Это событие не попало на ленты информагентств, и даже мы в блоге, увы, его пропустили. Между тем, оно важно для огромной армии программистов по всему миру. Intel oneAPI — это новая ипостась хорошо известных многим из вас Intel Parallel Studio XE и Intel System Studio с новыми компонентами. Да, Студии Intel теперь называются oneAPI toolkit, и об этом стоит поговорить.

Если говорить самыми общими словами, то цель oneAPI toolkit — обеспечить максимальную производительность кода в гетерогенной среде исполнения. Ключевое слово здесь — гетерогенная среда, включающая в себя CPU, GPU, FPGA и разнообразные акселераторы. Сразу ответим на вопрос, почему именно oneAPI, ведь кроме библиотек для API-программирования в наборе есть куча других инструментов? oneAPI можно перевести также как «один подход» к различным архитектурам, что является ключевой концепцией продукта. При этом функциональное разделение внутри семейства oneAPI, конечно, имеется.


Всего предлагается 4 разновидности Intel oneAPI. Intel oneAPI Base Toolkit — набор общих средств для разработки, включенный далее во все остальные варианты. В Intel oneAPI Base and HPC Toolkit добавлены инструменты для создания HPC-приложений, в частности, средства кластеризации — это наследник Intel Parallel Studio XE. Intel oneAPI Base and IoT Toolkit, как следует из названия, предназначен создателям интернета вещей и прочих интеллектуальных устройств, многие из которых ранее пользовались в своей работе Intel System Studio. Наконец, Intel oneAPI Base and Rendering Toolkit, помимо базового компонента, вобрало в себя библиотеки и средства визуализации и рендеринга.

Рассмотрим теперь каждый продукт по отдельности.

Intel oneAPI Base Toolkit

Intel oneAPI Base Toolkit — это базовый набор средств и библиотек для создания и развертывания высокопроизводительных приложений на различных архитектурах.


  • Компилятор Intel oneAPI DPC++/C++ — кросс-архитектурный компилятор, поддерживающий Data Parallel C++, C++, C, SYCL и OpenMP.
  • Intel DPC++ Compatibility Tool — средство для миграции исходного кода CUDA на DPC++.
  • Intel oneAPI DPC++ Library — библиотека ключевых алгоритмов и функций для параллельной обработки данных.
  • Intel oneAPI Math Kernel Library — библиотека с математическими вычислительными функциями, включающими алгебру матриц, быстрые преобразования Фурье и векторную математику.
  • Intel oneAPI Data Analytics Library — библиотека для повышения производительности машинного обучения и анализа данных.
  • oneAPI Threading Building Blocks — шаблоны библиотек параллелизации и управления памятью.
  • oneAPI Video Processing Library — библиотека для ускорения кодирования, декодирования, транскодирования и обработки в реальном времени трансляций, видеопотоков, видео по запросу, облачных игр и т.д. (потомок Intel Media SDK)
  • Intel Advisor — средство для эффективной векторизации, параллелизации и оффлоада на ускорители.
  • Intel Distribution for Python — инструмент для использования библиотек oneMKL, oneDAL, oneTBB и других «one» компонент из кода Python приложений.
  • Intel DPC++ Compatibility Tool — средство для миграции исходного кода CUDA на мультиплатформенный код DPC++.
  • Intel Integrated Performance Primitives — функции для повышения производительности обработки изображений и сигналов, сжатия данных, криптографии и т.д.
  • Intel VTune Profiler — профилировщик для поиска и исправления узких мест в производительности на CPU, GPU и FPGA системах.
  • Intel-Enhanced GDB — средство глубокой отладки кода для DPC++, C, C++ и Fortran.
  • Intel FPGA Add-On for oneAPI Base Toolkit (опционально) — инструмент программирования настраиваемых аппаратных акселераторов для ускорения специализированных нагрузок.
  • Intel oneAPI Deep Neural Network Library — средство разработки быстрых нейронных сетей на CPU и GPU Intel с помощью оптимизированных по производительности функциональных блоков.
  • Intel oneAPI Collective Communications Library — оптимизированные коммуникационные шаблоны для распределения задач глубокого обучения и машинного обучения по нескольким узлам.

Intel oneAPI Base and HPC Toolkit

Intel oneAPI Base and IoT Toolkit

Intel oneAPI Base and IoT Toolkit – это всеобъемлющий набор средств разработки, собранный для мастеров, создающих быстрые и эффективные устройства интернета вещей.


  • Средства подключения IoT для сопряжения датчиков с устройством и устройств с облаком.
  • Средства сборки ядер Linux для Yocto Project.
  • IDE Eclipse.

Intel oneAPI Base and Rendering

Intel oneAPI Base and Rendering — набор средств, предназначенных разработчикам приложений для создания цифрового контента, профессионального рендеринга, анимации, научной визуализации, компьютерного дизайна, архитектурного инжиниринга, игровой виртуальной и дополненной реальности.



Области применения Intel oneAPI Base and Rendering

Всего каких-то пять лет назад компания Intel была горда тем, что могла предложить единую и традиционную для отрасли модель программирования на базе x86-совместмых инструкций. Эта модель охватывала мобильные системы на SoC Atom, ускорители расчётов Xeon Phi (условно графическая архитектура ― в девичестве Larrabee) и процессоры. Сегодня тезис «x86 ― это наше всё» для компании перестал быть актуальным. В активе Intel скоро появятся уникальные дискретные графические архитектуры и уже появились процессоры для работы с нейронными сетями. Для программирования под новые платформы и фреймворки компании Intel требуется новая модель программирования, которая тоже должна быть унифицированной.


На днях в Лондоне на мероприятии Intel Software Technology компания представила такую модель. Новая унифицированная модель программирования развивается в виде проекта «One API». Согласно проекту, программировать для всего спектра решений и платформ Intel станет проще вне зависимости от выбора платформы. Как заявил Билл Сэвэдж (Bill Savage), вице-президент Intel и генеральный менеджер подразделения Compute Performance Developer Products: «Цель проекта «One API» ― предоставить разработчикам набор инструментов, предлагающих унифицированную модель программирования и упрощающих создание рабочих нагрузок для различных архитектур. По мере развития наших вычислительных возможностей, которые теперь включают специализированные ускорители, Intel будет предлагать программные решения, позволяющие разработчикам добиться от оборудования максимальной производительности».

Свежим примером возможности для работы с различными архитектурами являются средства разработки Intel Distribution of OpenVINO Toolkit. Мы неоднократно рассказывали об этом инструменте, который предлагает единые оптимизированные возможности для глубокого обучения для всех архитектур Intel SVMS (scalar, vector, matrix, spatial). Это означает, что OpenVINO позволяет создавать программы для обычных, графических, нейронных процессоров и FPGA. Проект One API позволит делать то же самое при прямом программировании и через API, но в расширенном объёме и несколько проще, что выразится, например, в освобождении от необходимости поддерживать раздельные базы исходного кода, различные языки программирования, а также различные инструменты и рабочие процессы.

«Прямое программирование: Проект One API включает в себя новый язык непосредственного программирования Data Parallel C++ (DPC++), который предлагает открытую общеотраслевую альтернативу проприетарным языкам программирования для отдельных архитектур. В основе DPC++ лежит С++, при этом в языке используется модельSYCL* от The Khronos Group. Кроме того, в нем реализована поддержка языковых расширений, разрабатываемых в рамках открытого сообщества».

Программирование с использованием API обеспечат уникальные библиотеки для различных типов рабочих нагрузок с поддержкой аппаратного ускорения. При этом библиотечные функции разрабатываются для каждой целевой архитектуры. Для анализа и отладки создаются расширенные версии инструментов с поддержкой DPC++ и архитектур SVMS. Добавим, бета-версия инструментов для разработчиков и дополнительные подробности о проекте One API ожидаются в четвертом квартале 2019 года.

Помимо первого ускорителя на архитектуре X e , компания Intel в рамках конференции SC19 представила oneAPI — единую унифицированную модель программирования, которая должна упростить разработку программного обеспечения, работающего сразу с несколькими архитектурами.


Проще говоря, Intel создала бесплатную, открытую и стандартизированную альтернативу NVIDIA CUDA и подобным проприетарным решениям, которая позволяет легко адаптировать ПО под другие архитектуры и оборудование, будь то центральные или графические процессоры, ПЛИС или ускорители. Причём oneAPI не привязан к оборудованию Intel и способен работать на самых разных устройствах.


Как отмечает Intel, инициатива кросс-архитектурной модели разработки oneAPI основана на отраслевых стандартах и открытой спецификации, что должно обеспечить широкое внедрение и распространение. Спецификация oneAPI включает в себя язык прямого программирования Data Parallel C++ (расширение Khronos SYCL), мощные API, готовые библиотеки и инструменты разработки.


Однако в инициативе oneAPI компания Intel не ставит задачу создать какой-то универсальный код для всех платформ. Вместо этого предполагается, что за счёт oneAPI при переносе ПО с одной архитектуры на другую можно будет адаптировать лишь части кода, не меняя всё остальное.


Бета-версия программного обеспечения oneAPI, также представленная Intel, предоставляет разработчикам полный набор инструментов для разработки, включающий компиляторы на базе LLVM, готовые библиотеки и отладчики, собранные в специальные наборы инструментов (Toolkit), предназначенные для тех или иных областей применения. Ещё Intel выпустит множество обучающих материалов по oneAPI и готова оказывать разработчикам помощь в адаптации их кода под oneAPI.


Ещё Intel предоставляет разработчикам возможность тестирования программного обеспечения в процессе адаптации его под oneAPI. Для этого был создан сервис DevCloud, который позволяет тестировать ПО на различных актуальных архитектурах Intel, включая как серверные процессоры Xeon Scalable, так и настольные Core (для тестирования ПО на встроенных GPU), а также FPGA Arria и Stratix.


Первая бета-версия oneAPI как раз и предназначена для серверных процессоров Intel Xeon Scalable, потребительских процессоров Intel Core с интегрированной графикой и программируемых матриц Intel FPGA. С выходом новых версий модели набор поддерживаемого аппаратного обеспечения будет расширяться.


В конце же отметим, что инициативу Intel oneAPI уже поддержало довольно много компаний и университетов. В том числе: Lenovo, AtoS, Cray, HPE, Tencent, Стокгольмский университет и многие другие.

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