Издание на 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, суперскалар, SIMD, SIMT, мулти-јадрени и мулти-нишки. Има поддршка за драјвери за ICD (Installable Client Driver). Постојат задни за поддршка за работа преку процесорот, ASIP (TCE/TTA), графичкиот процесор базиран на 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 натоварена со Ubuntu 23.10 околина со LLVM 17 и GCC 13.2.
  • Наставката cl_ext_float_atomics е имплементирана со поддршка за FP32 и FP64.
  • Имплементацијата на екстензијата cl_khr_command_buffer е ажурирана на верзијата 0.9.4.
  • Предложен е експериментален AlmaIF заднина за FPGA.
  • Отстранета нецелосната поддршка за средно претставување на шејдерите SPIR 1.x/2.0. SPIR-V е деклариран како препорачан средно шејдер јазик.
  • Додадена е поддршка за Clang/LLVM 17.0. Поддршката за Clang/LLVM 10-13 е застарена.

Извор: opennet.ru

Додадете коментар