Ներկայացվել է OpenCL 3.0 ճշգրտումը

Khronos կոնցեռնը, որը պատասխանատու է OpenGL, Vulkan և OpenCL ընտանիքի բնութագրերի մշակման համար, объявил OpenCL 3.0 բնութագրերի մշակման ավարտի վերաբերյալ, որոնք սահմանում են API-ներ և C լեզվի ընդլայնումներ՝ միջպլատֆորմային զուգահեռ հաշվարկներ կազմակերպելու համար՝ օգտագործելով բազմամիջուկ CPU-ներ, GPU-ներ, FPGA-ներ, DSP-ներ և այլ մասնագիտացված չիպեր՝ սուպերհամակարգիչներում և ամպային սերվերներում օգտագործվողներից: չիպերին, որոնք կարելի է գտնել շարժական սարքերում և ներկառուցված տեխնոլոգիաներում: OpenCL ստանդարտը լիովին բաց է և չի պահանջում լիցենզիայի վճարներ: Ստանդարտի վրա աշխատանքին մասնակցել են այնպիսի ընկերություններ, ինչպիսիք են IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments և Toshiba:

Ընթացիկ փուլում հստակեցմանը տրվել է ժամանակավոր կարգավիճակ, ինչը ենթադրում է ճշգրտման հնարավորություն՝ հիմնվելով ուղարկված հետադարձ կապի վրա: GitHub. Մեկնաբանությունները հաշվի առնելուց հետո հստակեցումը վերջնական տեսքի կբերվի և վերջնական թեստային փաթեթը կհրապարակվի առկա ներդրումների համատեղելիությունը ստուգելու համար:

Ներկայացվել է OpenCL 3.0 ճշգրտումը

Առավել նշանավոր առանձնահատկությունները OpenCL 3.0- ը:

  • OpenCL 3.0 API-ն այժմ ընդգրկում է OpenCL-ի բոլոր տարբերակները (1.2, 2.x), առանց յուրաքանչյուր տարբերակի համար առանձին բնութագրեր տրամադրելու: OpenCL 3.0-ն ապահովում է հիմնական ֆունկցիոնալությունը ընդլայնելու հնարավորություն՝ լրացուցիչ բնութագրերի ինտեգրման միջոցով, որոնք շերտավորվելու են տարբերակների տեսքով՝ առանց արգելափակելու OpenCL 1.2/2.X-ի միաձույլ բնույթը:
  • Միայն այն գործառույթը, որը համապատասխանում է OpenCL 1.2-ին, հայտարարվում է պարտադիր, և OpenCL 2.x բնութագրերում առաջարկված բոլոր հատկանիշները դասակարգվում են որպես ընտրովի: Այս մոտեցումը կհեշտացնի անհատական ​​ծրագրերի ստեղծումը, որոնք համատեղելի են OpenCL 3.0-ի հետ, և կընդլայնի սարքերի շրջանակը, որոնց վրա կարելի է օգտագործել OpenCL 3.0-ը: Օրինակ, արտադրողները կարող են իրականացնել OpenCL 3.0 աջակցություն՝ առանց հատուկ OpenCL 2.x գործառույթների ներդրման: Լեզվի լրացուցիչ հնարավորություններ մուտք գործելու համար OpenCL 3.0-ն ավելացրել է թեստային հարցումների համակարգ, որը թույլ է տալիս գնահատել առանձին API տարրերի, ինչպես նաև հատուկ մակրոների աջակցությունը:
  • Նախկինում թողարկված բնութագրերի հետ միավորումը հեշտացնում է հավելվածների տեղափոխումը OpenCL 3.0: OpenCL 1.2 հավելվածները կկարողանան աշխատել սարքերում, որոնք աջակցում են OpenCL 3.0 առանց փոփոխության: OpenCL 2.x հավելվածները նույնպես չեն պահանջի կոդի փոփոխություններ, քանի դեռ OpenCL 3.0 միջավայրն ապահովում է պահանջվող ֆունկցիոնալությունը (ապագա տեղափոխելիությունն ապահովելու համար OpenCL 2.x հավելվածներին խորհուրդ է տրվում ավելացնել թեստային հարցումներ՝ OpenCL 2.x հատկանիշների աջակցությունը գնահատելու համար: օգտագործվում է): Վարորդների մշակողները OpenCL-ի ներդրումներով կարող են հեշտությամբ թարմացնել իրենց արտադրանքը OpenCL 3.0-ի, ավելացնելով միայն հարցումների մշակում որոշակի API զանգերի համար և ժամանակի ընթացքում աստիճանաբար մեծացնել գործունակությունը:
  • OpenCL 3.0 ճշգրտումը համահունչ է SPIR-V ընդհանուր միջանկյալ ներկայացման միջավայրին, ընդլայնումներին և բնութագրերին, որն օգտագործվում է նաև Vulkan API-ի կողմից: SPIR-V 1.3 ճշգրտման աջակցությունը ներառված է հիմնական OpenCL 3.0-ում որպես կամընտիր գործառույթ: Միջանկյալ ներկայացուցչության օգտագործման միջոցով SPIR-V Աջակցություն ենթախմբերի հետ գործառնություններին ավելացվել է հաշվողական միջուկների համար:
    Ներկայացվել է OpenCL 3.0 ճշգրտումը

  • Ավելացվեց ընդլայնման աջակցություն՝ ասինխրոն DMA գործողություններ կատարելու համար (Ասինխրոն DMA), որն աջակցվում է DSP-ի նմանվող չիպերում, որոնք ունեն անմիջական հիշողության հասանելիություն: Asynchronous DMA-ն հնարավորություն է տալիս օգտագործել DMA գործարքները՝ գլոբալ և տեղային հիշողության միջև տվյալների փոխանցման ասինխրոն ձևով, հաշվարկներին կամ տվյալների փոխանցման այլ գործողություններին զուգահեռ:
  • C Parallel Programming Extensions-ի ճշգրտումը թարմացվել է տարբերակը 3.0, և C++-ի համար OpenCL լեզվի ընդլայնումների մշակումը դադարեցվեց՝ հօգուտ «C++ OpenCL-ի համար» նախագծի։ C++-ը OpenCL-ի համար կոմպիլյատոր է՝ հիմնված Clang/LLVM և հեռարձակում C++ և OpenCL C միջուկները SPIR-V միջանկյալ ներկայացման կամ ցածր մակարդակի մեքենայի կոդի մեջ: Հեռարձակման միջոցով SPIR-V-ը կազմակերպում է նաև C++ հավելվածների հավաքում՝ օգտագործելով SYCL կաղապարների գրադարանը, ինչը հեշտացնում է զուգահեռ հավելվածների ստեղծումը։

    Ներկայացվել է OpenCL 3.0 ճշգրտումը

  • Vulkan API-ի միջոցով OpenCL-ի հեռարձակման համար առաջարկվել է կոմպիլյատոր clspv, որը փոխակերպում է OpenCL միջուկները Vulkan SPIR-V ներկայացուցչության և շերտի clvk որպեսզի OpenCL API-ն աշխատի Vulkan-ի վերևում:

    Ներկայացվել է OpenCL 3.0 ճշգրտումը

Source: opennet.ru

Добавить комментарий