Окончательные спецификации OpenCL 3.0 уже опубликованы.

Несколько месяцев назад мы поделились здесь в блоге новости выпуск разработки OpenCL 3.0 компанией Хронос Концерн (Отвечает за разработку спецификаций для семейства OpenGL, Vulkan и OpenCL).

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

В то же время был выпущен OpenCL SDK с открытым исходным кодом. с инструментами, примерами, документацией, файлами заголовков, ссылками на библиотеки C ++ и C для разработки приложений, совместимых с OpenCL 3.0.

Также представлена ​​первоначальная реализация OpenCL 3.0 на основе компилятора Clang, который находится на стадии экспертной оценки для включения в основной пакет LLVM. Такие компании, как IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments и Toshiba внесли свой вклад в разработку стандарта.

Сегодня рабочая группа Khronos® OpenCL ™ рада объявить о выпуске окончательной версии спецификаций OpenCL 3.0, включая новую унифицированную спецификацию языка OpenCL C 3.0, а также о раннем первоначальном выпуске Khronos OpenCL SDK, чтобы разработчики могли быстро встать. ускориться с OpenCL.

Основные возможности OpenCL 3.0

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

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 согласована со средой, расширениями и спецификациями. промежуточного звена общего положения SПИР-В, который также используется в API Vulkan. Поддержка спецификации SPIR-V 1.3 включена в основной OpenCL 3.0 в качестве дополнительной функции. Добавлена ​​поддержка операций с подгруппами за счет использования промежуточного представления SPIR-V для вычислительных ядер.

Кроме того добавлена ​​поддержка расширения для выполнения операций DMA Асинхронный поддерживается на микросхемах DSP, подобных DSP.

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

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

Для трансляции 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.