Uvedena je OpenCL 3.0 specifikacija

Koncern Khronos, odgovoran za razvoj specifikacija OpenGL, Vulkan i OpenCL porodice, najavljeno o završetku razvoja OpenCL 3.0 specifikacija koje definiraju API-je i proširenja jezika C za organiziranje paralelnog računanja na više platformi koristeći višejezgrene CPU, GPU, FPGA, DSP i druge specijalizirane čipove, od onih koji se koriste u superračunarima i cloud serverima na čipove koji se mogu naći u mobilnim uređajima i ugrađenoj tehnologiji. OpenCL standard je potpuno otvoren i ne zahtijeva licencne naknade. U radu na standardu učestvovale su kompanije kao što su IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba.

U trenutnoj fazi, specifikaciji je dodijeljen privremeni status, što podrazumijeva mogućnost dorade na osnovu povratnih informacija poslanih putem GitHub. Kada se komentari uzmu u obzir, specifikacija će biti finalizirana i konačni skup testova će biti objavljen kako bi se testirala kompatibilnost postojećih implementacija.

Uvedena je OpenCL 3.0 specifikacija

Najznačajniji Značajke OpenCL 3.0:

  • OpenCL 3.0 API sada pokriva sve verzije OpenCL-a (1.2, 2.x), bez davanja posebnih specifikacija za svaku verziju. OpenCL 3.0 pruža mogućnost proširenja osnovne funkcionalnosti kroz integraciju dodatnih specifikacija koje će biti slojevite u obliku opcija bez blokiranja monolitne prirode OpenCL 1.2/2.X.
  • Samo funkcionalnost koja je usklađena sa OpenCL 1.2 je deklarisana kao obavezna, a sve funkcije predložene u OpenCL 2.x specifikacijama su klasifikovane kao opcione. Ovaj pristup će olakšati kreiranje prilagođenih implementacija koje su kompatibilne sa OpenCL 3.0 i proširiće raspon uređaja na kojima se OpenCL 3.0 može koristiti. Na primjer, proizvođači mogu implementirati OpenCL 3.0 podršku bez implementacije specifičnih OpenCL 2.x karakteristika. Za pristup opcionim jezičkim funkcijama, OpenCL 3.0 je dodao sistem test upita koji vam omogućava da procenite podršku pojedinačnih API elemenata, kao i specijalnih makroa.
  • Unifikacija sa prethodno objavljenim specifikacijama olakšava migraciju aplikacija na OpenCL 3.0. OpenCL 1.2 aplikacije će moći da rade na uređajima koji podržavaju OpenCL 3.0 bez modifikacija. OpenCL 2.x aplikacije također neće zahtijevati promjene koda, sve dok okruženje OpenCL 3.0 pruža potrebnu funkcionalnost (da bi se osigurala buduća prenosivost, OpenCL 2.x aplikacijama se preporučuje da dodaju test upite za procjenu podrške za mogućnosti OpenCL 2.x se koristi). Programeri drajvera sa OpenCL implementacijama mogu lako nadograditi svoje proizvode na OpenCL 3.0, dodajući samo obradu upita za određene API pozive i postepeno povećavati funkcionalnost tokom vremena.
  • OpenCL 3.0 specifikacija je usklađena sa okruženjem, ekstenzijama i specifikacijama SPIR-V generičke intermedijarne reprezentacije, koju takođe koristi Vulkan API. Podrška za SPIR-V 1.3 specifikaciju je uključena u jezgro OpenCL 3.0 kao opciona karakteristika. Kroz upotrebu posredne reprezentacije SPIR-V Dodata je podrška za operacije sa podgrupama za računska jezgra.
    Uvedena je OpenCL 3.0 specifikacija

  • Dodata podrška za ekstenziju za izvođenje asinhronih DMA operacija (Asynchronous DMA), podržana u DSP-ovim čipovima sa direktnim pristupom memoriji. Asinhroni DMA omogućava korištenje DMA transakcija za asinhroni prijenos podataka između globalne i lokalne memorije, paralelno s proračunima ili drugim operacijama prijenosa podataka.
  • Specifikacija C paralelnog programiranja proširenja je ažurirana na verzija 3.0, a razvoj proširenja jezika OpenCL za C++ je prekinut u korist projekta “C++ for OpenCL”. C++ za OpenCL je kompajler baziran na Clang/LLVM i emitovanje C++ i OpenCL C kernela u SPIR-V srednje predstavljanje ili mašinski kod niskog nivoa. Putem emitovanja, SPIR-V takođe organizuje sklapanje C++ aplikacija koristeći SYCL biblioteku šablona, ​​što pojednostavljuje kreiranje paralelnih aplikacija.

    Uvedena je OpenCL 3.0 specifikacija

  • Predložen je kompajler za emitovanje OpenCL-a preko Vulkan API-ja clspv, koji pretvara OpenCL kernele u Vulkan SPIR-V reprezentaciju i sloj clvk da omogućite OpenCL API-ju da radi na Vulkanu.

    Uvedena je OpenCL 3.0 specifikacija

izvor: opennet.ru

Dodajte komentar