Sortie de PoCL 3.1 avec implémentation indépendante du standard OpenCL

Une version du projet PoCL 3.1 (Portable Computing Language OpenCL) a été présentée, qui développe une implémentation du standard OpenCL indépendante des fabricants d'accélérateurs graphiques et permet l'utilisation de divers backends pour exécuter les noyaux OpenCL sur différents types de graphiques et de centrales. processeurs. Le code du projet est distribué sous licence MIT. Prend en charge le travail sur les plates-formes X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU et divers processeurs spécialisés ASIP (Application-Specific Instruction-set Processor) et TTA (Transport Triggered Architecture) avec architecture VLIW.

L'implémentation du compilateur du noyau OpenCL est construite sur la base de LLVM et Clang est utilisé comme frontal pour OpenCL C. Pour garantir une portabilité et des performances appropriées, le compilateur du noyau OpenCL peut générer des fonctions combinées pouvant utiliser diverses ressources matérielles pour paralléliser l'exécution de code, telles que VLIW, superscalaire, SIMD, SIMT, multicœur et multithreading. Il existe une prise en charge des pilotes ICD (Installable Client Driver). Il existe des backends pour prendre en charge le fonctionnement via CPU, ASIP (TCE/TTA), GPU basé sur l'architecture HSA et NVIDIA GPU (via libcuda).

Dans la nouvelle version:

  • Ajout de la prise en charge de Clang/LLVM 15.0.
  • Prise en charge de la représentation intermédiaire du shader SPIR-V considérablement améliorée pour les pilotes CPU et CUDA.
  • Le pilote pour le matériel spécialisé (CL_DEVICE_TYPE_ACCELERATOR) et les périphériques personnalisés (CL_DEVICE_TYPE_CUSTOM) qui ne prennent pas en charge la compilation en ligne a été considérablement repensé. Les pilotes accel et tasim ont été fusionnés dans le nouveau pilote AlmaIF.
  • Le travail se poursuit sur le pilote de l'API graphique Vulkan.
  • Une implémentation de base de l'extension cl_khr_command_buffer est proposée, qui vous permet d'écrire une séquence de commandes OpenCL à exécuter en un seul appel.

Source: opennet.ru

Ajouter un commentaire