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

Преди няколко месеца споделихме тук в блога новините за освобождаването на разработката на OpenCL 3.0 от Концерн Khronos (Отговаря за разработването на спецификации за семейството 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

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

Освен, че добавена поддръжка за разширение за извършване на DMA операции Поддържа се асинхронно на DSP-подобни DMA чипове.

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

Спецификацията на разширенията за паралелно програмиране за език C е актуализиран до версия 3.0 и разработването на разширенията на езика OpenCL за C ++ се прекратява в полза на проекта "C ++ за OpenCL".

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

Fuente: https://www.khronos.org/


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.