Publication de PoCL 5.0 avec une implémentation indépendante de la norme OpenCL

La version du projet PoCL 5.0 (Portable Computing Language OpenCL) a été publiée, développant une implémentation de la norme OpenCL, indépendante des fabricants de processeurs graphiques et permettant d'utiliser différents backends pour exécuter des noyaux OpenCL sur divers types de processeurs graphiques et centraux. Le code du projet est distribué sous la licence MIT. Il prend en charge les plateformes X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA et divers processeurs ASIP (Application-Specific Instruction-set Processor) et TTA (Transport Triggered Architecture) avec une architecture VLIW.

L'implémentation du compilateur de noyaux OpenCL est basée sur LLVM, et Clang est utilisé comme frontend pour OpenCL C. Pour garantir une portabilité et des performances adéquates, le compilateur de noyaux OpenCL peut générer des fonctions combinées, qui peuvent utiliser différentes ressources matérielles pour le parallélisme d'exécution du code, telles que VLIW, superscalaire, SIMD, SIMT, multicoeur et multithreading. Le support des pilotes ICD (Installable Client Driver) est également disponible. Des backends sont présents pour assurer un fonctionnement via le CPU, ASIP (TCE/TTA), GPU basé sur l'architecture HSA et GPU NVIDIA (via libcuda).

Dans la nouvelle version :

  • Un nouveau backend « Remote » a Ă©tĂ© implĂ©mentĂ©, destinĂ© Ă  organiser des calculs distribuĂ©s en dĂ©portant le traitement des commandes OpenCL sur d'autres hĂŽtes du rĂ©seau, sur lesquels un processus en arriĂšre-plan pocld est en cours d'exĂ©cution.
  • Le pilote CUDA a implĂ©mentĂ© des fonctionnalitĂ©s supplĂ©mentaires et des extensions OpenCL 3.0, telles que des opĂ©rations atomiques, des variables Ă  portĂ©e limitĂ©e, des sous-groupes intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier et sub_group_ballot.
  • Le support du CPU basĂ© sur l'architecture RISC-V a Ă©tĂ© amĂ©liorĂ©. Le fonctionnement de PoCL a Ă©tĂ© testĂ© sur la carte Starfive VisionFive 2 avec l'environnement Ubuntu 23.10, utilisant LLVM 17 et GCC 13.2.
  • L'extension cl_ext_float_atomics a Ă©tĂ© rĂ©alisĂ©e avec le support de FP32 et FP64.
  • L'implĂ©mentation de l'extension cl_khr_command_buffer a Ă©tĂ© mise Ă  jour vers la version 0.9.4.
  • Un backend expĂ©rimental AlmaIF pour FPGA a Ă©tĂ© proposĂ©.
  • Le support non terminĂ© du langage intermĂ©diaire de shaders SPIR 1.x/2.0 a Ă©tĂ© supprimĂ©. SPIR-V a Ă©tĂ© dĂ©signĂ© comme le langage intermĂ©diaire de shaders recommandĂ©.
  • Le support de Clang/LLVM 17.0 a Ă©tĂ© ajoutĂ©. Le support de Clang/LLVM 10-13 a Ă©tĂ© dĂ©clarĂ© obsolĂšte.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster