Boli zverejnené konečné špecifikácie OpenCL 3.0

Koncern Khronos, zodpovedný za vývoj špecifikácií rodiny OpenGL, Vulkan a OpenCL, oznámil о публикации финальных спецификаций OpenCL 3.0, определяющих API и расширения языка С для организации кросс-платформенных параллельных вычислений с использованием многоядерных CPU, GPU, FPGA, DSP и других специализированных чипов, от тех, что применяются в суперкомпьютерах и облачных серверах, до чипов, которые можно встретить в мобильных устройствах и встраиваемой технике. Стандарт OpenCL полностью открыт и не требует лицензионных отчислений.

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

Boli zverejnené konečné špecifikácie OpenCL 3.0

Najpozoruhodnejšie rysy OpenCL 3.0:

  • OpenCL 3.0 API teraz pokrýva všetky verzie OpenCL (1.2, 2.x) bez poskytovania samostatných špecifikácií pre každú verziu. OpenCL 3.0 poskytuje možnosť rozšíriť základné funkcie prostredníctvom integrácie ďalších špecifikácií, ktoré budú vrstvené vo forme možností bez blokovania monolitickej povahy OpenCL 1.2/2.X.
  • Iba funkcie, ktoré sú v súlade s OpenCL 1.2, sú vyhlásené za povinné a všetky funkcie navrhnuté v špecifikáciách OpenCL 2.x sú klasifikované ako voliteľné. Tento prístup uľahčí vytváranie vlastných implementácií, ktoré sú kompatibilné s OpenCL 3.0, a rozšíri škálu zariadení, na ktorých je možné OpenCL 3.0 použiť. Výrobcovia môžu napríklad implementovať podporu OpenCL 3.0 bez implementácie špecifických funkcií OpenCL 2.x. Pre prístup k voliteľným jazykovým funkciám OpenCL 3.0 pridal systém testovacích dotazov, ktorý umožňuje vyhodnotiť podporu jednotlivých prvkov API, ako aj špeciálnych makier.
  • Zjednotenie s predtým vydanými špecifikáciami uľahčuje migráciu aplikácií na OpenCL 3.0. Aplikácie OpenCL 1.2 budú môcť bežať na zariadeniach, ktoré podporujú OpenCL 3.0 bez úprav. Aplikácie OpenCL 2.x tiež nebudú vyžadovať zmeny kódu, pokiaľ prostredie OpenCL 3.0 poskytuje požadovanú funkčnosť (na zabezpečenie budúcej prenosnosti sa aplikáciám OpenCL 2.x odporúča pridať testovacie dotazy na vyhodnotenie podpory funkcií OpenCL 2.x používaný). Vývojári ovládačov s implementáciou OpenCL môžu jednoducho upgradovať svoje produkty na OpenCL 3.0, pričom pridávajú iba spracovanie dotazov pre určité volania API a postupne zvyšujú funkčnosť.
  • Špecifikácia OpenCL 3.0 je v súlade s prostredím, rozšíreniami a špecifikáciami generickej strednej reprezentácie SPIR-V, ktorú používa aj Vulkan API. Podpora špecifikácie SPIR-V 1.3 je súčasťou jadra OpenCL 3.0 ako voliteľná funkcia. Prostredníctvom použitia strednej reprezentácie SPIR-V pre výpočtové jadrá bola pridaná podpora operácií s podskupinami.
    Boli zverejnené konečné špecifikácie OpenCL 3.0

  • Pridaná podpora pre rozšírenie na vykonávanie asynchrónnych DMA operácií (Asynchronous DMA), podporované v čipoch podobných DSP s priamym prístupom do pamäte. Asynchrónne DMA umožňuje použiť transakcie DMA na asynchrónny prenos údajov medzi globálnou a lokálnou pamäťou, paralelne s výpočtami alebo inými operáciami prenosu údajov.
  • Špecifikácia C Parallel Programming Extensions bola aktualizovaná na verzia 3.0a vývoj rozšírení jazyka OpenCL pre C++ bol prerušený v prospech projektu „C++ for OpenCL“. C++ pre OpenCL je kompilátor založený na Clang/LLVM a vysielanie C++ a OpenCL C jadrá do SPIR-V strednej reprezentácie alebo nízkoúrovňového strojového kódu. Prostredníctvom vysielania SPIR-V organizuje aj zostavovanie C++ aplikácií pomocou knižnice šablón SYCL, čo zjednodušuje vytváranie paralelných aplikácií.

    Boli zverejnené konečné špecifikácie OpenCL 3.0

  • Bol navrhnutý kompilátor na vysielanie OpenCL cez Vulkan API clspv, ktorý konvertuje jadrá OpenCL na reprezentáciu Vulkan SPIR-V a vrstvu clvk aby OpenCL API fungovalo nad Vulkanom.

    Boli zverejnené konečné špecifikácie OpenCL 3.0

Zdroj: opennet.ru

Pridať komentár