Boli zverejnené finálne špecifikácie OpenCL 3.0

Konzornium Khronos, zodpovedné za vývoj špecifikácií rodiny OpenGL, Vulkan a OpenCL, vyhlásil o publikácii finálnych špecifikácií OpenCL 3.0, definujúcich API a rozšírenia jazyka C na organizáciu multiplatformových paralelných výpočtov s využitím viacjadrových CPU, GPU, FPGA, DSP a iných špecializovaných čipov, od tých, ktoré sa používajú v superpočítačoch a cloudových serveroch, po čipy, ktoré môžeme nájsť v mobilných zariadeniach a zabudovanej technike. Štandard OpenCL je úplne otvorený a nevyžaduje licenčné poplatky.

Zároveň bol zverejnený otvorený OpenCL SDK s nástrojmi, príkladmi, dokumentáciou, hlavičkovými súbormi, obalmi pre C++ a C knižnicami na vývoj aplikácií kompatibilných s OpenCL 3.0. Taktiež je predstavená počiatočná implementácia OpenCL 3.0 na báze kompilátora Clang, ktorá je v štádiu recenzovania patchov na zaradenie do hlavného zloženia LLVM. Na práci na štandarde sa zúčastnili aj spoločnosti ako IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments a Toshiba.

Boli zverejnené finálne špecifikácie OpenCL 3.0

Najvýraznejšie , taktiež napísaná v jazyku Rust. Tokio umožňuje vytvárať vysoko výkonné aplikácie na báze eventovo orientovanej architektúry (Event-driven), podporujúce multithreading a spracovanie sieťových požiadaviek v asynchrónnom režime. OpenCL 3.0:

  • API OpenCL 3.0 teraz pokrýva všetky verzie OpenCL (1.2, 2.x), bez poskytovania samostatných špecifikácií pre každú verziu. OpenCL 3.0 predpokladá možnosť rozšírenia základnej funkčnosti prostredníctvom integrácie ďalších špecifikácií, ktoré sa budú vrstvať vo forme možností, bez zablokovania monolitického charakteru OpenCL 1.2/2.x.
  • Povinnou je vyhlásená iba funkčnosť zodpovedajúca OpenCL 1.2, zatiaľ čo všetky možnosti, ktoré sú navrhnuté v špecifikáciách OpenCL 2.x, sú považované za voliteľné. Takýto prístup zjednoduší vytváranie špecializovaných implementácií kompatibilných s OpenCL 3.0 a rozšíri spektrum zariadení, na ktorých môže byť OpenCL 3.0 používané. Napríklad výrobcovia môžu implementovať podporu OpenCL 3.0, aniž by implementovali samostatné možnosti OpenCL 2.x. Na prístup k voliteľným možnostiam jazyka v OpenCL 3.0 bola pridaná systém overovacích dotazov, ktorý umožňuje hodnotiť podporu jednotlivých prvkov API, ako aj špeciálne makrá.
  • Unifikácia s predchádzajúcimi špecifikáciami uľahčuje prevod aplikácií na OpenCL 3.0. Aplikácie OpenCL 1.2 budú schopné fungovať na zariadeniach s podporou OpenCL 3.0 bez zmien. Aplikácie OpenCL 2.x tiež nebudú vyžadovať zmeny v kóde, ale ak prostredie OpenCL 3.0 poskytuje potrebnú funkcionalitu (pre zabezpečenie prenosnosti budúcich aplikácií OpenCL 2.x sa odporúča pridať kontrolné dotazy na hodnotenie podpory využívaných schopností OpenCL 2.x). Vývojári ovládačov s implementáciami OpenCL budú môcť jednoducho aktualizovať svoje produkty na OpenCL 3.0 pridaním iba spracovania dotazov na existujúce API volania a postupne zvyšovať funkcionalitu.
  • Špecifikácia OpenCL 3.0 bola prispôsobená prostrediu, rozšíreniam a špecifikáciám univerzálneho medzičasu SPIR-V, ktoré sa tiež používa v API Vulkan. Podpora špecifikácie SPIR-V 1.3 bola zahrnutá do základnej výbavy OpenCL 3.0 ako voliteľná možnosť. Prostredníctvom použitia medzičasu SPIR-V pre výpočtové jadrá bola pridaná podpora operácií so subgroupami.
    Boli zverejnené finálne špecifikácie OpenCL 3.0
  • Bol pridaný podpora rozšírenia pre vykonávanie asynchrónnych DMA operácií (Asynchronous DMA), ktoré sú podporované v DSP-podobných čipoch s priamym prístupom do pamäte. Asynchronous DMA umožňuje používať DMA transakcie na prenos dát medzi globálnou a lokálnou pamäťou v asynchrónnom režime, paralelne s vykonávanými výpočtami alebo inými operáciami prenosu dát.
  • Špecifikácia rozšírení paralelného programovania pre jazyk C bola aktualizovaná na verziu 3.0, a vývoj jazykových rozšírení OpenCL pre C++ bol zastavený v prospech projektu „C++ for OpenCL“. C++ for OpenCL je kompilátor založený na Clang/LLVM a transliteruje jadrá na C++ a OpenCL C do medzičasu SPIR-V alebo nízkoúrovňového strojového kódu. Prostredníctvom translácie do SPIR-V je tiež organizované zostavovanie C++ aplikácií, ktoré používajú knižnicu šablón SYCL, uľahčujúcu vytváranie paralelných aplikácií.

    Boli zverejnené finálne špecifikácie OpenCL 3.0
  • Pre transláciu OpenCL cez API Vulkan sú navrhnuté kompilátor clspv, ktorý prevádza jadrá OpenCL do reprezentácie Vulkan SPIR-V, a vrstva clvk na zabezpečenie fungovania API OpenCL nad Vulkanom.

    Boli zverejnené finálne špecifikácie OpenCL 3.0

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster