Specifica OpenCL 3.0 a fost prezentată

Concernul Khronos, responsabil pentru dezvoltarea specificațiilor familiei OpenGL, Vulkan și OpenCL, a anunțat la finalizarea dezvoltării specificațiilor OpenCL 3.0, care definesc API-ul și extensiile limbajului C pentru organizarea calculului paralel multiplatformă utilizând CPU-uri multicore, GPU-uri, FPGA-uri, DSP-uri și alte cipuri specializate, de la cele utilizate în supercomputere și servere cloud până la cipuri întâlnite în dispozitive mobile și tehnologia încorporată. Standardul OpenCL este complet deschis și nu necesită plăți de licență. Lucrările la standard au fost realizate cu participarea unor companii precum IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments și Toshiba.

În stadiul actual, specificația a primit statutul de provizorie (provisional), ceea ce implică posibilitatea de revizuire pe baza feedback-ului trimis prin GitHub. După ce observațiile vor fi luate în considerare, specificația va obține statutul final și va fi publicat setul final de teste pentru verificarea compatibilității implementărilor existente.

Specifica OpenCL 3.0 a fost prezentată

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.
    Specifica OpenCL 3.0 a fost prezentată
  • 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.

    Specifica OpenCL 3.0 a fost prezentată
  • 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.

    Specifica OpenCL 3.0 a fost prezentată

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