Iyo Khronos kunetseka, ine basa rekugadzira iyo OpenGL, Vulkan uye OpenCL mhuri yakatarwa, pakuburitswa kwezvakatemwa zvekupedzisira , kutsanangura maAPI uye mawedzero emutauro weC kuronga muchinjika-chikuva chakafanana komputa uchishandisa akawanda-core CPUs, GPUs, FPGAs, DSPs uye mamwe machipisi akasarudzika, kubva kune ayo anoshandiswa mumakomputa makuru nemaseva egore kusvika kumachipisi anogona kuwanikwa munharembozha uye. yakavakirwa-mukati tekinoroji. Iyo OpenCL chiyero yakavhurika zvachose uye haidi muripo werezinesi.
Panguva imwe chete vhura OpenCL SDK ine maturusi, mienzaniso, zvinyorwa, misoro mafaera, C++ zvinosungirirwa uye C maraibhurari ekugadzira maapplication anoenderana neOpenCL 3.0. Zvakare kwekutanga kuita kweOpenCL 3.0 zvichibva pane iyo Clang compiler, iri padanho rekuongorora zvigamba zvekuiswa muchimiro chikuru cheLLVM. Makambani akadai IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments uye Toshiba akatora chikamu mubasa pachiyero.
Zvinonyanya kukosha :
- Iyo OpenCL 3.0 API ikozvino inovhara ese mavhezheni eOpenCL (1.2, 2.x), pasina kupa zvakapatsanurwa kune yega yega vhezheni. OpenCL 3.0 inopa kugona kwekuwedzera core performance kuburikidza nekubatanidzwa kwemamwe maratidziro ayo anozoiswa muchimiro chesarudzo pasina kuvhara monolithic chimiro cheOpenCL 1.2/2.X.
- Kushanda chete kunoenderana neOpenCL 1.2 ndiko kunonzi kunofanirwa kuitwa, uye zvese zvinotsanangurwa muOpenCL 2.x zvakatemwa zvinoiswa mumhando yesarudzo. Iyi nzira ichaita kuti zvive nyore kugadzira tsika dzekushandisa dzinoenderana neOpenCL 3.0, uye ichawedzera huwandu hwemidziyo iyo OpenCL 3.0 inogona kushandiswa. Semuyenzaniso, vagadziri vanogona kushandisa OpenCL 3.0 tsigiro vasina kuita chaiyo OpenCL 2.x maficha. Kuti uwane zvingasarudzika zvemutauro, OpenCL 3.0 yakawedzera hurongwa hwebvunzo dzebvunzo iyo inobvumidza iwe kuti uongorore kutsigirwa kweiyo yega API zvinhu, pamwe neakakosha macros.
- Kubatanidzwa nezvakamboburitswa zvakatemwa kunoita kuti zvive nyore kutamisa maapplication kuenda kuOpenCL 3.0. OpenCL 1.2 maapplication achakwanisa kumhanya pamidziyo inotsigira OpenCL 3.0 isina kugadziridzwa. OpenCL 2.x zvikumbiro hazvizodewo shanduko yekodhi, chero nharaunda yeOpenCL 3.0 ichipa mashandiro anodiwa (kuti ive nechokwadi chekutakurika kweramangwana, OpenCL 2.x zvikumbiro zvinokurudzirwa kuwedzera mibvunzo yebvunzo kuti iongorore rutsigiro rweOpenCL 2.x maficha. kushandiswa). Vagadziri vevatyairi vane OpenCL mashandisirwo vanogona kukwidziridza zvigadzirwa zvavo zviri nyore kuOpenCL 3.0, vachiwedzera chete query process kune mamwe ma API mafoni, uye zvishoma nezvishoma kuwedzera kushanda nekufamba kwenguva.
- Iyo OpenCL 3.0 tsananguro inofambirana nenharaunda, mawedzero, uye zvakatemwa zveSPIR-V generic yepakati inomiririra, iyo inoshandiswa zvakare neVulkan API. Tsigiro yeSPIR-V 1.3 yakatarwa inosanganisirwa mukati meiyo OpenCL 3.0 sechinhu chinosarudzika. Kuburikidza nekushandiswa kwemumiriri wepakati tsigiro yekushanda nemasubgroups yakawedzerwa pacomputing cores.
- Yakawedzerwa tsigiro yekuwedzera kwekuita asynchronous DMA mashandiro (Asynchronous DMA), inotsigirwa muDSP-senge machipisi ane yakananga ndangariro kuwana. Asynchronous DMA inoita kuti zvikwanise kushandisa DMA transaction kuendesa data pakati peyepasirese neyemuno ndangariro asynchronously, mukufambirana nekuverenga kana mamwe mabasa ekufambisa data.
- Iyo C Parallel Programming Extensions yakatarwa yakagadziridzwa kuti , uye kuvandudzwa kweOpenCL mutauro wekuwedzera kweC++ kwakamiswa nekuda kwe "C++ yeOpenCL" chirongwa. C++ yeOpenCL muunganidzwa wakavakirwa paClang/LLVM uye C++ uye OpenCL C kernels muSPIR-V yepakati inomiririra kana yakaderera-level muchina kodhi. Kuburikidza nekutepfenyura, SPIR-V inorongawo kuungana kweC++ application vachishandisa raibhurari yetemplate yeSYCL, iyo inorerutsa kugadzira maapplication akafanana.
- A compiler yakakurudzirwa kutepfenyura OpenCL kuburikidza neVulkan API , iyo inoshandura OpenCL kernels kuita Vulkan SPIR-V inomiririra, uye layer kugonesa OpenCL API kushanda pamusoro peVulkan.
Source: opennet.ru
