Projektet PoCL 5.0 (Portable Computing Language OpenCL) har slÀppts, vilket utvecklar en implementering av OpenCL-standarden, oberoende av grafikkortsleverantörer och möjliggör anvÀndning av olika backend-lösningar för att utföra OpenCL-kÀrnor pÄ olika typer av grafiska och centrala processorer. Projektets kod distribueras under MIT-licensen. Stöd för plattformar som X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU och olika specialiserade ASIP (Application-Specific Instruction-set Processor) och TTA-processorer (Transport Triggered Architecture) med VLIW-arkitektur stöds.
Implementeringen av OpenCL-kÀrnkompilatorn bygger pÄ LLVM, och Clang anvÀnds som frontend för OpenCL C. För att sÀkerstÀlla lÀmplig portabilitet och prestanda kan OpenCL-kÀrnkompilatorn generera kombinerade funktioner som kan dra nytta av olika hÄrdvaruresurser för att parallellisera kodens utförande, sÄsom VLIW, superskalÀr, SIMD, SIMT, flerkÀrniga och flertrÄdade miljöer. Det finns stöd för ICD-drivrutiner (Installable Client Driver). Det finns backends för att möjliggöra drift genom CPU, ASIP (TCE/TTA), HSA-baserade GPU:er och NVIDIA GPU:er (via libcuda).
I den nya versionen:
- En ny backend "Remote" har implementerats, avsedd för att organisera distribuerade berÀkningar genom att flytta bearbetningen av OpenCL-kommandon till andra vÀrdar i nÀtverket, dÀr bakgrundsprocessen pocld körs.
- I CUDA-drivrutinen har ytterligare funktioner och utvidgningar av OpenCL 3.0 införts, sÄsom atomÀra operationer, variabler med begrÀnsad synlighet, undergrupper intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier och sub_group_ballot.
- Stödet för CPU:er baserade pÄ RISC-V-arkitekturen har förbÀttrats. PoCLs funktion har testats pÄ Starfive VisionFive 2-kortet med Ubuntu 23.10-miljön laddad med LLVM 17 och GCC 13.2.
- Utvidgningen cl_ext_float_atomics har implementerats med stöd för FP32 och FP64.
- Implementeringen av utvidgningen cl_khr_command_buffer har uppdaterats till version 0.9.4.
- En experimentell backend AlmaIF för FPGA har föreslagits.
- Stödet för det ofullstÀndiga mellanliggande representationssystemet SPIR 1.x/2.0 har tagits bort. SPIR-V har deklarerats som det rekommenderade mellanliggande sprÄket för shaders.
- Stöd för Clang/LLVM 17.0 har lagts till. Stödet för Clang/LLVM 10-13 har förklarats som förÄldrat.
KĂ€lla: opennet.ru
