oneAPI — новое имя для выражения программирования на нескольких архитектурах.

(создавать, строить, внедрять инновации, ускорять...)

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

Эти инструменты поставляются в упакованной среде, называемой наборами инструментов. Наборы инструментов Intel oneAPI Toolkit предназначены для ориентированных на производительность приложений в HPC, IoT, расширенной визуализации, фреймворках глубокого обучения, написанных на языках DPC++, C++, C и Fortran, и доступны как —

1. Базовый набор инструментов Intel® oneAPI;

2. Инструментарий Intel® oneAPI HPC;

3. Инструментарий Intel® oneAPI AI Analytics;

4. Инструментарий рендеринга Intel® oneAPI;

5. Инструментарий Intel® oneAPI для Интернета вещей;

6. Инструментарий Intel® System Bring-up Toolkit;

7. Дистрибутив Intel® набора инструментов OpenVINO на базе oneAPI).

Доступ к наборам инструментов oneAPI можно получить удаленно через Intel® DevCloud или локально, загрузив базовый набор инструментов oneAPI и наборы инструментов для предметной области с Intel oneAPI. Для загрузки и использования продукты набора инструментов oneAPI доступны в двух поддерживаемых версиях:

  1. Версия, поддерживаемая сообществом:В этой версии наборы инструментов oneAPI доступны бесплатно для всех и не требуют лицензии для их загрузки и использования. Поддержка доступна на форуме сообщества пользователей oneAPI и включает доступ к последнему выпуску наборов инструментов oneAPI. (Скачать наборы инструментов здесь).
  2. Коммерчески поддерживаемая версия (продукты Intel® oneAPI Toolkit с приоритетной поддержкой): для этой версии необходимо приобрести лицензию на поддерживаемый продукт. Поддержка предоставляется инженерами Intel и включает доступ как к текущим, так и к предыдущим выпускам наборов инструментов oneAPI. Наконец, для приобретения лицензии на поддерживаемый продукт дополнительную информацию можно получить у авторизованных реселлеров, перейдя по этой ссылке.

1.1. Intel® DevCloud для одного API

Intel DevCloud — это схема, которая является частью решения для самостоятельной разработки, предоставляемого Intel. избавляет программистов от головной боли при настройке; таким образом, это удаленная среда разработки для разработки, тестирования и оптимизации приложений.

DevCloud предназначен для разработчиков обучения и логических выводов, разработчиков высокопроизводительных вычислений и специалистов по данным, которые хотят:

  1. Исследуйте и изучайте унифицированную модель программирования oneAPI и связанные с ней наборы инструментов;

2. Разрабатывайте, тестируйте и запускайте рабочие нагрузки, ориентированные на данные.

Особое внимание следует уделить тому факту, что DevCloud не предназначен для ресурсоемких приложений или высокопроизводительных высокопроизводительных приложений. Это просто среда для тестирования и изучения наборов инструментов, предоставляемых Intel.

Кроме того, доступ к DevCloud предоставляется бесплатно в течение 120 дней (с возможностью продления). Наконец, в среде DevCloud предоставляется неограниченный доступ к кластеру новейшего аппаратного и программного обеспечения Intel®, интегрированного с оптимизированными платформами, инструментами и библиотеками Intel®.

1.2. Ключевые моменты, на которые следует обратить внимание в отношении Intel® oneAPI

Ниже приведены ключевые подсказки, которые помогут нам вспомнить, что означает Intel oneAPI:

  1. В различных отраслях (межотраслевых): oneAPI предоставляет единое пространство для стандартных групп и отраслевых/академических инициатив — группы ISO C++/Fortran, OpenMP* ARB, форум MPI, группа Khronos. Это сотрудничество способствует возможности компонуемости и взаимодействия.
  2. Открытые спецификации. oneAPI обеспечивает поддержку конкретных реализаций oneAPI для разных архитектур. Отрасли могут создавать собственные реализации oneAPI для поддержки своих продуктов или создавать новые продукты на основе oneAPI. Например, реализация Codeplay части модели программирования oneAPI, DPC++, для поддержки графических процессоров NVIDIA (см. здесь).
  3. В различных архитектурах ускорителей (кросс-архитектуры): oneAPI — это унифицированная модель/инфраструктура программирования, обеспечивающая поддержку рабочих нагрузок, требующих различных архитектур — скалярных, векторных, матричных и пространственных архитектур, развернутых в ЦП, ГП, ИИ и FPGA соответственно (эти архитектуры часто называют SVMS в Intel). oneAPI допускает гомогенное и гетерогенное программирование (см. пример гомогенного и гетерогенного трехдиагонального решателя, реализованного с помощью oneapi здесь).

4. Унифицированная платформа программирования. oneAPI предоставляет разработчикам среду разработки, которая устраняет необходимость в различных средах программирования (отдельных кодовых базах, нескольких библиотеках, инструментах и ​​языках программирования, зависящих от поставщиков) для различных архитектур. Это устранение помогает сохранить подходы, позволяющие сэкономить время, такие как повторное использование кода. Повторное использование кода — это просто практика адаптации кода к другому приложению, программному обеспечению, функции или архитектуре (это отличная статья о повторном использовании кода здесь).

Среда разработки oneAPI содержит обеспечение:

• Прямое программирование с помощью DPC++, OpenMP C/C++, OpenMP Fortran.

• Программирование на основе API с предметно-ориентированными библиотеками.

• Инструменты анализа — отладчики, профилировщики, советники.

• Инструменты переноса.

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

5. Data Parallel C++, DPC++: DPC++ — это язык параллельных данных с открытым исходным кодом, разработанный Intel oneAPI; он поддерживает параллелизм данных и гетерогенное программирование (подробнее о DPC++ читайте в разделе 1.3.).

6. Для гетерогенных вычислительных систем: oneAPI позволяет разрабатывать приложения, которые могут использовать преимущества систем, содержащих различные типы вычислительных блоков — центральные процессоры, графические процессоры, FPGA, ASIC и другие. Например, трехдиагональный решатель, упомянутый в разделе 3. выше, демонстрирует преимущество реализации CPU-GPU для больших объемов данных.

7. Высокая производительность. oneAPI позволяет разрабатывать высокопроизводительные приложения для различных архитектур.

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

С помощью oneAPI у нас есть набор компиляторов, библиотек, отладчиков и инструментов анализа, которые помогают нам разрабатывать эффективные программы (программы, которые максимизируют ресурсы, доступные в архитектуре); все, что нам нужно сделать, это определить тип проблемы, нацелить (а) конкретную архитектуру (ы), получить доступ к набору инструментов для применимых инструментов и разработать эффективное решение для решения проблемы. Конечно, разработка эффективного решения будет означать, что мы должны
снабдить свой разум и изучить ресурсы методами оптимизации, шаблонами программирования, информацией об архитектуре и любой другой полезной информацией.

1.3. Что такое Data Parallel C++, DPC++?

DPC++ — это адаптация Intel SYCL — отраслевого стандарта, который добавляет параллелизм данных к C++ для гетерогенных систем.

Изучение DPC++ — это просто изучение параллельного программирования данных с помощью C++, SYCL и некоторых новых расширений, таких как унифицированная общая память, использование подгрупп и т. д., для ЦП, графических процессоров, ПЛИС и других ускорителей (скачать бесплатную электронную книгу для освоения DPC++ « здесь").

Если вы уже знакомы с разными моделями программирования (OpenMP, MPI, CUDA, OpenCL и т. д.) для разных архитектур, молодцы! С oneAPI становится еще интереснее, поскольку он поддерживает межотраслевые стандарты. Intel oneAPI предоставляет необходимые инструменты для миграции с существующих программ, написанных на C/C++, CUDA*, OpenCL, на SYCL/DPC++ (см. здесь). Он также предоставляет возможность компоновки DPC++ с C/C++ OpenMP* и позволяет для совместимости с OpenCL — в этом случае OpenCL-разработчик может продолжать работать с OpenCL, но на SYCL API (см. здесь).

Однако, если вы не знакомы с разными моделями программирования для разных архитектур, добро пожаловать в DPC++! Это хорошее место для начала разработки гетерогенных приложений.

Акронимы

  1. ИИ — искусственный интеллект
  2. ЦП – центральный процессор.
  3. CUDA* — унифицированная вычислительная архитектура устройств
  4. DevCloud — Облако разработки Intel oneAPI
  5. DPC++ — Параллельный анализ данных C++
  6. Fortran — транслятор формул, перевод формул, система перевода формул, перевод формул
  7. FPGA — программируемая пользователем вентильная матрица
  8. GPU — графический процессор.
  9. HPC — высокопроизводительные вычисления
  10. IoT — Интернет вещей
  11. ISO — Международная организация по стандартизации
  12. MPI — интерфейс передачи сообщений
  13. OpenCL — открытый язык вычислений
  14. OpenMP* — открытая многопроцессорность
  15. XPU – другие процессорные блоки (например, AI-ASIC (специализированные интегральные схемы искусственного интеллекта)

Ссылки

  1. Отдел новостей Intel, Информационный бюллетень: oneapi, корпорация Intel, 17 ноября 2019 г. [В сети]. Доступна здесь".
  2. Дж. Рейндерс, Б. Эшбо, Дж. Бродман, М. Кинснер, Дж. Пенникук и X. Тиан, Data Parallel C++ — освоение DPC++ для программирования гетерогенных систем с использованием C++ и SYCL. Apress, Беркли, Калифорния, 2021 г. [Онлайн]. Доступна здесь".
  3. News Byte, Проект Intel «один API обеспечивает унифицированную модель программирования для различных архитектур», Корпорация Intel, 19 июня 2019 г. [В сети]. Доступна здесь".
  4. М. Чатурведи, Руководство по Intel OneAPI для начинающих, In Opinions, Analytics India Magazine Pvt. Ltd., 2 июня 2021 г. [Онлайн]. Доступна здесь".
  5. Пресс-подборка, Инновации, ориентированные на данные, корпорация Intel, 5 апреля 2019 г. [онлайн]. Доступна здесь".
  6. Intel, Разнообразные архитектуры для непревзойденных инноваций Беспрецедентный выбор архитектуры для решения любых вычислительных задач. Корпорация Intel, — —. [В сети]. Доступна здесь".

Спасибо, что прочитали!