Paskelbtos galutinės OpenCL 3.0 specifikacijos

Khronos koncernas, atsakingas už OpenGL, Vulkan ir OpenCL šeimos specifikacijų kūrimą, paskelbė dėl galutinių specifikacijų paskelbimo „OpenCL 3.0“, apibrėžiančios API ir C kalbos plėtinius, skirtus organizuoti kelių platformų lygiagretųjį skaičiavimą naudojant kelių branduolių CPU, GPU, FPGA, DSP ir kitus specializuotus lustus, pradedant superkompiuteriuose ir debesų serveriuose iki lustų, kuriuos galima rasti mobiliuosiuose įrenginiuose ir įmontuota technologija. OpenCL standartas yra visiškai atviras ir nereikalauja licencijos mokesčių.

Tuo pačiu metu paskelbti atidarykite OpenCL SDK su įrankiais, pavyzdžiais, dokumentacija, antraščių failais, C++ susiejimais ir C bibliotekomis, skirtomis su OpenCL 3.0 suderinamoms programoms kurti. Taip pat atstovaujama pradinis „OpenCL 3.0“ diegimas, pagrįstas „Clang“ kompiliatoriumi, kuris yra peržiūros pataisų, skirtų įtraukti į pagrindinę LLVM struktūrą, etape. Tokios įmonės kaip IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ir Toshiba dalyvavo kuriant standartą.

Paskelbtos galutinės OpenCL 3.0 specifikacijos

Žymiausias Įranga „OpenCL 3.0“:

  • OpenCL 3.0 API dabar apima visas OpenCL versijas (1.2, 2.x), nepateikdama atskirų specifikacijų kiekvienai versijai. „OpenCL 3.0“ suteikia galimybę išplėsti pagrindines funkcijas, integruojant papildomas specifikacijas, kurios bus išdėstytos parinkčių pavidalu, neužkertant kelią monolitiniam OpenCL 1.2/2.X pobūdžiui.
  • Privalomas yra tik tas funkcionalumas, kuris atitinka OpenCL 1.2, o visos OpenCL 2.x specifikacijose siūlomos funkcijos yra neprivalomos. Šis metodas leis lengviau kurti pasirinktinius diegimus, suderinamus su OpenCL 3.0, ir išplės įrenginių, kuriuose galima naudoti OpenCL 3.0, asortimentą. Pavyzdžiui, gamintojai gali įdiegti OpenCL 3.0 palaikymą neįdiegę konkrečių OpenCL 2.x funkcijų. Norint pasiekti pasirenkamas kalbos funkcijas, OpenCL 3.0 pridėjo bandomųjų užklausų sistemą, kuri leidžia įvertinti atskirų API elementų palaikymą, taip pat specialias makrokomandas.
  • Suvienodinimas su anksčiau išleistomis specifikacijomis leidžia lengviau perkelti programas į OpenCL 3.0. OpenCL 1.2 programos galės veikti įrenginiuose, palaikančiuose OpenCL 3.0 be pakeitimų. „OpenCL 2.x“ programoms taip pat nereikės keisti kodo, jei tik „OpenCL 3.0“ aplinka suteiks reikiamą funkcionalumą (siekiant užtikrinti perkeliamumą ateityje, „OpenCL 2.x“ programoms rekomenduojama pridėti bandomąsias užklausas, kad būtų galima įvertinti „OpenCL 2.x“ funkcijų palaikymą naudojama). Tvarkyklių kūrėjai su OpenCL diegimu gali lengvai atnaujinti savo produktus į OpenCL 3.0, pridedant tik užklausų apdorojimą tam tikriems API iškvietimams ir laikui bėgant palaipsniui didinti funkcionalumą.
  • „OpenCL 3.0“ specifikacija suderinta su SPIR-V bendrojo tarpinio atvaizdavimo aplinka, plėtiniais ir specifikacijomis, kurias taip pat naudoja „Vulkan“ API. SPIR-V 1.3 specifikacijos palaikymas yra įtrauktas į pagrindinį OpenCL 3.0 kaip pasirenkama funkcija. Naudojant tarpinį atvaizdavimą SPIR-V buvo pridėtas palaikymas operacijoms su pogrupiais skaičiavimo branduoliams.
    Paskelbtos galutinės OpenCL 3.0 specifikacijos

  • Pridėtas plėtinio, skirto asinchroninėms DMA operacijoms atlikti (Asynchronous DMA), palaikymas, palaikomas į DSP panašiuose lustuose su tiesiogine prieiga prie atminties. Asinchroninis DMA leidžia naudoti DMA operacijas duomenims perduoti tarp pasaulinės ir vietinės atminties asinchroniškai, lygiagrečiai su skaičiavimais ar kitomis duomenų perdavimo operacijomis.
  • C Parallel Programming Extensions specifikacija buvo atnaujinta į 3.0 versija, o „OpenCL“ kalbos plėtinių, skirtų C++, kūrimas buvo nutrauktas projekto „C++ for OpenCL“ naudai. C++ for OpenCL yra kompiliatorius, pagrįstas Clang/LLVM ir transliacija C++ ir OpenCL C branduoliai į SPIR-V tarpinį atvaizdavimą arba žemo lygio mašinos kodą. Transliuodamas SPIR-V taip pat organizuoja C++ programų surinkimą naudodamas SYCL šablonų biblioteką, kuri supaprastina lygiagrečių programų kūrimą.

    Paskelbtos galutinės OpenCL 3.0 specifikacijos

  • Buvo pasiūlytas kompiliatorius, skirtas OpenCL transliuoti per Vulkan API clspv, kuris konvertuoja OpenCL branduolius į Vulkan SPIR-V atvaizdą ir sluoksnį clvk kad OpenCL API veiktų su Vulkan.

    Paskelbtos galutinės OpenCL 3.0 specifikacijos

Šaltinis: opennet.ru

Добавить комментарий