Specificația OpenCL 3.0 a fost introdusă

Concernul Khronos, responsabil pentru dezvoltarea specificațiilor pentru familia OpenGL, Vulkan și OpenCL, a anunțat privind finalizarea dezvoltării specificațiilor OpenCL 3.0 care definesc API-uri și extensii ale limbajului C pentru organizarea calculului paralel multiplatform folosind procesoare multi-core, GPU-uri, FPGA-uri, DSP-uri și alte cipuri specializate, dintre cele utilizate în supercomputere și servere cloud la cipuri care pot fi găsite în dispozitivele mobile și în tehnologia încorporată. Standardul OpenCL este complet deschis și nu necesită taxe de licență. Companii precum IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments și Toshiba au participat la lucrul la standard.

În stadiul actual, specificației i s-a atribuit statut provizoriu, ceea ce implică posibilitatea de rafinare pe baza feedback-ului transmis prin GitHub. Odată ce comentariile sunt luate în considerare, specificația va fi finalizată și va fi publicată o suită finală de teste pentru a testa compatibilitatea implementărilor existente.

Specificația OpenCL 3.0 a fost introdusă

Cel mai notabil caracteristici 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 oferă capacitatea de a extinde funcționalitatea de bază prin integrarea unor specificații suplimentare care vor fi stratificate sub formă de opțiuni fără a bloca natura monolitică a OpenCL 1.2/2.X.
  • Doar funcționalitatea care respectă OpenCL 1.2 este declarată obligatorie, iar toate caracteristicile propuse în specificațiile OpenCL 2.x sunt clasificate ca opționale. Această abordare va facilita crearea de implementări personalizate compatibile cu OpenCL 3.0 și va extinde gama de dispozitive pe care poate fi utilizat OpenCL 3.0. De exemplu, producătorii pot implementa suportul OpenCL 3.0 fără a implementa caracteristici specifice OpenCL 2.x. Pentru a accesa funcțiile opționale ale limbajului, OpenCL 3.0 a adăugat un sistem de interogări de testare care vă permite să evaluați suportul elementelor API individuale, precum și macrocomenzi speciale.
  • Unificarea cu specificațiile lansate anterior facilitează migrarea aplicațiilor către OpenCL 3.0. Aplicațiile OpenCL 1.2 vor putea rula pe dispozitive care acceptă OpenCL 3.0 fără modificări. De asemenea, aplicațiile OpenCL 2.x nu vor necesita modificări de cod, atâta timp cât mediul OpenCL 3.0 oferă funcționalitatea necesară (pentru a asigura portabilitatea viitoare, se recomandă aplicațiilor OpenCL 2.x să adauge interogări de testare pentru a evalua suportul pentru caracteristicile OpenCL 2.x folosit). Dezvoltatorii de drivere cu implementări OpenCL își pot actualiza cu ușurință produsele la OpenCL 3.0, adăugând doar procesarea interogărilor pentru anumite apeluri API și crește treptat funcționalitatea în timp.
  • Specificația OpenCL 3.0 este aliniată cu mediul, extensiile și specificațiile reprezentării intermediare generice SPIR-V, care este, de asemenea, utilizată de API-ul Vulkan. Suportul pentru specificația SPIR-V 1.3 este inclus în nucleul OpenCL 3.0 ca o caracteristică opțională. Prin utilizarea unei reprezentări intermediare SPIR-V a fost adăugat suport pentru operațiuni cu subgrupuri pentru nucleele de calcul.
    Specificația OpenCL 3.0 a fost introdusă

  • S-a adăugat suport pentru o extensie pentru efectuarea de operațiuni DMA asincrone (Asynchronous DMA), acceptată în cipuri asemănătoare DSP cu acces direct la memorie. DMA asincron face posibilă utilizarea tranzacțiilor DMA pentru a transfera date între memoria globală și locală în mod asincron, în paralel cu calcule sau alte operațiuni de transfer de date.
  • Specificația C Parallel Programming Extensions a fost actualizată la versiunea 3.0, iar dezvoltarea extensiilor de limbaj OpenCL pentru C++ a fost întreruptă în favoarea proiectului „C++ pentru OpenCL”. C++ pentru OpenCL este un compilator bazat pe Clang/LLVM și de difuzare Nuclee C++ și OpenCL C în reprezentare intermediară SPIR-V sau cod mașină de nivel scăzut. Prin difuzare, SPIR-V organizează și asamblarea aplicațiilor C++ folosind biblioteca de șabloane SYCL, care simplifică crearea de aplicații paralele.

    Specificația OpenCL 3.0 a fost introdusă

  • A fost propus un compilator pentru difuzarea OpenCL prin API-ul Vulkan clspv, care convertește nucleele OpenCL într-o reprezentare Vulkan SPIR-V și un strat clvk pentru a permite API-ului OpenCL să funcționeze pe Vulkan.

    Specificația OpenCL 3.0 a fost introdusă

Sursa: opennet.ru

Adauga un comentariu