PoCL 5.0-release met een onafhankelijke implementatie van de OpenCL-standaard

De release van het PoCL 5.0-project (Portable Computing Language OpenCL) is gepubliceerd, waarin een implementatie van de OpenCL-standaard wordt ontwikkeld die onafhankelijk is van fabrikanten van grafische versnellers en het gebruik van verschillende backends mogelijk maakt voor het uitvoeren van OpenCL-kernels op verschillende soorten grafische afbeeldingen en centrale processors . De projectcode wordt gedistribueerd onder de MIT-licentie. Ondersteunt werk op platforms X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU en diverse gespecialiseerde ASIP (Application-Specific Instruction-set Processor) en TTA (Transport Triggered Architecture) processors met VLIW-architectuur.

De implementatie van de OpenCL-kernelcompiler is gebouwd op basis van LLVM en Clang wordt gebruikt als front-end voor OpenCL C. Om goede draagbaarheid en prestaties te garanderen, kan de OpenCL-kernelcompiler combinatiefuncties genereren die verschillende hardwarebronnen kunnen gebruiken om de uitvoering van code te parallelliseren, zoals VLIW, superscalair, SIMD, SIMT, multi-core en multi-threading. Er is ondersteuning voor ICD-stuurprogramma's (Installable Client Driver). Er zijn backends ter ondersteuning van de werking via CPU, ASIP (TCE/TTA), GPU op basis van HSA-architectuur en NVIDIA GPU (via liccuda).

In de nieuwe versie:

  • Er is een nieuwe “Remote” backend geïmplementeerd, ontworpen om gedistribueerd computergebruik te organiseren door de verwerking van OpenCL-opdrachten over te dragen naar andere hosts op het netwerk die het pocld-proces op de achtergrond uitvoeren.
  • Het CUDA-stuurprogramma implementeert aanvullende OpenCL 3.0-functies en uitbreidingen, zoals atomaire bewerkingen, scoped-variabelen, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier en sub_group_ballot.
  • Verbeterde ondersteuning voor CPU's op basis van de RISC-V-architectuur. De PoCL-werking werd getest op het Starfive VisionFive 2-bord geladen met een Ubuntu 23.10-omgeving met LLVM 17 en GCC 13.2.
  • De extensie cl_ext_float_atomics is geïmplementeerd met ondersteuning voor FP32 en FP64.
  • De implementatie van de cl_khr_command_buffer-extensie is bijgewerkt naar versie 0.9.4.
  • Er is een experimentele AlmaIF-backend voor FPGA's voorgesteld.
  • Onvolledige ondersteuning verwijderd voor tussenweergave van SPIR 1.x/2.0 shaders. SPIR-V wordt gedeclareerd als de aanbevolen tussenliggende shader-taal.
  • Ondersteuning toegevoegd voor Clang/LLVM 17.0. Ondersteuning voor Clang/LLVM 10-13 is verouderd.

Bron: opennet.ru

Voeg een reactie