OpenCL 3.0-specifo lanĉita

La konzerno Khronos, respondeca pri evoluigado de la specifoj de la familio OpenGL, Vulkan kaj OpenCL, anoncita pri la kompletigo de la evoluo de OpenCL 3.0-specifoj kiuj difinas APIojn kaj etendaĵojn de la C-lingvo por organizado de transplatforma paralela komputado uzante plurkernajn CPUojn, GPUojn, FPGAojn, DSPojn kaj aliajn specialiĝintajn blatojn, de tiuj uzitaj en superkomputiloj kaj nubaj serviloj. al blatoj troveblaj en porteblaj aparatoj kaj enigita teknologio. La OpenCL-normo estas tute malferma kaj ne postulas licencajn kotizojn. Firmaoj kiel IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments kaj Toshiba partoprenis en la laboro pri la normo.

En la nuna stadio, la specifo ricevis provizoran statuson, kio implicas la eblecon de rafinado bazita sur religoj senditaj per GitHub. Post kiam la komentoj estas konsiderataj, la specifo estos finpretigita kaj fina testaro estos publikigita por testi la kongruon de ekzistantaj efektivigoj.

OpenCL 3.0-specifo lanĉita

Plej rimarkinda Karakterizaĵoj OpenCL 3.0:

  • La OpenCL 3.0 API nun kovras ĉiujn versiojn de OpenCL (1.2, 2.x), sen disponigado de apartaj specifoj por ĉiu versio. OpenCL 3.0 disponigas la kapablon etendi kernan funkciecon per la integriĝo de kromaj specifoj kiuj estos tavoligitaj en la formo de opcioj sen blokado de la monolitika naturo de OpenCL 1.2/2.X.
  • Nur funkcieco kiu konformas kun OpenCL 1.2 estas deklarita deviga, kaj ĉiuj funkcioj proponitaj en la specifoj de OpenCL 2.x estas klasifikitaj kiel laŭvolaj. Ĉi tiu aliro faciligos krei kutimajn efektivigojn kongruajn kun OpenCL 3.0, kaj vastigos la gamon da aparatoj sur kiuj OpenCL 3.0 povas esti uzata. Ekzemple, produktantoj povas efektivigi OpenCL 3.0 subtenon sen efektivigado de specifaj OpenCL 2.x funkcioj. Por aliri laŭvolajn lingvajn funkciojn, OpenCL 3.0 aldonis sistemon de testaj demandoj, kiu ebligas al vi taksi la subtenon de individuaj API-elementoj, same kiel specialajn makroojn.
  • Unuiĝo kun antaŭe publikigitaj specifoj faciligas migri aplikojn al OpenCL 3.0. OpenCL 1.2-aplikoj povos funkcii per aparatoj kiuj subtenas OpenCL 3.0 sen modifo. OpenCL 2.x-aplikoj ankaŭ ne postulos kodŝanĝojn, kondiĉe ke la OpenCL 3.0-medio disponigas la bezonatan funkciecon (por certigi estontan porteblon, OpenCL 2.x-aplikoj rekomendas aldoni testajn demandojn por taksi subtenon por la OpenCL 2.x-ecoj. estante uzata). Ŝoforprogramistoj kun OpenCL-efektivigoj povas facile ĝisdatigi siajn produktojn al OpenCL 3.0, aldonante nur demandpretigon por certaj API-vokoj, kaj iom post iom pliigas funkciecon laŭlonge de la tempo.
  • La OpenCL 3.0-specifo estas vicigita kun la medio, etendaĵoj kaj specifoj de la SPIR-V senmarka meza reprezentado, kiu ankaŭ estas uzata de la Vulkan API. Subteno por la SPIR-V 1.3-specifo estas inkluzivita en la kerno OpenCL 3.0 kiel laŭvola trajto. Per la uzo de meza reprezentado SPIR-V subteno por operacioj kun subgrupoj estis aldonita por komputikkernoj.
    OpenCL 3.0-specifo lanĉita

  • Aldonita subteno por etendaĵo por elfarado de nesinkronaj DMA-operacioj (Asynchronous DMA), subtenata en DSP-similaj blatoj kun rekta memoraliro. Nesinkrona DMA ebligas uzi DMA-transakciojn por transdoni datumojn inter tutmonda kaj loka memoro nesinkrone, paralele kun kalkuloj aŭ aliaj datumtransiga operacioj.
  • La specifo de C Parallel Programming Extensions estis ĝisdatigita al versio 3.0, kaj la evoluo de OpenCL-lingvaj etendaĵoj por C++ estis nuligita en favoro de la "C++ for OpenCL" projekto. C++ por OpenCL estas kompililo bazita sur Clang/LLVM kaj dissendado C++ kaj OpenCL C-kernoj en SPIR-V mezan reprezentantaron aŭ malaltnivelan maŝinkodon. Per elsendado, SPIR-V ankaŭ organizas la kunigon de C++-aplikoj uzante la SYCL-ŝablonbibliotekon, kiu simpligas la kreadon de paralelaj aplikoj.

    OpenCL 3.0-specifo lanĉita

  • Kompililo estis proponita por dissendado de OpenCL per la Vulkan API clspv, kiu konvertas OpenCL-kernojn al Vulkan SPIR-V-reprezentantaro, kaj tavolo clvk por ebligi la OpenCL-API funkcii super Vulkan.

    OpenCL 3.0-specifo lanĉita

fonto: opennet.ru

Aldoni komenton