Апублікаваны фінальныя спецыфікацыі 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

Найбольш прыкметныя асаблівасці 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 у якасці апцыянальнай магчымасці. Праз выкарыстанне прамежкавага прадстаўлення СПІР-В для вылічальных ядраў дададзена падтрымка аперацый з падгрупамі.
    Апублікаваны фінальныя спецыфікацыі OpenCL 3.0

  • Дададзена падтрымка пашырэння для выканання асінхронных 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 3.0

  • Для трансляцыі OpenCL праз API Vulkan прапанаваны кампілятар clspv, пераўтваральны ядра OpenCL ва ўяўленне Vulkan SPIR-V, і праслойка clvk для забеспячэння працы API OpenCL па-над Vulkan.

    Апублікаваны фінальныя спецыфікацыі OpenCL 3.0

Крыніца: opennet.ru

Дадаць каментар