Открытый стандарт для параллельных вычислений
oneAPI — это открытый стандарт , принятый Intel, для унифицированного интерфейса прикладного программирования (API), предназначенного для использования в различных архитектурах ускорителей вычислений ( сопроцессоров ), включая графические процессоры , ускорители ИИ и программируемые вентильные матрицы . Он предназначен для устранения необходимости разработчикам поддерживать отдельные кодовые базы, несколько языков программирования, инструментов и рабочих процессов для каждой архитектуры. [2] [3] [4] [5]
oneAPI конкурирует с другими вычислительными стеками GPU: CUDA от Nvidia и ROCm от AMD .
Спецификация
Спецификация oneAPI расширяет существующие модели программирования разработчиков, чтобы обеспечить поддержку нескольких аппаратных архитектур с помощью языка параллельных данных, набора библиотечных API и низкоуровневого аппаратного интерфейса для поддержки кросс-архитектурного программирования. Она основана на отраслевых стандартах и предоставляет открытый кросс-платформенный стек разработчиков. [6] [7]
Параллельный анализ данных C++
DPC++ [8] [9] — это реализация языка программирования oneAPI, построенная на стандартах ISO C++ и Khronos Group SYCL . [10] DPC++ — это реализация SYCL с расширениями, которые предлагаются для включения в будущие версии стандарта SYCL, включая: унифицированную общую память, групповые алгоритмы и подгруппы. [11] [12] [13]
Библиотеки
Набор API [6] охватывает несколько областей, включая библиотеки для линейной алгебры, глубокого обучения, машинного обучения, обработки видео и другие.
Исходный код частей вышеуказанных библиотек доступен на GitHub. [14]
В документации oneAPI также перечислен API «Level Zero», определяющий низкоуровневые интерфейсы прямого доступа к металлу и набор компонентов трассировки лучей с собственными API. [6]
Уровень абстракции оборудования
oneAPI Level Zero, [15] [16] [17] низкоуровневый аппаратный интерфейс, определяет набор возможностей и служб, необходимых аппаратному ускорителю для взаимодействия со средами выполнения компилятора и другими инструментами разработчика.
Реализации
Корпорация Intel выпустила наборы инструментов для производства oneAPI, которые реализуют спецификацию и добавляют инструменты миграции, анализа и отладки кода CUDA. [18] [19] [20] К ним относятся компилятор Intel oneAPI DPC++/C++ , [21] компилятор Intel Fortran , профилировщик Intel VTune [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]
Ссылки
- ^ "Intel расширяет свое портфолио кремниевых продуктов и инициативу по разработке программного обеспечения oneAPI для высокопроизводительных вычислений следующего поколения". 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 . Получено 11.02.2020 .
- ^ Кеннеди, Патрик (24.12.2018). «Intel One API to Rule Them All Is Much to Expand TAM» (Интеллектуальный API Intel для управления всеми ими крайне необходим для расширения TAM). ServeTheHome . Получено 11.02.2020 .
- ^ abc "Спецификация oneAPI". oneAPI .
- ^ «Подготовка к появлению дискретных высокопроизводительных графических процессоров Intel». HPCwire . 2021-03-23 . Получено 2021-03-29 .
- ^ "Data Parallel C++: Освоение DPC++ для программирования гетерогенных систем с использованием C++ и SYCL". Apress .
- ^ Команда, редакция (2019-12-16). "Программирование гетерогенных вычислений: oneAPI и параллельный C++ данных". insideBIGDATA . Получено 2020-02-11 .
- ^ "Группа Khronos". Группа Khronos . 2020-02-11 . Получено 2020-02-11 .
- ^ "Khronos делает шаги к широкому развертыванию SYCL с выпуском предварительной спецификации SYCL 2020". Группа Khronos . 2020-06-30 . Получено 2020-07-06 .
- ^ staff (2020-06-30). "Новые открытые расширения DPC++ дополняют SYCL и C++". insideHPC . Получено 2020-07-06 .
- ^ «SYCL 2020 запускается с новым именем, новыми функциями и высокими амбициями». HPCwire . 2021-02-09 . Получено 2021-02-16 .
- ^ "oneAPI-SRC". GitHub .
- ^ Verheyde 2019-12-08T16:11:19Z, Арне. "Intel выпускает спецификацию Bare-Metal oneAPI Level Zero". Tom's Hardware . Получено 2020-02-11 .
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ "Intel's Compute Runtime добавляет поддержку oneAPI Level Zero - Phoronix". www.phoronix.com . Получено 10.03.2020 .
- ^ "Первоначальные тесты производительности Intel oneAPI уровня Zero - Phoronix". www.phoronix.com . Получено 13 апреля 2020 г.
- ^ "Intel Champions XPU Vision с oneAPI, графические процессоры для центров обработки данных - SDxCentral". SDxCentral . 2020-11-11 . Получено 2020-11-11 .
- ^ "Intel представляет oneAPI Gold и предоставляет более подробную информацию о дорожной карте GPU". HPCwire . 2020-11-11 . Получено 2020-11-11 .
- ^ Мурхед, Патрик. «Intel объявляет о выпуске Gold-версии OneAPI Toolkits и нового серверного графического процессора Intel». Forbes . Получено 08.12.2020 .
- ^ "Data Parallel C++ для кросс-архитектурных приложений". Intel . Получено 2021-10-07 .
- ^ "Устранение узких мест производительности с помощью Intel® VTune™ Profiler". Intel . Получено 2021-10-07 .
- ^ "Codeplay открывает исходники версии DPC++ для графических процессоров Nvidia". HPCwire . 2020-02-05 . Получено 2020-02-12 .
- ^ "OneAPI / DPC++ / SYCL от Intel будет работать поверх графических процессоров NVIDIA с открытым исходным кодом - Phoronix". www.phoronix.com . Получено 2019-12-06 .
- ^ "Codeplay - вклад Codeplay в DPC++ приносит поддержку SYCL для графических процессоров NVIDIA". www.codeplay.com . Получено 11.02.2020 .
- ^ Salter, Jim (2020-09-30). "Intel, Гейдельбергский университет объединяются, чтобы обеспечить поддержку Radeon GPU для искусственного интеллекта". Ars Technica . Получено 2021-10-07 .
- ^ Расширение DPC++ с поддержкой чипсета Huawei Ascend AI , получено 07.10.2021
- ^ Флтех. «Глубокое погружение в библиотеку глубокого обучения для процессора A64FX Fugaku — история разработки словами разработчика». fltech — 富士通研究所の技術ブログ(на японском языке) . Проверено 10 февраля 2021 г.
- ^ "Эксклюзив: Заговор с целью ослабить контроль Nvidia над ИИ, нацелившись на программное обеспечение" . Получено 2024-04-05 .
Источники
- Фортенберри, Анна; Томов, Станимир (2022). Расширение переносимости MAGMA с помощью OneAPI (PDF) . Семинар 2022 года по программированию ускорителей с использованием директив (WACCPD). IEEE . стр. 22–31..
Внешние ссылки
- Официальный сайт
- oneAPI на GitHub
- Поддержка графических процессоров Nvidia для разработчиков SYCL
- Рейндерс, Джеймс и др. (2021). Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL. Книга открытого доступа. Springer. doi : 10.1007/978-1-4842-5574-2. ISBN 978-1-4842-5574-2. S2CID 226231933.