OCClub

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

У API OpenCL непростая судьба. Сначала он был разработан Apple, после доработан NVIDIA и AMD и в итоге передан группе Khronos как открытый кроссплатформенный API. Но за последний десяток лет конкуренция в сфере API стала очень напряженной, многие перешли на сторонние интерфейсы, да и проблем у OpenCL хватает. Начиная с macOS 10.14 Apple перешла на Metal API, у NVIDIA есть собственный API CUDA. Широко поддерживает OpenCL лишь Intel, пообещав поддержку версии 3.0 в процессорах Tiger Lake, а также AMD с своей открытой платформой для разработчиков RoCm, куда внедрён OpenCL 2.2. Небольшая поддержка со стороны ключевых партнёров не мешает Khronos совершенствовать OpenCL, и накануне группа опубликовала окончательные спецификации OpenCL 3.0.

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

OpenCL 3.0 в некотором роде является ответвлением. По большей части это не обновление версии 2.2, а эдакий форк версии 1.2. То есть, по сути, это OpenCL 1.2, но очень гибкий и с возможностью надстройки дополнительных функций. Если ранее для реализации некоторых функций на OpenCL 1.2 из стека OpenCL 2.1 разработчикам приходилось внедрять всю базовую спецификацию версии 2.1, то теперь разработчики могут сами решать, что внедрять, а что нет. И это крайне важная возможность, поскольку OpenCL – API кроссплатформенный, и производителям, к примеру, смартфонов не очень хотелось реализовывать весь стек программных возможностей OpenCL 2.1, когда от него требовалось лишь пара функций.

Несмотря на это, Khronos обещает максимально безболезненный переход с любого OpenCL на OpenCL 3.0. Поскольку API базируется ещё на ядре версии 1.2, приложения, изначально написанные под версию 1.2, заработают нативно. ПО, написанное для OpenCL 2.1, тоже будет работать. Khronos в целом обещает отсутствие необходимости лезть в код для адаптации.

Не ожидается, что популярность OpenCL сильно возрастёт после обновления. Напомню, о намерениях поддержки версии 3.0 высказалась Intel, а AMD, несмотря на в общем-то сильную поддержку, пока не сделала заявлений.

Подробнее про API OpenCL 3.0 и его нововведения на этой странице.

Exit mobile version