Ipinakilala ang pagtutukoy ng OpenCL 3.0

Ang alalahanin ng Khronos, na responsable sa pagbuo ng mga detalye ng pamilya ng OpenGL, Vulkan at OpenCL, inihayag sa pagkumpleto ng pagbuo ng mga pagtutukoy ng OpenCL 3.0 na tumutukoy sa mga API at extension ng wikang C para sa pag-aayos ng cross-platform parallel computing gamit ang mga multi-core na CPU, GPU, FPGA, DSP at iba pang dalubhasang chip, mula sa mga ginagamit sa mga supercomputer at cloud server sa mga chip na makikita sa mga mobile device at naka-embed na teknolohiya. Ang pamantayan ng OpenCL ay ganap na bukas at hindi nangangailangan ng mga bayarin sa lisensya. Ang mga kumpanya tulad ng IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments at Toshiba ay nakibahagi sa gawain sa pamantayan.

Sa kasalukuyang yugto, ang pagtutukoy ay itinalaga ng pansamantalang katayuan, na nagpapahiwatig ng posibilidad ng pagpipino batay sa feedback na ipinadala sa pamamagitan ng GitHub. Kapag ang mga komento ay isinasaalang-alang, ang detalye ay matatapos at ang isang panghuling test suite ay ipa-publish upang subukan ang pagiging tugma ng mga umiiral na pagpapatupad.

Ipinakilala ang pagtutukoy ng OpenCL 3.0

Pinaka kapansin-pansin mga tampok OpenCL 3.0:

  • Saklaw na ngayon ng OpenCL 3.0 API ang lahat ng bersyon ng OpenCL (1.2, 2.x), nang hindi nagbibigay ng hiwalay na mga detalye para sa bawat bersyon. Nagbibigay ang OpenCL 3.0 ng kakayahang palawigin ang pangunahing functionality sa pamamagitan ng pagsasama-sama ng mga karagdagang detalye na ipapatong sa anyo ng mga opsyon nang hindi hinaharangan ang monolitikong katangian ng OpenCL 1.2/2.X.
  • Tanging ang functionality na sumusunod sa OpenCL 1.2 ang idineklara na mandatory, at lahat ng feature na iminungkahi sa mga detalye ng OpenCL 2.x ay inuri bilang opsyonal. Ang diskarteng ito ay magpapadali sa paggawa ng mga custom na pagpapatupad na tugma sa OpenCL 3.0, at magpapalawak ng hanay ng mga device kung saan magagamit ang OpenCL 3.0. Halimbawa, maaaring ipatupad ng mga manufacturer ang suporta sa OpenCL 3.0 nang hindi nagpapatupad ng mga partikular na feature ng OpenCL 2.x. Upang ma-access ang mga opsyonal na feature ng wika, nagdagdag ang OpenCL 3.0 ng isang sistema ng mga pagsubok na query na nagbibigay-daan sa iyong suriin ang suporta ng mga indibidwal na elemento ng API, pati na rin ang mga espesyal na macro.
  • Ang pag-iisa sa mga naunang inilabas na mga detalye ay nagpapadali sa paglipat ng mga application sa OpenCL 3.0. Ang mga OpenCL 1.2 na application ay magagawang tumakbo sa mga device na sumusuporta sa OpenCL 3.0 nang walang pagbabago. Hindi rin mangangailangan ang mga application ng OpenCL 2.x ng mga pagbabago sa code, hangga't ang kapaligiran ng OpenCL 3.0 ay nagbibigay ng kinakailangang functionality (upang matiyak ang portability sa hinaharap, ang mga application ng OpenCL 2.x ay inirerekomenda na magdagdag ng mga query sa pagsubok upang suriin ang suporta para sa mga tampok ng OpenCL 2.x ginagamit). Madaling maa-upgrade ng mga driver developer na may mga pagpapatupad ng OpenCL ang kanilang mga produkto sa OpenCL 3.0, nagdaragdag lamang ng pagpoproseso ng query para sa ilang partikular na tawag sa API, at unti-unting tataas ang functionality sa paglipas ng panahon.
  • Ang pagtutukoy ng OpenCL 3.0 ay nakahanay sa kapaligiran, mga extension, at mga detalye ng SPIR-V generic intermediate na representasyon, na ginagamit din ng Vulkan API. Ang suporta para sa SPIR-V 1.3 na detalye ay kasama sa pangunahing OpenCL 3.0 bilang isang opsyonal na tampok. Sa pamamagitan ng paggamit ng isang intermediate na representasyon SPIR-V Ang suporta para sa mga operasyon na may mga subgroup ay idinagdag para sa mga core ng computing.
    Ipinakilala ang pagtutukoy ng OpenCL 3.0

  • Nagdagdag ng suporta para sa isang extension para sa pagsasagawa ng mga asynchronous na pagpapatakbo ng DMA (Asynchronous DMA), na sinusuportahan sa mga chip na tulad ng DSP na may direktang pag-access sa memorya. Ginagawang posible ng Asynchronous DMA na gumamit ng mga transaksyon sa DMA upang maglipat ng data sa pagitan ng global at lokal na memorya nang asynchronous, kasabay ng mga kalkulasyon o iba pang mga operasyon sa paglilipat ng data.
  • Ang detalye ng C Parallel Programming Extension ay na-update sa bersyon 3.0, at ang pagbuo ng mga extension ng wika ng OpenCL para sa C++ ay itinigil pabor sa proyektong "C++ para sa OpenCL". Ang C++ para sa OpenCL ay isang compiler batay sa Clang/LLVM at pagsasahimpapawid C++ at OpenCL C kernels sa SPIR-V intermediate representation o low-level machine code. Sa pamamagitan ng pagsasahimpapawid, inaayos din ng SPIR-V ang pagpupulong ng mga C++ application gamit ang SYCL template library, na nagpapasimple sa paglikha ng mga parallel na aplikasyon.

    Ipinakilala ang pagtutukoy ng OpenCL 3.0

  • Ang isang compiler ay iminungkahi para sa pagsasahimpapawid ng OpenCL sa pamamagitan ng Vulkan API clspv, na nagko-convert ng mga OpenCL kernel sa isang Vulkan SPIR-V na representasyon, at isang layer clvk upang paganahin ang OpenCL API na gumana sa ibabaw ng Vulkan.

    Ipinakilala ang pagtutukoy ng OpenCL 3.0

Pinagmulan: opennet.ru

Magdagdag ng komento