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