Русская Википедия:OneAPI
oneAPI — открытый стандарт унифицированного прикладного программного интерфейса, предназначенный для использования на различных вычислительных ускорительных архитектурах, включающих графические процессоры, нейронные процессоры и программируемые пользователем вентильные матрицы. Стандарт предназначен для устранения необходимости поддержания разработчиками отдельных кодовых баз, множества программных языков, и различных инструментов и рабочих процессов для каждой архитектуры.[1][2][3][4]
Спецификация oneAPI
Спецификация oneAPI расширяет существующие модели программирования для разработчиков, позволяя использовать несколько аппаратных архитектур с помощью языка параллельных данных, набора библиотек API и низкоуровневого аппаратного интерфейса для поддержки межархитектурного программирования. Она построена на существующих промышленных стандартах и предоставляет открытый, кроссплатформенный стэк разработки.[5][6]
Data Parallel C++
DPC++[7][8] — открытый, кросс-архитектурный язык, созданный на базе языка C++ и SYCL стандартах промышленного консорциума Khronos Group.[9] DPC++ — имплементация стандарта SYCL с расширениями, предложенными для включения в будущие версии SYCL стандарта. Одним из примеров такого включения, является внесение использования унифицированной общей памяти, групповых алгоритмов и подгрупп в стандарт SYCL 2020.[10][11][12]
Библиотеки oneAPI
Набор API[5] охватывает несколько областей, в которых заметно преимущество от использования ускорения, включая библиотеки для линейной алгебры, глубокого обучения, машинного обучения, обработки видео, а также других областей.
Название библиотеки | Краткое
название |
Описание |
---|---|---|
oneAPI DPC++ Library | oneDPL | Алгоритмы и функции для ускорениия программирования ядра DPC++ |
oneAPI Math Kernel Library | oneMKL | Математические подпрограммы, включающие линейную алгебру, быстрое преобразование Фурье, и векторную математику |
oneAPI Data Analytics Library | oneDAL | Функции для работы с машинным обучением и анализом данных |
oneAPI Deep Neural Network Library | oneDNN | Функции нейронных сетей для тренировки и использования глубокого обучения |
oneAPI Collective Communications Library | oneCCL | Шаблоны коммуникации для распределенного глубокого обучения |
oneAPI Threading Building Blocks | oneTBB | Библиотека шаблонов для управления потоками выполнения и памятью |
oneAPI Video Processing Library | oneVPL | Кодирование, декодирование, транскодирование, и обработка видео в реальном времени |
Исходный код большинства реализаций выше указанных библиотек доступен на сайте GitHub.[13]
В документации oneAPI также указан API "Нулевого уровня", определяющий низкоуровневые интерфейсы прямого доступа к железу и набор компонентов для трассировки лучей с собственными API интерфейсами.[5]
Уровень абстракции аппаратного обеспечения
oneAPI Level Zero,[14][15][16] — низкоуровневый аппаратный интерфейс, определяющий набор возможностей и служб, которые необходимы аппаратному ускорителю для взаимодействия со средами исполнения компилятора и другими инструментами разработчика.
Реализация
Компания Intel выпустила наборы инструментов oneAPI производственного качества, которые реализуют данную спецификацию и добавила миграцию кода CUDA, а также инструменты для анализа и отладки.[17][18][19] В состав этих инструментов входит Intel oneAPI DPC++/C++ Compiler,[20] Intel Fortran Compiler, Intel VTune Профайлер[21] и множество производительных библиотек.
Компания Codeplay выпустила слой с открытым исходным кодом[22][23][24], позволяющий библиотеке oneAPI SYCL/DPC++ работать на графических процессорах Nvidia с использованием CUDA.
Гейдельбергский университет разработал реализацию SYCL/DPC++ для графических процессоров AMD и Nvidia.[25]
Компания Huawei выпустила DPC++ компилятор для своего чипсета Ascend AI.[26]
Компания Fujitsu создала ARM версию библиотеки глубокой нейронной сети oneAPI (Deep Neural Network Library (oneDNN)) с открытым исходным кодом для процессора, использующегося в суперкомпьютере [27] Fugaku.
Примечания
Ссылки
- Шаблон:Official website
- Intel oneAPI Product
- Bringing Nvidia GPU support to SYCL developers
- Шаблон:Cite book
- Шаблон:GitHub
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 5,0 5,1 5,2 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite news
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Citation
- ↑ Шаблон:Cite web