oneAPI (ускорение вычислений)
![]() | |
Репозиторий | github |
---|---|
Операционная система | Кросс-платформенный |
Платформа | Кросс-платформенный |
Тип | с открытым исходным кодом Спецификация программного обеспечения для параллельного программирования |
Веб-сайт | www |
oneAPI — это открытый стандарт , принятый Intel, [1] для унифицированного интерфейса прикладного программирования (API), предназначенного для использования в различных вычислительных ускорителей ( сопроцессоров архитектурах ), включая графические процессоры , ускорители искусственного интеллекта и программируемые пользователем вентильные матрицы . Он призван устранить необходимость для разработчиков поддерживать отдельные базы кода, несколько языков программирования, инструменты и рабочие процессы для каждой архитектуры. [2] [3] [4] [5]
oneAPI конкурирует с другими стеками вычислений на графических процессорах: CUDA от Nvidia и ROCm от AMD .
Спецификация
[ редактировать ]Спецификация oneAPI расширяет существующие модели программирования для разработчиков, позволяя использовать несколько аппаратных архитектур посредством языка параллельных данных, набора библиотечных API и низкоуровневого аппаратного интерфейса для поддержки межархитектурного программирования. Он основан на отраслевых стандартах и предоставляет открытый кроссплатформенный стек для разработчиков. [6] [7]
Параллельный анализ данных C++
[ редактировать ]ЦОД++ [8] [9] — это реализация языка программирования oneAPI, построенная на основе стандартов ISO C++ и Khronos Group SYCL . [10] DPC++ — это реализация SYCL с расширениями, которые предлагается включить в будущие версии стандарта SYCL, включая: унифицированную разделяемую память, групповые алгоритмы и подгруппы. [11] [12] [13]
Библиотеки
[ редактировать ]Набор API [6] охватывает несколько областей, включая библиотеки для линейной алгебры, глубокого обучения, машинного обучения, обработки видео и других.
Название библиотеки | Короткий Имя | Описание |
---|---|---|
Библиотека oneAPI DPC++ | одинDPL | Алгоритмы и функции для ускорения программирования ядра DPC++. |
Библиотека математического ядра oneAPI | одинMKL | Математические процедуры, включая матричную алгебру, БПФ и векторную математику. |
Библиотека анализа данных oneAPI | одинДАЛ | Функции машинного обучения и анализа данных |
Библиотека глубоких нейронных сетей oneAPI | одинDNN | Функции нейронных сетей для обучения глубокому обучению и вывода |
Библиотека коллективных коммуникаций oneAPI | одинCCL | Шаблоны коммуникации для распределенного глубокого обучения |
Строительные блоки потоков oneAPI | одинTBB | Библиотека шаблонов управления потоками и памятью |
Библиотека обработки видео oneAPI | одинVPL | Кодирование, декодирование, перекодирование и обработка видео в реальном времени |
Исходный код частей вышеуказанных библиотек доступен на GitHub. [14]
В документации oneAPI также указан API «Level Zero», определяющий низкоуровневые интерфейсы прямого доступа к металлу и набор компонентов трассировки лучей с собственными API. [6]
Уровень абстракции оборудования
[ редактировать ]нулевой уровень oneAPI, [15] [16] [17] низкоуровневый аппаратный интерфейс определяет набор возможностей и сервисов, которые аппаратному ускорителю необходимы для взаимодействия со средой выполнения компилятора и другими инструментами разработчика.
Реализации
[ редактировать ]Корпорация Intel выпустила наборы инструментов для производства oneAPI, которые реализуют эту спецификацию и добавляют инструменты миграции, анализа и отладки кода CUDA. [18] [19] [20] К ним относятся компилятор Intel oneAPI DPC++/C++ , [21] Intel Fortran Compiler , Intel VTune Profiler [22] и несколько библиотек производительности.
Codeplay выпустила слой с открытым исходным кодом [23] [24] [25] чтобы разрешить oneAPI и SYCL/DPC++ работать на Nvidia графических процессорах через CUDA .
Гейдельбергский университет разработал реализацию SYCL/DPC++ для графических процессоров AMD и Nvidia. [26]
Huawei выпустила компилятор DPC++ для своего набора микросхем Ascend AI [27]
Fujitsu создала ARM- версию библиотеки глубоких нейронных сетей oneAPI (oneDNN) с открытым исходным кодом. [28] для их процессора Fugaku .
Unified Acceleration Foundation (UXL) и будущее oneAPI
[ редактировать ]Unified Acceleration Foundation (UXL) — это новый технологический консорциум, который работает над продолжением инициативы OneAPI с целью создать новую экосистему программного обеспечения для ускорителей открытых стандартов, соответствующие проекты открытых стандартов и спецификаций через рабочие группы и группы по специальным интересам (SIG). ). Цель будет конкурировать с CUDA от Nvidia. Основными компаниями, стоящими за ним, являются Intel, Google, ARM, Qualcomm, Samsung, Imagination и VMware. [29]
Ссылки
[ редактировать ]- ^ Fortenberry & Tomov 2022 , p. 22.
- ^ «Intel расширяет свой портфель микросхем и инициативу по программному обеспечению oneAPI для высокопроизводительных вычислений следующего поколения» . HPCwire . 09.12.2019 . Проверено 11 февраля 2020 г.
- ^ «Intel представляет новый графический процессор — Ponte Vecchio — и обрисовывает планы по созданию oneAPI» . HPCwire . 18.11.2019 . Проверено 11 февраля 2020 г.
- ^ «SC19: Intel представляет новый стек графических процессоров, усилия по разработке oneAPI — ExtremeTech» . www.extremetech.com . Проверено 11 февраля 2020 г.
- ^ Кеннеди, Патрик (24 декабря 2018 г.). «Единый API Intel, чтобы управлять ими всеми, очень необходим для расширения TAM» . Сервис TheHome . Проверено 11 февраля 2020 г.
- ^ Перейти обратно: а б с «Спецификация oneAPI» . одинAPI .
- ^ «Подготовка к появлению дискретных высокопроизводительных графических процессоров Intel» . HPCwire . 2021-03-23 . Проверено 29 марта 2021 г.
- ^ «Параллельный анализ данных C++: освоение DPC++ для программирования гетерогенных систем с использованием C++ и SYCL» . Апресс .
- ^ Команда, редакция (16 декабря 2019 г.). «Гетерогенное вычислительное программирование: oneAPI и параллельный анализ данных C++» . внутриBIGDATA . Проверено 11 февраля 2020 г.
- ^ «Группа Хронос» . Группа «Хронос» . 11 февраля 2020 г. Проверено 11 февраля 2020 г.
- ^ «Хронос делает шаг к широкому развертыванию SYCL с выпуском предварительной спецификации SYCL 2020» . Группа «Хронос» . 30 июня 2020 г. Проверено 6 июля 2020 г.
- ^ персонал (30.06.2020). «Новые открытые расширения DPC++, дополняющие SYCL и C++» . внутриHPC . Проверено 6 июля 2020 г.
- ^ «SYCL 2020 запускается с новым названием, новыми функциями и высокими амбициями» . HPCwire . 09.02.2021 . Проверено 16 февраля 2021 г.
- ^ «oneAPI-SRC» . Гитхаб .
- ^ Верхейде 2019-12-08T16:11:19Z, Арне. «Intel выпускает базовую спецификацию нулевого уровня oneAPI» . Аппаратное обеспечение Тома . Проверено 11 февраля 2020 г.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ «В среду выполнения вычислений Intel добавлена поддержка нулевого уровня API — Phoronix» . www.phoronix.com . Проверено 10 марта 2020 г.
- ^ «Первоначальные тесты производительности нулевого уровня Intel oneAPI — Phoronix» . www.phoronix.com . Проверено 13 апреля 2020 г.
- ^ «Intel Champions XPU Vision с oneAPI, графическими процессорами для центров обработки данных — SDxCentral» . SDxЦентральный . 11.11.2020 . Проверено 11 ноября 2020 г.
- ^ «Intel представляет oneAPI Gold и предоставляет более подробную информацию о планах развития графических процессоров» . HPCwire . 11.11.2020 . Проверено 11 ноября 2020 г.
- ^ Мурхед, Патрик. «Intel объявляет о золотом выпуске наборов инструментов OneAPI и нового серверного графического процессора Intel» . Форбс . Проверено 8 декабря 2020 г.
- ^ «Параллельный анализ данных C++ для межархитектурных приложений» . Интел . Проверено 7 октября 2021 г.
- ^ «Устранение узких мест производительности с помощью профилировщика Intel® VTune™» . Интел . Проверено 7 октября 2021 г.
- ^ «Codeplay с открытым исходным кодом версия DPC++ для графических процессоров Nvidia» . HPCwire . 05 февраля 2020 г. Проверено 12 февраля 2020 г.
- ^ «OneAPI/DPC++/SYCL от Intel будет работать на графических процессорах NVIDIA с открытым исходным кодом — Phoronix» . www.phoronix.com . Проверено 6 декабря 2019 г.
- ^ «Codeplay — вклад Codeplay в DPC++ обеспечивает поддержку SYCL для графических процессоров NVIDIA» . www.codeplay.com . Проверено 11 февраля 2020 г.
- ^ Солтер, Джим (30 сентября 2020 г.). «Intel и Гейдельбергский университет объединяются, чтобы обеспечить поддержку графических процессоров Radeon для искусственного интеллекта» . Арс Техника . Проверено 7 октября 2021 г.
- ^ Расширение DPC++ за счет поддержки набора микросхем Huawei Ascend AI , получено 7 октября 2021 г.
- ^ fltech «Глубокое погружение в библиотеку глубокого обучения для процессора A64FX Fugaku — история разработки словами разработчика» . fltech — блог Fujitsu Laboratories Technology (на японском языке) , дата обращения 10 февраля 2021 г.
- ^ «Эксклюзив: за заговором с целью ослабить контроль Nvidia над искусственным интеллектом, нацелившись на программное обеспечение» . Проверено 5 апреля 2024 г.
Источники
[ редактировать ]- Фортенберри, Анна; Томов, Станимир (2022). Расширение переносимости MAGMA с помощью OneAPI (PDF) . Семинар 2022 года по программированию ускорителей с использованием директив (WACCPD). ИИЭЭ . стр. 22–31. .
Внешние ссылки
[ редактировать ]- Официальный сайт
- oneAPI на GitHub
- Поддержка графических процессоров Nvidia для разработчиков SYCL
- Рейндерс, Джеймс; и др. (2021). Параллельный анализ данных C++: освоение DPC++ для программирования гетерогенных систем с использованием C++ и SYCL . Книга открытого доступа. Спрингер. дои : 10.1007/978-1-4842-5574-2 . ISBN 978-1-4842-5574-2 . S2CID 226231933 .