Ik OpenCL 3.0 pato ti a tẹjade

Ibakcdun Khronos, lodidi fun idagbasoke OpenGL, Vulkan ati awọn alaye idile OpenCL, kede lori atejade ti ik ni pato ṢiiCL 3.0, ti n ṣalaye awọn API ati awọn amugbooro ti ede C fun siseto iširo-iṣiro iru ẹrọ agbelebu ni lilo awọn CPUs multi-core, GPUs, FPGAs, DSPs ati awọn eerun amọja miiran, lati awọn ti a lo ninu awọn supercomputers ati awọn olupin awọsanma si awọn eerun ti o le rii ni awọn ẹrọ alagbeka ati -itumọ ti ni ọna ẹrọ. Iwọn OpenCL ti ṣii patapata ati pe ko nilo awọn idiyele iwe-aṣẹ.

Nigbakanna atejade Ṣii Ṣii CL SDK pẹlu awọn irinṣẹ, awọn apẹẹrẹ, iwe, awọn faili akọsori, awọn abuda C ++ ati awọn ile-ikawe C fun idagbasoke awọn ohun elo ibaramu pẹlu OpenCL 3.0. Bakannaa gbekalẹ imuse ibẹrẹ ti OpenCL 3.0 ti o da lori alakojo Clang, eyiti o wa ni ipele ti atunwo awọn abulẹ fun ifisi ninu eto akọkọ ti LLVM. Awọn ile-iṣẹ bii IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ati Toshiba kopa ninu iṣẹ lori boṣewa.

Ik OpenCL 3.0 pato ti a tẹjade

Ohun akiyesi julọ awọn ẹya ṢiiCL 3.0:

  • OpenCL 3.0 API ni bayi bo gbogbo awọn ẹya ti OpenCL (1.2, 2.x), laisi ipese awọn alaye lọtọ fun ẹya kọọkan. OpenCL 3.0 n pese agbara lati faagun iṣẹ ṣiṣe mojuto nipasẹ isọpọ ti awọn alaye afikun ti yoo ṣe fẹlẹfẹlẹ ni irisi awọn aṣayan laisi idilọwọ ẹda monolithic ti OpenCL 1.2/2.X.
  • Iṣẹ ṣiṣe nikan ti o ni ibamu pẹlu OpenCL 1.2 ni a kede pe o jẹ dandan, ati gbogbo awọn ẹya ti a dabaa ni awọn pato OpenCL 2.x jẹ ipin bi iyan. Ọna yii yoo jẹ ki o rọrun lati ṣẹda awọn imuse aṣa ti o ni ibamu pẹlu OpenCL 3.0, ati pe yoo faagun ibiti awọn ẹrọ ti OpenCL 3.0 le ṣee lo. Fun apẹẹrẹ, awọn aṣelọpọ le ṣe atilẹyin OpenCL 3.0 laisi imuse awọn ẹya OpenCL 2.x kan pato. Lati wọle si awọn ẹya aṣayan ede, OpenCL 3.0 ti ṣafikun eto awọn ibeere idanwo ti o fun ọ laaye lati ṣe iṣiro atilẹyin ti awọn eroja API kọọkan, bakanna bi awọn macros pataki.
  • Iṣọkan pẹlu awọn pato ti a ti tu silẹ tẹlẹ jẹ ki o rọrun lati jade awọn ohun elo si OpenCL 3.0. Awọn ohun elo OpenCL 1.2 yoo ni anfani lati ṣiṣẹ lori awọn ẹrọ ti o ṣe atilẹyin OpenCL 3.0 laisi iyipada. Awọn ohun elo OpenCL 2.x kii yoo nilo awọn iyipada koodu, niwọn igba ti OpenCL 3.0 ayika n pese iṣẹ ṣiṣe ti o nilo (lati rii daju pe gbigbe ni ọjọ iwaju, awọn ohun elo OpenCL 2.x ni a ṣe iṣeduro lati ṣafikun awọn ibeere idanwo lati ṣe iṣiro atilẹyin fun awọn ẹya OpenCL 2.x lilo). Awọn olupilẹṣẹ awakọ pẹlu awọn imuse OpenCL le ṣe igbesoke awọn ọja wọn ni irọrun si OpenCL 3.0, fifi sisẹ ibeere nikan fun awọn ipe API kan, ati mimu iṣẹ ṣiṣe pọ si ni akoko pupọ.
  • OpenCL 3.0 sipesifikesonu ni ibamu pẹlu ayika, awọn amugbooro, ati awọn pato ti aṣoju agbedemeji SPIR-V jeneriki, eyiti Vulkan API tun lo. Atilẹyin fun sipesifikesonu SPIR-V 1.3 wa ninu OpenCL 3.0 mojuto bi ẹya iyan. Nipasẹ lilo aṣoju agbedemeji SPIR-V atilẹyin fun awọn iṣẹ pẹlu awọn ẹgbẹ-ẹgbẹ ti ni afikun fun awọn ohun kohun iširo.
    Ik OpenCL 3.0 pato ti a tẹjade

  • Atilẹyin ti a ṣafikun fun itẹsiwaju fun ṣiṣe awọn iṣẹ DMA asynchronous (DMA Asynchronous), ni atilẹyin ni awọn eerun DSP-bii pẹlu iraye si iranti taara. DMA Asynchronous jẹ ki o ṣee ṣe lati lo awọn iṣowo DMA lati gbe data laarin agbaye ati iranti agbegbe ni asynchronously, ni afiwe pẹlu awọn iṣiro tabi awọn iṣẹ gbigbe data miiran.
  • Sipesifikesonu Awọn amugbooro siseto C Parallel ti ni imudojuiwọn si ẹya 3.0, ati awọn idagbasoke ti OpenCL ede awọn amugbooro fun C ++ ti a dawọ ni ojurere ti awọn "C ++ fun OpenCL" ise agbese. C ++ fun OpenCL jẹ akopọ ti o da lori Clang / LLVM ati igbohunsafefe Awọn ekuro C ++ ati OpenCL C sinu aṣoju agbedemeji SPIR-V tabi koodu ẹrọ ipele kekere. Nipasẹ igbohunsafefe, SPIR-V tun ṣeto apejọ ti awọn ohun elo C ++ nipa lilo ile-ikawe awoṣe SYCL, eyiti o rọrun lati ṣẹda awọn ohun elo ti o jọra.

    Ik OpenCL 3.0 pato ti a tẹjade

  • A ti dabaa alakojo kan fun ikede OpenCL nipasẹ Vulkan API clsv, eyi ti o ṣe iyipada awọn ekuro OpenCL si aṣoju Vulkan SPIR-V, ati Layer kan clvk lati mu OpenCL API ṣiṣẹ lori oke Vulkan.

    Ik OpenCL 3.0 pato ti a tẹjade

orisun: opennet.ru

Fi ọrọìwòye kun