Prezantohet specifikimi OpenCL 3.0

Shqetësimi Khronos, përgjegjës për zhvillimin e specifikimeve të familjes OpenGL, Vulkan dhe OpenCL, i shpallur në përfundimin e zhvillimit të specifikimeve OpenCL 3.0 që përcaktojnë API-të dhe zgjerimet e gjuhës C për organizimin e llogaritjeve paralele ndër-platformë duke përdorur CPU me shumë bërthama, GPU, FPGA, DSP dhe çipa të tjerë të specializuar, nga ato të përdorura në superkompjuterë dhe serverë cloud te çipat që mund të gjenden në pajisjet celulare dhe teknologjinë e integruar. Standardi OpenCL është plotësisht i hapur dhe nuk kërkon tarifa licence. Në punën për standardin morën pjesë kompani të tilla si IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments dhe Toshiba.

Në fazën aktuale, specifikimit i është caktuar statusi i përkohshëm, i cili nënkupton mundësinë e përsosjes bazuar në reagimet e dërguara nëpërmjet GitHub. Pasi të merren parasysh komentet, specifikimi do të finalizohet dhe do të publikohet një grup testimi përfundimtar për të testuar përputhshmërinë e zbatimeve ekzistuese.

Prezantohet specifikimi OpenCL 3.0

Më i dukshëm karakteristikat OpenCL 3.0:

  • API OpenCL 3.0 tani mbulon të gjitha versionet e OpenCL (1.2, 2.x), pa ofruar specifikime të veçanta për secilin version. OpenCL 3.0 ofron mundësinë për të zgjeruar funksionalitetin bazë përmes integrimit të specifikimeve shtesë që do të shtresohen në formën e opsioneve pa bllokuar natyrën monolitike të OpenCL 1.2/2.X.
  • Vetëm funksionaliteti që përputhet me OpenCL 1.2 deklarohet i detyrueshëm dhe të gjitha veçoritë e propozuara në specifikimet OpenCL 2.x klasifikohen si opsionale. Kjo qasje do ta bëjë më të lehtë krijimin e implementimeve të personalizuara që janë në përputhje me OpenCL 3.0 dhe do të zgjerojë gamën e pajisjeve në të cilat mund të përdoret OpenCL 3.0. Për shembull, prodhuesit mund të zbatojnë mbështetjen e OpenCL 3.0 pa zbatuar veçori specifike OpenCL 2.x. Për të aksesuar veçoritë e gjuhës opsionale, OpenCL 3.0 ka shtuar një sistem pyetjesh testimi që ju lejon të vlerësoni mbështetjen e elementeve individuale të API, si dhe makrove të veçanta.
  • Unifikimi me specifikimet e lëshuara më parë e bën më të lehtë migrimin e aplikacioneve në OpenCL 3.0. Aplikacionet OpenCL 1.2 do të mund të ekzekutohen në pajisjet që mbështesin OpenCL 3.0 pa modifikim. Aplikacionet OpenCL 2.x gjithashtu nuk do të kërkojnë ndryshime kodi, për sa kohë që mjedisi OpenCL 3.0 ofron funksionalitetin e kërkuar (për të siguruar transportueshmëri në të ardhmen, aplikacionet OpenCL 2.x rekomandohen të shtojnë pyetje testimi për të vlerësuar mbështetjen për veçoritë OpenCL 2.x duke u përdorur). Zhvilluesit e drejtuesve me implementime OpenCL mund t'i përmirësojnë lehtësisht produktet e tyre në OpenCL 3.0, duke shtuar vetëm përpunimin e pyetjeve për thirrje të caktuara API dhe gradualisht të rrisin funksionalitetin me kalimin e kohës.
  • Specifikimi OpenCL 3.0 është përafruar me mjedisin, zgjerimet dhe specifikimet e përfaqësimit të ndërmjetëm gjenerik SPIR-V, i cili përdoret gjithashtu nga Vulkan API. Mbështetja për specifikimin SPIR-V 1.3 përfshihet në bazën OpenCL 3.0 si një veçori opsionale. Nëpërmjet përdorimit të një përfaqësimi të ndërmjetëm SPIR-V mbështetje për operacionet me nëngrupe është shtuar për bërthamat kompjuterike.
    Prezantohet specifikimi OpenCL 3.0

  • Mbështetje e shtuar për një shtesë për kryerjen e operacioneve asinkrone DMA (Asynchronous DMA), e mbështetur në çipa të ngjashëm me DSP me akses të drejtpërdrejtë memorie. DMA asinkrone bën të mundur përdorimin e transaksioneve DMA për transferimin e të dhënave midis memories globale dhe lokale në mënyrë asinkrone, paralelisht me llogaritjet ose operacionet e tjera të transferimit të të dhënave.
  • Specifikimi i Zgjerimeve të Programimit Paralel C është përditësuar në versioni 3.0, dhe zhvillimi i shtesave të gjuhës OpenCL për C++ u ndërpre në favor të projektit "C++ për OpenCL". C++ për OpenCL është një përpilues i bazuar në Clang/LLVM dhe transmetimit Bërthamat C++ dhe OpenCL C në përfaqësimin e ndërmjetëm SPIR-V ose kodin e makinës të nivelit të ulët. Nëpërmjet transmetimit, SPIR-V organizon gjithashtu montimin e aplikacioneve C++ duke përdorur bibliotekën e shablloneve SYCL, e cila thjeshton krijimin e aplikacioneve paralele.

    Prezantohet specifikimi OpenCL 3.0

  • Është propozuar një përpilues për transmetimin e OpenCL përmes Vulkan API clspv, i cili konverton kernelët OpenCL në një paraqitje Vulkan SPIR-V dhe një shtresë clvk për të mundësuar OpenCL API të funksionojë në krye të Vulkan.

    Prezantohet specifikimi OpenCL 3.0

Burimi: opennet.ru

Shto një koment