Khronos анонсировал OpenCL 3.0, и это самые примечательные особенности

Хронос Концерн, который отвечает за разработку спецификаций для семейства OpenGL, Vulkan и OpenCL, объявила о завершении разработки спецификаций OpenCL 3.0 которые определяют API и расширения языка C для организации мультиплатформенных параллельных вычислений с использованием многоядерных процессоров, графических процессоров, FPGA, DSP и других специализированных микросхем.

Это используется от суперкомпьютеров и облачных серверов до чипов что можно найти на мобильных устройствах и встроенных технологиях. Стандарт OpenCL полностью открыт. В работе над стандартом участвовали такие компании, как IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments и Toshiba.

На текущем этапе спецификации статус предварительный, что подразумевает возможность уточнения на основе комментариев, отправленных через GitHub. После учета комментариев спецификация получит окончательный статус, и окончательный набор тестов будет опубликован для проверки совместимости существующих реализаций.

Возможности OpenCL 3.0

OpenCL 3.0 API теперь охватывает все версии OpenCL (1.2, 2.x), без предоставления отдельных спецификаций для каждой версии. OpenCL 3.0 предоставляет возможность расширения базового функционала за счет интеграции дополнительных спецификаций, которые будут организованы в виде опций, не блокируя монолитный характер OpenCL 1.2 / 2.X.

Только функциональность, соответствующая OpenCL 1.2, объявлена ​​обязательной. и все функции, предлагаемые в спецификациях OpenCL 2.x классифицируются как необязательные. Такой подход упростит создание специализированных реализаций, совместимых с OpenCL 3.0, и расширит диапазон устройств, на которых можно использовать OpenCL 3.0.

Например, производители могут реализовать поддержку OpenCL 3.0, не осознавая отдельных функций OpenCL 2.x. Чтобы получить доступ к дополнительным языковым функциям, OpenCL 3.0 добавляет систему тестовых запросов, которая позволяет вам оценить поддержку для отдельных элементов API, а также для специальных макросов.

Унификация со спецификациями ранее опубликованные упрощает перенос приложений на OpenCL 3.0. Приложения OpenCL 1.2 смогут работать на устройствах, поддерживающих OpenCL 3.0, без изменений. Приложения OpenCL 2.x также не потребуют изменения кода, но если среда OpenCL 3.0 обеспечивает необходимую функциональность (для обеспечения переносимости в будущем рекомендуется, чтобы приложения OpenCL 2.x добавляли тестовые запросы для оценки совместимости с openCL 2. x используемые функции).

Разработчики контроллеров с реализациями OpenCL они смогут легко обновить свои продукты до OpenCL 3.0, добавление только обработки запросов на наличие определенных вызовов API и постепенное увеличение функциональности с течением времени.

Спецификация OpenCL 3.0 согласована с среда, расширения и спецификации Универсальный промежуточный вид SPIR-V, который также использует API Vulkan. Поддержка спецификации SPIR-V 1.3 включена в ядро ​​OpenCL 3.0 в качестве дополнительной функции. Благодаря использованию промежуточного представления SPIR-V для вычислительных ядер была добавлена ​​поддержка операций с подгруппами.

Добавлено поддержка расширения для выполнения асинхронных операций DMA, совместим с DSP-подобными чипами с прямым доступом к памяти. Асинхронный DMA позволяет использовать транзакции DMA для передачи данных между глобальной и локальной памятью в асинхронном режиме параллельно с выполняемыми вычислениями или другими операциями передачи данных.

Спецификация расширений параллельного программирования для C была обновлена ​​до версии 3.0, а разработка расширений языка OpenCL для C ++ был прекращен в пользу проекта «C ++ для OpenCL».

C ++ для OpenCL - это компилятор на основе Clang / LLVM который переводит ядра C ++ и OpenCL C в промежуточное представление SPIR-V или низкоуровневый машинный код. Благодаря преобразованию в SPIR-V компиляция приложений C ++ также организована с использованием библиотеки шаблонов SYCL, что упрощает создание параллельных приложений.

Для трансляции OpenCL через Vulkan API предлагается компилятор clspv, который преобразует ядра OpenCL в представление Vulkan SPIR-V и уровень clvk, чтобы позволить OpenCL API работать поверх Vulkan.

источник: https://www.khronos.org


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.