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

Er is een release gepresenteerd van het PoCL 3.1-project (Portable Computing Language OpenCL), dat een implementatie van de OpenCL-standaard ontwikkelt 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 verwerkers. 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:

  • Ondersteuning toegevoegd voor Clang/LLVM 15.0.
  • Aanzienlijk verbeterde ondersteuning voor tussenweergave van SPIR-V-shaders voor CPU- en CUDA-stuurprogramma's.
  • Het stuurprogramma voor gespecialiseerde hardware (CL_DEVICE_TYPE_ACCELERATOR) en aangepaste apparaten (CL_DEVICE_TYPE_CUSTOM) die geen online compilatie ondersteunen, is aanzienlijk opnieuw ontworpen. De accel- en ttasim-drivers zijn samengevoegd in de nieuwe AlmaIF-driver.
  • Er wordt verder gewerkt aan de driver voor de Vulkan grafische API.
  • Er wordt een basisimplementatie van de extensie cl_khr_command_buffer voorgesteld, waarmee u een reeks OpenCL-opdrachten kunt schrijven die in één aanroep kunnen worden uitgevoerd.

Bron: opennet.ru

Voeg een reactie