Rilascio PoCL 3.1 con un'implementazione indipendente dello standard OpenCL

È stata presentata la versione del progetto PoCL 3.1 (Portable Computing Language OpenCL), che sviluppa un'implementazione dello standard OpenCL indipendente dai produttori di acceleratori grafici e consente l'utilizzo di diversi backend per l'esecuzione dei kernel OpenCL su diversi tipi di grafica e centrali processori. Il codice del progetto è distribuito sotto la licenza MIT. Supporta il lavoro su piattaforme X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA e vari processori specializzati ASIP (Application-Specific Instruction-set Processor) e TTA (Transport Triggered Architecture) con architettura VLIW.

L'implementazione del compilatore del kernel OpenCL è costruita sulla base di LLVM e Clang viene utilizzato come front-end per OpenCL C. Per garantire portabilità e prestazioni adeguate, il compilatore del kernel OpenCL può generare funzioni combinate che possono utilizzare varie risorse hardware per parallelizzare l'esecuzione del codice, come VLIW, superscalare, SIMD, SIMT, multi-core e multi-threading. È disponibile il supporto per i driver ICD (driver client installabile). Esistono backend per supportare il funzionamento tramite CPU, ASIP (TCE/TTA), GPU basata sull'architettura HSA e GPU NVIDIA (tramite libcuda).

Nella nuova versione:

  • Aggiunto il supporto per Clang/LLVM 15.0.
  • Supporto della rappresentazione intermedia dello shader SPIR-V notevolmente migliorato per i driver CPU e CUDA.
  • Il driver per hardware specializzato (CL_DEVICE_TYPE_ACCELERATOR) e dispositivi personalizzati (CL_DEVICE_TYPE_CUSTOM) che non supportano la compilazione online Γ¨ stato riprogettato in modo significativo. I driver accel e ttasim sono stati fusi nel nuovo driver AlmaIF.
  • Continua il lavoro sul driver per l'API grafica Vulkan.
  • Viene proposta un'implementazione di base dell'estensione cl_khr_command_buffer, che consente di scrivere una sequenza di comandi OpenCL da eseguire in una chiamata.

Fonte: opennet.ru

Aggiungi un commento