OpenCL စံနှုန်းကို သီးခြားအကောင်အထည်ဖော်မှုဖြင့် PoCL 5.0 ထုတ်ပြန်ခြင်း။

PoCL 5.0 ပရောဂျက် (Portable Computing Language OpenCL) ကို ထုတ်ဝေခဲ့ပြီး၊ ဂရပ်ဖစ်အရှိန်မြှင့်ထုတ်လုပ်သူများနှင့် သီးခြားကင်းသော OpenCL စံနှုန်းကို အကောင်အထည်ဖော်ကာ OpenCL kernels အမျိုးအစားအမျိုးမျိုးတွင် ဂရပ်ဖစ်နှင့် ဗဟိုပရိုဆက်ဆာများကို လုပ်ဆောင်ရန်အတွက် အမျိုးမျိုးသော backends များကို အသုံးပြုခွင့်ပြုထားသည်။ . ပရောဂျက်ကုဒ်ကို MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ X86_64၊ MIPS32၊ ARM v7၊ AMD HSA APU၊ NVIDIA GPU နှင့် VLIW ဗိသုကာဆိုင်ရာ အထူးပြု ASIP (Application-Specific Instruction-set Processor) နှင့် TTA (Transport Triggered Architecture) ပရိုဆက်ဆာများပေါ်တွင် အလုပ်လုပ်ရန် ပံ့ပိုးပေးပါသည်။

OpenCL kernel compiler ၏အကောင်အထည်ဖော်မှုကို LLVM ၏အခြေခံပေါ်တွင်တည်ဆောက်ထားပြီး Clang ကို OpenCL C အတွက်ရှေ့ဆုံးအဖြစ်အသုံးပြုသည်။ သင့်လျော်သောသယ်ဆောင်ရလွယ်ကူမှုနှင့်စွမ်းဆောင်ရည်သေချာစေရန်၊ OpenCL kernel compiler သည် VLIW၊ superscalar၊ SIMD၊ SIMT၊ multi-core နှင့် multi-threading ကဲ့သို့သော ကုဒ်လုပ်ဆောင်မှုကို အပြိုင်လုပ်ဆောင်ရန် အမျိုးမျိုးသောဟာ့ဒ်ဝဲအရင်းအမြစ်များကို အသုံးပြုနိုင်သည့် ပေါင်းစပ်လုပ်ဆောင်ချက်များကို ထုတ်ပေးနိုင်သည်။ ICD drivers (Installable Client Driver) အတွက် အထောက်အပံ့ ရှိပါသည်။ CPU၊ ASIP (TCE/TTA)၊ HSA ဗိသုကာနှင့် NVIDIA GPU (libcuda မှတဆင့်) ကိုအခြေခံထားသော GPU မှတဆင့်လုပ်ဆောင်မှုကိုပံ့ပိုးရန် နောက်ကွယ်တွင်ရှိသည်။

ဗားရှင်းအသစ်တွင်-

  • နောက်ခံ pocld လုပ်ငန်းစဉ်ကို လုပ်ဆောင်နေသည့် ကွန်ရက်ရှိ အခြား host များသို့ လွှဲပြောင်းခြင်းဖြင့် ဖြန့်ဝေထားသော ကွန်ပျူတာများကို စုစည်းရန် ဒီဇိုင်းထုတ်ထားသော “အဝေးထိန်း” နောက်ခံဖိုင်အသစ်ကို အကောင်အထည်ဖော်ခဲ့သည်။
  • CUDA ဒရိုက်ဘာသည် OpenCL 3.0 ၏ နောက်ထပ်အင်္ဂါရပ်များနှင့် တိုးချဲ့မှုများဖြစ်သည့် အက်တမ်လုပ်ဆောင်မှုများ၊ ကန့်သတ်ထားသော ကိန်းရှင်များ၊ intel_sub_group_shuffle၊ intel_sub_group_shuffle_xor၊ get_sub_group_local_id၊ sub_group_barrier နှင့် sub_group_ballot ကဲ့သို့သော နောက်ထပ်အင်္ဂါရပ်များနှင့် တိုးချဲ့မှုများကို လုပ်ဆောင်ပါသည်။
  • 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 သို့ အပ်ဒိတ်လုပ်ထားပါသည်။
  • FPGAs အတွက် စမ်းသပ် AlmaIF နောက်ခံကို အဆိုပြုထားသည်။
  • SPIR 1.x/2.0 အရိပ်အာဝါသများ၏ အလယ်အလတ်ကိုယ်စားပြုမှုအတွက် မပြည့်စုံသောပံ့ပိုးမှုကို ဖယ်ရှားခဲ့သည်။ SPIR-V ကို အကြံပြုထားသော အလယ်အလတ်အရိပ်အာဝါသဘာသာစကားအဖြစ် ကြေငြာသည်။
  • Clang/LLVM 17.0 အတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။ Clang/LLVM 10-13 အတွက် ပံ့ပိုးမှုကို ရပ်ဆိုင်းထားသည်။

source: opennet.ru

မှတ်ချက် Add