OneAPI (модель программирования) - oneAPI (programming model)

oneAPI[1][2][3][4] представляет собой межотраслевую инициативу по открытой унифицированной модели программирования, основанной на стандартах, которая обеспечивает общий опыт разработчиков для всех архитектур с ускорителями вычислений. Его цель - предоставить эффективную, производительную модель программирования, которая избавляет разработчиков от необходимости поддерживать отдельные базы кода, несколько языков программирования, а также различные инструменты и рабочие процессы для каждой архитектуры.

Спецификация oneAPI

Спецификация oneAPI[5] расширяет существующие модели программирования для разработчиков, позволяя использовать несколько аппаратных архитектур с помощью языка параллельных данных, набора библиотечных API-интерфейсов и низкоуровневого аппаратного интерфейса для поддержки кросс-архитектурного программирования. Он основан на отраслевых стандартах и ​​предоставляет открытый кроссплатформенный стек разработчика.

Язык - Параллельные данные C ++

DPC ++[6][7] это открытый кросс-архитектурный язык, построенный на ISO C ++ и Хронос Групп SYCL стандарты[8]. DPC ++ расширяет эти стандарты за счет явных параллельных конструкций, таких как подгруппы и унифицированные интерфейсы разгрузки разделяемой памяти, для поддержки широкого спектра вычислительных архитектур и процессоров, включая Процессоры и ускорители. Расширения возвращаются в органы стандартизации. Примером этого является вклад в SYCL 2020 объединенной общей памяти, групповых алгоритмов и подгрупп.[9][10]

Библиотеки oneAPI

Набор API[11] охватывает несколько областей, которые выигрывают от ускорения, включая интерфейс для глубокого обучения; общие библиотеки для математики линейной алгебры, обработки видео и мультимедиа; и другие.

Имя библиотекикороткий

Имя

Описание
Библиотека oneAPI DPC ++oneDPLАлгоритмы и функции для ускорения программирования ядра DPC ++
Библиотека ядра oneAPI MathoneMKLМатематические процедуры, включая матричную алгебру, БПФ и векторную математику
Библиотека аналитики данных oneAPIoneDALФункции машинного обучения и анализа данных
Библиотека глубокой нейронной сети oneAPIoneDNNФункции нейронных сетей для обучения глубокому обучению и вывода
Библиотека коллективных коммуникаций oneAPIoneCCLКоммуникационные шаблоны для распределенного глубокого обучения
Строительные блоки oneAPI Threadingодин ТБББиблиотека шаблонов потоковой передачи и управления памятью
Библиотека обработки видео oneAPIoneVPLКодирование, декодирование, перекодирование и обработка видео в реальном времени

Уровень аппаратной абстракции

oneAPI Level Zero[12][13][14], низкоуровневый аппаратный интерфейс, определяет набор возможностей и служб, необходимых аппаратному ускорителю для взаимодействия со средами выполнения компилятора и другими инструментами разработчика.

Реализации

Intel выпустила качественные производственные инструменты oneAPI, которые реализуют спецификацию и добавляют инструменты миграции, анализа и отладки.[15][16][17]

Codeplay выпустил слой с открытым исходным кодом[18][19][20] чтобы разрешить oneAPI и SYCL / Data Parallel C ++ для запуска поверх Nvidia GPU через CUDA.

Рекомендации

  1. ^ «Intel расширяет свой кремниевый портфель и программу oneAPI Software Initiative для высокопроизводительных вычислений нового поколения». HPCwire. 2019-12-09. Получено 2020-02-11.
  2. ^ «Intel представляет новый графический процессор - Ponte Vecchio - и очерчивает планы на создание oneAPI». HPCwire. 2019-11-18. Получено 2020-02-11.
  3. ^ «SC19: Intel представляет новый стек графических процессоров, усилия по разработке oneAPI - ExtremeTech». www.extremetech.com. Получено 2020-02-11.
  4. ^ Кеннеди, Патрик (24 декабря 2018 г.). «Intel One API, чтобы управлять ими всем, очень необходим для расширения возможностей TAM». ServeTheHome. Получено 2020-02-11.
  5. ^ «Спецификация oneAPI». oneAPI.
  6. ^ "Data Parallel C ++: освоение DPC ++ для программирования гетерогенных систем с использованием C ++ и SYCL". Apress.
  7. ^ Команда, редакция (2019-12-16). «Программирование гетерогенных вычислений: oneAPI и Data Parallel C ++». внутриBIGDATA. Получено 2020-02-11.
  8. ^ «Группа Хронос». Группа Хронос. 2020-02-11. Получено 2020-02-11.
  9. ^ «Шаги Khronos к повсеместному развертыванию SYCL с выпуском предварительной спецификации SYCL 2020». Группа Хронос. 2020-06-30. Получено 2020-07-06.
  10. ^ персонал (30.06.2020). "Новые, открытые расширения DPC ++ дополняют SYCL и C ++". внутриHPC. Получено 2020-07-06.
  11. ^ "элементы спецификации oneAPI". oneAPI.
  12. ^ Верхейде 2019-12-08T16: 11: 19Z, Арне. «Intel выпускает спецификацию Bare-Metal oneAPI Level Zero». Оборудование Тома. Получено 2020-02-11.
  13. ^ «В Compute Runtime Intel добавлена ​​поддержка нулевого уровня API - Phoronix». www.phoronix.com. Получено 2020-03-10.
  14. ^ «Первые тесты производительности Intel oneAPI Level Zero - Phoronix». www.phoronix.com. Получено 2020-04-13.
  15. ^ «Intel Champions XPU Vision с oneAPI и графическими процессорами для центров обработки данных - SDxCentral». SDxCentral. 2020-11-11. Получено 2020-11-11.
  16. ^ «Intel представляет oneAPI Gold и предоставляет более подробную информацию о планах развития графических процессоров». HPCwire. 2020-11-11. Получено 2020-11-11.
  17. ^ Мурхед, Патрик. «Intel объявляет о выпуске Gold Release наборов инструментов OneAPI и нового серверного графического процессора Intel». Forbes. Получено 2020-12-08.
  18. ^ «Codeplay Open Sources - версия DPC ++ для графических процессоров Nvidia». HPCwire. 2020-02-05. Получено 2020-02-12.
  19. ^ «Intel oneAPI / DPC ++ / SYCL будет работать на графических процессорах NVIDIA с открытым исходным кодом - Phoronix». www.phoronix.com. Получено 2019-12-06.
  20. ^ «Codeplay - вклад Codeplay в DPC ++ обеспечивает поддержку SYCL для графических процессоров NVIDIA». www.codeplay.com. Получено 2020-02-11.

внешняя ссылка