Publicētas galīgās OpenCL 3.0 specifikācijas

Koncerns Khronos, kas atbild par OpenGL, Vulkan un OpenCL saimes specifikāciju izstrādi, paziņoja par galīgo specifikāciju publicēšanu OpenCL 3.0, kas nosaka API un C valodas paplašinājumus, lai organizētu starpplatformu paralēlo skaitļošanu, izmantojot daudzkodolu CPU, GPU, FPGA, DSP un citas specializētas mikroshēmas, sākot no superdatoros un mākoņserveros līdz mikroshēmām, kuras var atrast mobilajās ierīcēs un iebūvēta tehnoloģija. OpenCL standarts ir pilnībā atvērts un neprasa licences maksu.

Vienlaicīgi publicēta atveriet OpenCL SDK ar rīkiem, piemēriem, dokumentāciju, galvenes failiem, C++ saitēm un C bibliotēkām, lai izstrādātu lietojumprogrammas, kas ir saderīgas ar OpenCL 3.0. Arī kuru pārstāv sākotnējā OpenCL 3.0 ieviešana, pamatojoties uz kompilatoru Clang, kas atrodas ielāpu pārskatīšanas stadijā, lai tos iekļautu LLVM galvenajā struktūrā. Standarta izstrādē piedalījās tādi uzņēmumi kā IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments un Toshiba.

Publicētas galīgās OpenCL 3.0 specifikācijas

Ievērojamākais Features OpenCL 3.0:

  • OpenCL 3.0 API tagad aptver visas OpenCL versijas (1.2, 2.x), nesniedzot atsevišķas specifikācijas katrai versijai. OpenCL 3.0 nodrošina iespēju paplašināt pamata funkcionalitāti, integrējot papildu specifikācijas, kas tiks slāņotas opciju veidā, nebloķējot OpenCL 1.2/2.X monolīto raksturu.
  • Par obligātu tiek pasludināta tikai funkcionalitāte, kas atbilst OpenCL 1.2, un visas OpenCL 2.x specifikācijās piedāvātās funkcijas ir klasificētas kā izvēles. Šī pieeja atvieglos ar OpenCL 3.0 saderīgu pielāgotu implementāciju izveidi un paplašinās to ierīču klāstu, kurās var izmantot OpenCL 3.0. Piemēram, ražotāji var ieviest OpenCL 3.0 atbalstu, neieviešot īpašas OpenCL 2.x funkcijas. Lai piekļūtu izvēles valodas funkcijām, OpenCL 3.0 ir pievienota testa vaicājumu sistēma, kas ļauj novērtēt atsevišķu API elementu atbalstu, kā arī īpašus makro.
  • Apvienošana ar iepriekš izdotajām specifikācijām atvieglo lietojumprogrammu migrēšanu uz OpenCL 3.0. OpenCL 1.2 lietojumprogrammas bez izmaiņām varēs darboties ierīcēs, kas atbalsta OpenCL 3.0. OpenCL 2.x lietojumprogrammām arī nebūs nepieciešamas koda izmaiņas, ja vien OpenCL 3.0 vide nodrošina nepieciešamo funkcionalitāti (lai nodrošinātu turpmāku pārnesamību, OpenCL 2.x lietojumprogrammām ieteicams pievienot testa vaicājumus, lai novērtētu atbalstu OpenCL 2.x līdzekļiem tiek izmantots). Draiveru izstrādātāji ar OpenCL ieviešanu var viegli jaunināt savus produktus uz OpenCL 3.0, pievienojot tikai vaicājumu apstrādi noteiktiem API izsaukumiem, un laika gaitā pakāpeniski palielināt funkcionalitāti.
  • OpenCL 3.0 specifikācija ir saskaņota ar SPIR-V vispārējā starpposma attēlojuma vidi, paplašinājumiem un specifikācijām, ko izmanto arī Vulkan API. SPIR-V 1.3 specifikācijas atbalsts ir iekļauts OpenCL 3.0 pamatfunkcijā kā izvēles līdzeklis. Izmantojot starpposma attēlojumu SPIR-V skaitļošanas kodoliem ir pievienots atbalsts operācijām ar apakšgrupām.
    Publicētas galīgās OpenCL 3.0 specifikācijas

  • Pievienots atbalsts paplašinājumam asinhrono DMA darbību veikšanai (Asynchronous DMA), kas tiek atbalstīts DSP līdzīgās mikroshēmās ar tiešu piekļuvi atmiņai. Asinhronā DMA ļauj izmantot DMA transakcijas, lai asinhroni pārsūtītu datus starp globālo un lokālo atmiņu, paralēli aprēķiniem vai citām datu pārsūtīšanas darbībām.
  • C Parallel Programming Extensions specifikācija ir atjaunināta uz 3.0. versija, un OpenCL valodas paplašinājumu izstrāde priekš C++ tika pārtraukta par labu projektam “C++ for OpenCL”. C++ for OpenCL ir kompilators, kura pamatā ir Clang/LLVM un apraide C++ un OpenCL C kodoli SPIR-V starpposma attēlojumā vai zema līmeņa mašīnas kodā. Izmantojot apraidi, SPIR-V organizē arī C++ lietojumprogrammu montāžu, izmantojot SYCL veidņu bibliotēku, kas vienkāršo paralēlu lietojumprogrammu izveidi.

    Publicētas galīgās OpenCL 3.0 specifikācijas

  • Ir piedāvāts kompilators OpenCL apraidei, izmantojot Vulkan API clspv, kas pārvērš OpenCL kodolus par Vulkan SPIR-V attēlojumu un slāni clvk lai OpenCL API varētu darboties virs Vulkan.

    Publicētas galīgās OpenCL 3.0 specifikācijas

Avots: opennet.ru

Pievieno komentāru