Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

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

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

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

Наиболее заметные особенности OpenCL 3.0:

  • API OpenCL 3.0 теперь охватывает все версии 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-операций (Asynchronous DMA), поддерживаемого в DSP-подобных чипах с прямым доступом к памяти. Asynchronous DMA даёт возможность использовать транзакции DMA для передачи данных между глобальной и локальной памятью в асинхронном режиме, параллельно с производимыми вычислениям или другими операциями передачи данных.
  • Спецификация расширений параллельного программирования для языка Си обновлена до версии 3.0, а развитие языковых расширений OpenCL для C++ прекращено в пользу проекта "C++ for OpenCL". C++ for OpenCL представляет собой компилятор, основанный на Clang/LLVM и транслирующий ядра на C++ и OpenCL C в промежуточное представление SPIR-V или низкоуровневый машинный код. Через трансляцию в SPIR-V также организована сборка С++ приложений, использующих библиотеку шаблонов SYCL, упрощающую создание параллельных приложений.
  • Для трансляции OpenCL через API Vulkan предложены компилятор clspv, преобразующий ядра OpenCL в представление Vulkan SPIR-V, и прослойка clvk для обеспечения работы API OpenCL поверх Vulkan.

OpenNET

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...