Specificațiile finale ale OpenCL 3.0 au fost deja lansate

Acum câteva luni am împărtășit aici pe blog vestea lansarea dezvoltării OpenCL 3.0 de către Preocuparea Khronos (Responsabil pentru dezvoltarea specificațiilor pentru familia OpenGL, Vulkan și OpenCL).

Și până de curând a fost asta lansarea specificațiilor finale OpenCL 3.0 anunțate, definirea API-urilor și extensiilor limbajului C pentru organizarea calculelor paralele multiplatformă folosind procesoare multi-core, GPU-uri, FPGA-uri, DSP-uri și alte cipuri specializate de la cele utilizate în supercomputerele și serverele cloud la cipurile care pot fi găsite în dispozitivele mobile și tehnologia integrată.

În același timp, a fost lansat un OpenCL SDK open source cu instrumente, exemple, documentație, fișiere antet, linkuri pentru bibliotecile C ++ și C pentru dezvoltarea aplicațiilor compatibile OpenCL 3.0.

Este prezentată și implementarea inițială a OpenCL 3.0 bazată pe compilatorul Clang, care se află în etapa de evaluare inter pares pentru a fi inclus în pachetul principal LLVM. Companii precum IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments și Toshiba au contribuit la standard.

Astăzi, Grupul de lucru Khronos® OpenCL ™ este încântat să anunțe lansarea specificațiilor OpenCL 3.0 finalizate, inclusiv o nouă specificație unificată OpenCL C 3.0, împreună cu o lansare inițială timpurie a unui SDK Khronos OpenCL pentru a permite dezvoltatorilor să se ridice rapid accelerați cu OpenCL.

Caracteristici principale OpenCL 3.0

API OpenCL 3.0 acum acoperă toate versiunile OpenCL (1.2, 2x), fără a furniza specificații separate pentru fiecare versiune.

OpenCL 3.0 oferă posibilitatea de a extinde funcționalitatea de bază prin integrarea unor specificații suplimentare care se vor suprapune sub formă de opțiuni fără a bloca natura monolitică a OpenCL 1.2 / 2.X.

Numai funcționalitatea care este conformă OpenCL 1.2 este declarat obligatoriu, și toate caracteristicile propuse în Specificațiile OpenCL 2.x sunt denumite opționale.

Această abordare va simplifica crearea de implementări specializate care sunt 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 caracteristici specifice OpenCL 2.x. Pentru a accesa funcțiile opționale de limbă, a fost adăugat un sistem de cerere de testare la OpenCL 3.0 pentru a evalua suportul pentru elemente API individuale, precum și macrocomenzi speciale.

Unificarea cu specificațiile lansate anterior facilitează traducerea aplicațiilor în OpenCL 3.0. Aplicațiile OpenCL 1.2 vor putea rula pe dispozitive care acceptă OpenCL 3.0 fără modificări.

Aplicațiile OpenCL 2.x, de asemenea, nu necesită modificări de cod, dar dacă mediul OpenCL 3.0 oferă funcționalitatea necesară (pentru portabilitatea viitoare, aplicațiile OpenCL 2.x sunt încurajate să adauge interogări de testare pentru a evalua compatibilitatea cu caracteristicile OpenCL 2.x utilizate).

Dezvoltatorii de drivere cu implementări OpenCL își pot actualiza cu ușurință produsele la OpenCL 3.0 adăugând doar procesarea cererilor pentru anumite apeluri API și crescând treptat funcționalitatea în timp.

Specificația OpenCL 3.0 a fost aliniată cu mediul, extensiile și specificațiile a intermediarului generic SPIR-V, care este, de asemenea, utilizat în API-ul Vulkan. Suportul pentru specificația SPIR-V 1.3 este inclus în OpenCL 3.0 principal ca o caracteristică opțională. Suportul pentru operațiuni cu subgrupuri a fost adăugat prin utilizarea reprezentării intermediare SPIR-V pentru nucleele de calcul.

Pe lângă asta a adăugat suport pentru o extensie pentru efectuarea operațiunilor DMA Asincron acceptat pe cipuri DMA de tip DSP.

DMA asincron face posibilă utilizarea tranzacțiilor DMA pentru a transfera date între memoria globală și locală în mod asincron, în paralel cu calculele în curs sau alte transferuri de date.

Specificarea extensiilor de programare paralelă pentru limbaj C a fost actualizat la versiunea 3.0 iar dezvoltarea extensiilor de limbaj OpenCL pentru C ++ este întreruptă în favoarea proiectului „C ++ pentru OpenCL”.

Pentru a traduce OpenCL prin API-ul Vulkan, este propus compilatorul clspv, care convertește nucleele OpenCL în reprezentarea Vulkan SPIR-V și stratul clvk pentru a se asigura că API-ul OpenCL funcționează deasupra Vulkan.

Fuente: https://www.khronos.org/


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.