Khronos обяви OpenCL 3.0 и това са по-забележителни функции

Концерн Khronos, който е отговорен за разработването на спецификации за семейството 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

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 операции, съвместим с 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, за да позволи API на OpenCL да работи върху Vulkan.

Fuente: https://www.khronos.org


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

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

*

*

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