Specificațiile finale OpenCL 3.0 publicate

Concernul Khronos, responsabil pentru dezvoltarea specificațiilor pentru familia OpenGL, Vulkan și OpenCL, a anunțat о публикации финальных спецификаций OpenCL 3.0, определяющих API и расширения языка С для организации кросс-платформенных параллельных вычислений с использованием многоядерных CPU, GPU, FPGA, DSP и других специализированных чипов, от тех, что применяются в суперкомпьютерах и облачных серверах, до чипов, которые можно встретить в мобильных устройствах и встраиваемой технике. Стандарт OpenCL полностью открыт и не требует лицензионных отчислений.

Simultan publicat открытый OpenCL SDK с инструментарием, примерами, документацией, заголовочными файлами, обвязками для C++ и Си-библиотеками для разработки приложений, совместимых с OpenCL 3.0. Также este prezentat начальная реализация OpenCL 3.0 на базе компилятора Clang, которая находится на стадии рецензирования патчей для включения в основной состав LLVM. В работе над стандартом приняли участие такие компании, как IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments и Toshiba.

Specificațiile finale OpenCL 3.0 publicate

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țiile finale OpenCL 3.0 publicate

  • 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țiile finale OpenCL 3.0 publicate

  • 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țiile finale OpenCL 3.0 publicate

Sursa: opennet.ru

Adauga un comentariu