ការចេញផ្សាយ PoCL 5.0 ជាមួយនឹងការអនុវត្តឯករាជ្យនៃស្តង់ដារ OpenCL

ការចេញផ្សាយគម្រោង PoCL 5.0 (Portable Computing Language OpenCL) ត្រូវបានបោះពុម្ព បង្កើតការអនុវត្តស្តង់ដារ OpenCL ដែលឯករាជ្យពីក្រុមហ៊ុនផលិតឧបករណ៍បង្កើនល្បឿនក្រាហ្វិក និងអនុញ្ញាតឱ្យប្រើប្រាស់កម្មវិធីខាងក្រោយផ្សេងៗសម្រាប់ដំណើរការខឺណែល OpenCL លើប្រភេទផ្សេងៗនៃក្រាហ្វិក និងប្រព័ន្ធដំណើរការកណ្តាល។ . លេខកូដគម្រោងត្រូវបានចែកចាយក្រោមអាជ្ញាប័ណ្ណ MIT ។ គាំទ្រការងារនៅលើវេទិកា X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU និងប្រព័ន្ធដំណើរការ ASIP (Application-Specific Instruction-set Processor) និង TTA (Transport Triggered Architecture) ដែលមានស្ថាបត្យកម្ម VLIW ។

ការអនុវត្តកម្មវិធីចងក្រងខឺណែល OpenCL ត្រូវបានបង្កើតឡើងនៅលើមូលដ្ឋាននៃ LLVM ហើយ Clang ត្រូវបានប្រើជាផ្នែកខាងមុខសម្រាប់ OpenCL C ។ ដើម្បីធានាបាននូវការចល័ត និងដំណើរការបានត្រឹមត្រូវ កម្មវិធីចងក្រងខឺណែល OpenCL អាចបង្កើតមុខងាររួមបញ្ចូលគ្នាដែលអាចប្រើធនធានផ្នែករឹងផ្សេងៗដើម្បីដំណើរការកូដស្របគ្នាដូចជា VLIW, superscalar, SIMD, SIMT, multi-core និង multi-threading ។ មានការគាំទ្រសម្រាប់ ICD drivers (Installable Client Driver)។ មានកម្មវិធីខាងក្រោយដើម្បីគាំទ្រប្រតិបត្តិការតាមរយៈ CPU, ASIP (TCE/TTA), GPU ផ្អែកលើស្ថាបត្យកម្ម HSA និង NVIDIA GPU (តាមរយៈ libcuda) ។

នៅក្នុងកំណែថ្មី៖

  • កម្មវិធីខាងក្រោយ "ពីចម្ងាយ" ថ្មីត្រូវបានអនុវត្ត ដែលត្រូវបានរចនាឡើងដើម្បីរៀបចំការគណនាចែកចាយដោយផ្ទេរដំណើរការនៃពាក្យបញ្ជា OpenCL ទៅម៉ាស៊ីនផ្សេងទៀតនៅលើបណ្តាញដែលកំពុងដំណើរការដំណើរការ pocld ផ្ទៃខាងក្រោយ។
  • កម្មវិធីបញ្ជា 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 ។ ប្រតិបត្តិការ PoCL ត្រូវបានសាកល្បងនៅលើក្តារ Starfive VisionFive 2 ដែលផ្ទុកដោយបរិស្ថានអ៊ូប៊ុនទូ 23.10 ជាមួយ LLVM 17 និង GCC 13.2 ។
  • ផ្នែកបន្ថែម cl_ext_float_atomics ត្រូវបានអនុវត្តដោយមានការគាំទ្រសម្រាប់ FP32 និង FP64 ។
  • ការអនុវត្តផ្នែកបន្ថែម cl_khr_command_buffer ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅកំណែ 0.9.4 ។
  • កម្មវិធីខាងក្រោយ AlmaIF ពិសោធន៍សម្រាប់ FPGAs ត្រូវបានស្នើឡើង។
  • បានដកការគាំទ្រមិនពេញលេញសម្រាប់ការតំណាងកម្រិតមធ្យមនៃ SPIR 1.x/2.0 shaders ។ SPIR-V ត្រូវបានប្រកាសថាជាភាសាស្រមោលកម្រិតមធ្យមដែលបានណែនាំ។
  • បានបន្ថែមការគាំទ្រសម្រាប់ Clang/LLVM 17.0 ។ ការគាំទ្រសម្រាប់ Clang/LLVM 10-13 ត្រូវបានបដិសេធ។

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់