OpenCL стандартын көз карандысыз ишке ашыруу менен PoCL 5.0 чыгаруу

PoCL 5.0 долбоорунун (Portable Computing Language OpenCL) релизи жарыкка чыкты, ал OpenCL стандартын ишке ашырууну иштеп чыгууда, ал графикалык акселератор өндүрүүчүлөрдөн көз каранды эмес жана ар кандай графикалык типтеги жана борбордук процессорлордо OpenCL өзөктөрүн аткаруу үчүн ар кандай бэкенддерди колдонууга мүмкүндүк берет. . Долбоордун коду MIT лицензиясы боюнча таратылат. X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU платформаларында жана VLIW архитектурасы менен ар кандай адистештирилген ASIP (Колдонмого атайын нускамалар топтому процессору) жана TTA (Transport Triggered Architecture) процессорлорунда иштөөнү колдойт.

OpenCL өзөк компиляторун ишке ашыруу LLVMдин негизинде курулган жана Clang OpenCL C үчүн алдыңкы аягы катары колдонулат. Тийиштүү көчүрүүнү жана аткарууну камсыз кылуу үчүн, OpenCL өзөк компилятору VLIW, суперскаляр, SIMD, SIMT, көп ядролуу жана көп жиптүү сыяктуу коддун аткарылышын параллелдештирүүгө ар кандай аппараттык ресурстарды колдоно турган комбинациялуу функцияларды түзө алат. ICD драйверлери үчүн колдоо бар (Орнотулуучу Кардар драйвери). CPU, ASIP (TCE/TTA), HSA архитектурасына негизделген GPU жана NVIDIA GPU (libcuda аркылуу) аркылуу иштөөнү колдоо үчүн аркалар бар.

Жаңы версияда:

  • Фондук pocld процессин иштетип жаткан тармактагы башка хостторго OpenCL буйруктарын иштетүүнү өткөрүп берүү аркылуу бөлүштүрүлгөн эсептөөлөрдү уюштурууга арналган жаңы “Алыскы” сервер ишке ашырылды.
  • CUDA драйвери атомдук операциялар, масштабдуу өзгөрмөлөр, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier жана sub_group_ballot сыяктуу кошумча OpenCL 3.0 функцияларын жана кеңейтүүлөрүн ишке ашырат.
  • RISC-V архитектурасына негизделген CPU үчүн жакшыртылган колдоо. PoCL операциясы LLVM 2 жана GCC 23.10 менен Ubuntu 17 чөйрөсү жүктөлгөн Starfive VisionFive 13.2 тактасында сыналган.
  • cl_ext_float_atomics кеңейтүүсү FP32 жана FP64 колдоосу менен ишке ашырылган.
  • cl_khr_command_buffer кеңейтүүсүн ишке ашыруу 0.9.4 версиясына жаңыртылган.
  • FPGAлар үчүн эксперименталдык AlmaIF сервери сунушталды.
  • SPIR 1.x/2.0 шейдерлеринин ортоңку өкүлчүлүгү үчүн толук эмес колдоо алынып салынды. SPIR-V сунушталган ортолук шейдер тили катары жарыяланды.
  • Clang/LLVM 17.0 үчүн колдоо кошулду. Clang/LLVM 10-13 үчүн колдоо жокко чыгарылган.

Source: opennet.ru

Комментарий кошуу