Au fost publicate specificațiile finale OpenCL 3.0

Concernul Khronos, responsabil pentru dezvoltarea specificațiilor familiei OpenGL, Vulkan și OpenCL, a anunțat privind publicarea specificațiilor finale OpenCL 3.0, care definesc API-ul și extensiile limbajului C pentru organizarea calculului paralel cross-platform folosind CPU multi-core, GPU, FPGA, DSP și alte cipuri specializate, de la cele utilizate în supercomputere și servere cloud, până la cipuri ce pot fi întâlnite în dispozitive mobile și tehnologie încorporată. Standardul OpenCL este complet deschis și nu necesită taxe de licență.

În același timp, publicat SDK-ul OpenCL deschis cu instrumente, exemple, documentație, fișiere header, legături pentru C++ și biblioteci C pentru dezvoltarea de aplicații compatibile cu OpenCL 3.0. De asemenea, a fost prezentată o implementare inițială a OpenCL 3.0 bazată pe compilatorul Clang, care este în etapa de revizuire a patch-urilor pentru a fi inclus în compunerea principală a LLVM. La lucrările asupra standardului au participat companii precum IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments și Toshiba.

Au fost publicate specificațiile finale OpenCL 3.0

Cele mai notabile grafica realizată prin WebGL și OpenCL 3.0:

  • API-ul OpenCL 3.0 acoperă acum toate versiunile OpenCL (1.2, 2.x), fără a furniza specificații separate pentru fiecare versiune. OpenCL 3.0 permite extinderea funcționalităților de bază prin integrarea de specificații suplimentare, care se vor suprapune sub formă de opțiuni, fără a bloca caracterul monolitic al OpenCL 1.2/2.X.
  • Numai funcționalitatea corespunzătoare OpenCL 1.2 este considerată obligatorie, iar toate funcționalitățile propuse în specificațiile OpenCL 2.x sunt clasificate ca fiind opționale. Această abordare va simplifica crearea de implementări personalizate compatibile cu OpenCL 3.0 și va extinde gama de dispozitive pe care OpenCL 3.0 poate fi utilizat. De exemplu, producătorii pot implementa suport pentru OpenCL 3.0 fără a implementa funcționalitățile separate din OpenCL 2.x. Pentru a accesa funcționalitățile opționale ale limbajului, OpenCL 3.0 a adăugat un sistem de interogări de verificare, care permite evaluarea suportului pentru elementele API individuale, precum și macro-uri speciale.
  • Unificarea cu specificațiile anterioare facilitează traducerea aplicațiilor la OpenCL 3.0. Aplicațiile OpenCL 1.2 vor funcționa pe dispozitive care suportă OpenCL 3.0 fără modificări. Aplicațiile OpenCL 2.x nu vor necesita modificarea codului, dar dacă mediul OpenCL 3.0 oferă funcționalitatea necesară (pentru a asigura portabilitatea aplicațiilor OpenCL 2.x, se recomandă adăugarea de cereri de verificare pentru evaluarea suportului funcțiilor utilizate din OpenCL 2.x). Dezvoltatorii de drivere cu implementări OpenCL își vor putea actualiza produsele la OpenCL 3.0, adăugând doar procesarea cererilor legate de anumite apeluri API și, în timp, extinzând treptat funcționalitatea.
  • Specificația OpenCL 3.0 a fost adusă în conformitate cu mediile, extensiile și specificațiile intermediare universale SPIR-V, care sunt de asemenea aplicate în API Vulkan. Suportul pentru specificația SPIR-V 1.3 a fost inclus în componenta principală a OpenCL 3.0 ca opțiune. Prin utilizarea reprezentării intermediare SPIR-V pentru nucleele de calcul a fost adăugat suport pentru operații cu subgrupuri.
    Au fost publicate specificațiile finale OpenCL 3.0
  • A fost adăugat suport pentru extensia care permite execuția operațiunilor DMA asincrone (Asynchronous DMA), suportată în cipuri asemănătoare DSP cu acces direct la memorie. Asynchronous DMA permite utilizarea tranzacțiilor DMA pentru transferul de date între memoria globală și cea locală în mod asincron, în paralel cu calculele efectuate sau alte operațiuni de transfer de date.
  • Specificația extensiilor de programare paralelă pentru limbajul C a fost actualizată la versiunea 3.0, iar dezvoltarea extensiilor lingvistice OpenCL pentru C++ a fost încheiată în favoarea proiectului „C++ for OpenCL”. C++ for OpenCL este un compilator bazat pe Clang/LLVM și transpune nucleele în C++ și OpenCL C în reprezentarea intermediară SPIR-V sau în codul mașină la un nivel inferior. Prin transpunerea în SPIR-V, a fost organizată și construcția aplicațiilor C++ care utilizează biblioteca de șabloane SYCL, care simplifică crearea aplicațiilor paralele.

    Au fost publicate specificațiile finale OpenCL 3.0
  • Pentru transpunerea OpenCL prin API Vulkan, este propus un compilator clspv, care transformă nucleele OpenCL în reprezentarea Vulkan SPIR-V, și un strat clvk pentru a asigura funcționarea API OpenCL deasupra Vulkan.

    Au fost publicate specificațiile finale OpenCL 3.0

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster