Predstavljena specifikacija OpenCL 3.0

Konzorcij Khronos, odgovoran za razvoj specifikacija familije OpenGL, Vulkan i OpenCL, je napovedal o finalizaciji razvoja specifikacija OpenCL 3.0, ki opredeljujejo API in razširitve jezika C za organizacijo medplatformnih paralelnih izračunov z uporabo večjedrnih CPU-jev, GPU-jev, FPGA-jev, DSP-jev in drugih specializiranih čipov, od tistih, ki se uporabljajo v superračunalnikih in oblačnih strežnikih, do čipov, ki jih srečamo v mobilnih napravah in vgrajeni tehniki. Standard OpenCL je popolnoma odprt in ne zahteva licenčnin. V delu na standardu so sodelovale takšne družbe kot IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments in Toshiba.

Na trenutni stopnji je specifikaciji dodeljen status začasne (provisional), kar implicira možnost dopolnitev na podlagi povratnih informacij, poslanih preko GitHub. Po upoštevanju pripomb bo specifikacija prejela status končne in bo objavljen končni testni sklop za preverjanje združljivosti obstoječih izvedb.

Predstavljena specifikacija OpenCL 3.0

Najbolj opazne značilnosti OpenCL 3.0:

  • API OpenCL 3.0 sada obuhvata sve verzije OpenCL (1.2, 2.x), bez davanja posebnih specifikacija za svaku verziju. OpenCL 3.0 predviđa mogućnost proširenja osnovne funkcionalnosti integracijom dodatnih specifikacija koje će se slagati kao opcije, ne blokirajući monolitni karakter OpenCL 1.2/2.X.
  • Obaveznom je proglašena samo funkcionalnost koja odgovara OpenCL 1.2, dok su sve mogućnosti predložene u specifikacijama OpenCL 2.x označene kao neobavezne. Ovakav pristup pojednostaviće stvaranje specijalizovanih implementacija kompatibilnih s OpenCL 3.0 i proširiti spektar uređaja na kojima može biti korišćen OpenCL 3.0. Na primer, proizvođači mogu implementirati podršku za OpenCL 3.0, a da ne realizuju pojedinačne funkcionalnosti OpenCL 2.x. Za pristup neobaveznim mogućnostima jezika u OpenCL 3.0 dodan je sistem provere zahteva, koji omogućava procenu podrške za pojedine aspekte API-ja, kao i posebni makroi.
  • Unifikacija s ranije objavljenim specifikacijama pojednostavljuje prevođenje aplikacija na OpenCL 3.0. Aplikacije OpenCL 1.2 moći će raditi na uređajima koji podržavaju OpenCL 3.0 bez izmjena. Aplikacije OpenCL 2.x također neće zahtijevati promjenu koda, ali ako okruženje OpenCL 3.0 pruži potrebnu funkcionalnost (za osiguranje prenosivosti budućim aplikacijama OpenCL 2.x, preporučuje se dodavanje provjeravajućih upita za procjenu podrške korištenih mogućnosti OpenCL 2.x). Programeri drajvera s implementacijama OpenCL lako će moći ažurirati svoje proizvode na OpenCL 3.0 dodavanjem samo obrade upita za određene pozive API-ja, a tokom vremena postupno povećavati funkcionalnost.
  • Specifikacija OpenCL 3.0 usklađena je s okruženjem, ekstenzijama i specifikacijama univerzalnog međupredstavljanja SPIR-V, koje se također koristi u Vulkan API-ju. Podrška za specifikaciju SPIR-V 1.3 uključena je u osnovnu strukturu OpenCL 3.0 kao opcionalna mogućnost. Kroz korištenje međupredstavljanja SPIR-V za računska jezgra dodana je podrška za operacije s podgrupama.
    Predstavljena specifikacija OpenCL 3.0
  • Dodana je podrška za ekstenziju za izvođenje asinhronih DMA-operacija (Asynchronous DMA), koje se podržavaju na DSP-sličnim čipovima s direktnim pristupom memoriji. Asynchronous DMA omogućuje korištenje DMA transakcija za prijenos podataka između globalne i lokalne memorije u asinhronom režimu, paralelno s izvršavanjima proračuna ili drugim operacijama prijenosa podataka.
  • Specifikacija ekstenzija paralelnog programiranja za jezik C ažurirana je na verzija 3.0, a razvoj jezičnih ekstenzija OpenCL za C++ prekinut je u korist projekta „C++ for OpenCL“. C++ for OpenCL je kompajler zasnovan na Clang/LLVM i prevodi jezgra na C++ i OpenCL C u međupredstavljanje SPIR-V ili niske razine mašinskog koda. Kroz prevođenje u SPIR-V također je organizirano sastavljanje C++ aplikacija koje koriste biblioteku šablona SYCL, koja olakšava stvaranje paralelnih aplikacija.

    Predstavljena specifikacija OpenCL 3.0
  • Za prevođenje OpenCL kroz Vulkan API ponuđeni su kompajler clspv, koji prevodi OpenCL jezgre u Vulkan SPIR-V predstavu, i sloj clvk za osiguranje funkcionisanja OpenCL API-ja iznad Vulkana.

    Predstavljena specifikacija OpenCL 3.0

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster