Nkọwa ikpeazụ OpenCL 3.0 ebipụtara

Nchegbu Khronos, onye na-ahụ maka ịmepụta nkọwa ezinụlọ OpenGL, Vulkan na OpenCL, mara ọkwa na mbipụta ikpeazụ nkọwa OpenCL 3.0, na-akọwa API na ndọtị nke asụsụ C maka ịhazi mkpokọta cross-platform parallel computing site na iji multi-core CPUs, GPUs, FPGAs, DSPs na ibe ndị ọzọ pụrụ iche, site na ndị a na-eji na supercomputers na igwe ojii sava gaa na ibe nke enwere ike ịhụ na ngwaọrụ mkpanaka. wuru na teknụzụ. Ụkpụrụ OpenCL mepere emepe ma ọ chọghị ụgwọ ikike.

N'otu oge bipụtara Mepee OpenCL SDK nwere ngwaọrụ, ọmụmaatụ, akwụkwọ, faịlụ nkụnye eji isi mee, njikọ C++ na ọba akwụkwọ C maka mmepe ngwa dakọtara na OpenCL 3.0. Ọzọkwa nọchiri anya ya mmejuputa mmalite nke OpenCL 3.0 dabere na Clang compiler, nke dị na ọkwa nke nyochaa patches maka itinye n'ime isi nhazi nke LLVM. Ụlọ ọrụ ndị dị ka IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments na Toshiba so na-arụ ọrụ na ọkọlọtọ.

Nkọwa ikpeazụ OpenCL 3.0 ebipụtara

Kacha ama ama Atụmatụ OpenCL 3.0:

  • OpenCL 3.0 API na-ekpuchi ụdị OpenCL niile (1.2, 2.x), na-enyeghị nkọwapụta dị iche iche maka ụdị ọ bụla. OpenCL 3.0 na-enye ike ịgbatị ọrụ isi site na ntinye nke nkọwa ndị ọzọ nke a ga-edobe n'ụdị nhọrọ na-egbochighị ọdịdị monolithic nke OpenCL 1.2 / 2.X.
  • Naanị ọrụ dabara na OpenCL 1.2 ka ekwuputara na ọ bụ iwu, yana njirimara niile echere na nkọwapụta OpenCL 2.x bụ nkewa dị ka nhọrọ. Ụzọ a ga-eme ka ọ dịkwuo mfe ịmepụta mmejuputa omenala ndị kwekọrọ na OpenCL 3.0, ma gbasaa ụdị ngwaọrụ nke OpenCL 3.0 nwere ike iji mee ihe. Dịka ọmụmaatụ, ndị nrụpụta nwere ike mejuputa nkwado OpenCL 3.0 na-enweghị mmejuputa atụmatụ OpenCL 2.x. Iji nweta njirimara asụsụ nhọrọ, OpenCL 3.0 agbakwunyela usoro nke ajụjụ nyocha nke na-enye gị ohere inyocha nkwado nke ihe API nke ọ bụla, yana macro pụrụ iche.
  • Njikọ na nkọwapụta ewepụtara na mbụ na-eme ka ọ dị mfe ịkwaga ngwa na OpenCL 3.0. Ngwa OpenCL 1.2 ga-enwe ike ịgba ọsọ na ngwaọrụ na-akwado OpenCL 3.0 na-enweghị mgbanwe. Ngwa OpenCL 2.x agaghịkwa achọ mgbanwe koodu, ọ bụrụhaala na gburugburu OpenCL 3.0 na-enye ọrụ achọrọ (iji hụ na mbugharị n'ọdịnihu, OpenCL 2.x ngwa na-atụ aro ka ịgbakwunye ajụjụ nyocha iji nyochaa nkwado maka njirimara OpenCL 2.x. a na-eji). Ndị mmepe ọkwọ ụgbọala nwere mmejuputa OpenCL nwere ike ịkwalite ngwaahịa ha ngwa ngwa gaa na OpenCL 3.0, na-agbakwunye naanị nhazi ajụjụ maka ụfọdụ oku API, wee jiri nwayọọ nwayọọ na-abawanye ọrụ ka oge na-aga.
  • Nkọwapụta OpenCL 3.0 kwekọrọ na gburugburu ebe obibi, ndọtị, na nkọwapụta nke SPIR-V generic intermediate, nke Vulkan API na-ejikwa. Nkwado maka nkọwapụta SPIR-V 1.3 gụnyere na isi OpenCL 3.0 dị ka njirimara nhọrọ. Site na iji ihe nnọchi anya etiti SPIR-V agbakwunyere nkwado maka arụmọrụ na obere otu maka kọmpụta cores.
    Nkọwa ikpeazụ OpenCL 3.0 ebipụtara

  • Nkwado agbakwunyere maka ndọtị maka ịrụ ọrụ DMA asynchronous (Asynchronous DMA), nke akwadoro na ibe DSP nwere ohere ebe nchekwa ozugbo. Asynchronous DMA na-eme ka o kwe omume iji azụmahịa DMA nyefee data n'etiti ebe nchekwa ụwa na mpaghara asynchronously, n'otu oge na mgbako ma ọ bụ ọrụ mbufe data ndị ọzọ.
  • Emelitela nkọwapụta Extensions Programming C Parallel ka ọ bụrụ mbipute 3.0, na mmepe nke mgbasawanye asụsụ OpenCL maka C++ kwụsịrị maka ọrụ "C++ maka OpenCL". C ++ maka OpenCL bụ mkpokọta dabere na Clang/LLVM na mgbasa ozi C ++ na OpenCL C kernels n'ime ihe nnọchianya etiti SPIR-V ma ọ bụ koodu igwe dị ala. Site na mgbasa ozi, SPIR-V na-ahazi mgbakọ nke ngwa C ++ site na iji ọbá akwụkwọ template SYCL, nke na-eme ka ịmepụta ngwa ndị yiri ya dị mfe.

    Nkọwa ikpeazụ OpenCL 3.0 ebipụtara

  • Atụpụtala onye nchịkọta maka ịgbasa OpenCL site na Vulkan API clsv, nke na-atụgharị kernels OpenCL ka ọ bụrụ ihe nnọchianya Vulkan SPIR-V, na oyi akwa clvk iji mee ka OpenCL API rụọ ọrụ n'elu Vulkan.

    Nkọwa ikpeazụ OpenCL 3.0 ebipụtara

isi: opennet.ru

Tinye a comment