Objavljene konačne OpenCL 3.0 specifikacije

Koncern Khronos, odgovoran za razvoj specifikacija OpenGL, Vulkan i OpenCL porodice, najavljeno o objavljivanju konačnih specifikacija OpenCL 3.0, definiranje API-ja 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 do čipova koji se mogu naći u mobilnim uređajima i ugrađena tehnologija. OpenCL standard je potpuno otvoren i ne zahtijeva licencne naknade.

Istovremeno objavljeno open OpenCL SDK sa alatima, primerima, dokumentacijom, datotekama zaglavlja, C++ vezama i C bibliotekama za razvoj aplikacija kompatibilnih sa OpenCL 3.0. Također predstavljen početna implementacija OpenCL 3.0 zasnovana na kompajleru Clang, koji je u fazi pregleda zakrpa za uključivanje u glavnu strukturu LLVM-a. U radu na standardu učestvovale su kompanije kao što su IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba.

Objavljene konačne OpenCL 3.0 specifikacije

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.
    Objavljene konačne OpenCL 3.0 specifikacije

  • 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.

    Objavljene konačne OpenCL 3.0 specifikacije

  • 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.

    Objavljene konačne OpenCL 3.0 specifikacije

izvor: opennet.ru

Dodajte komentar