PoCL 5.0 arriba amb un nou backend, millores i més

PoCL

PoCL és una implementació eficient de l'estàndard OpenCL

Es va donar a conèixer fa uns dies el llançament de la nova versió de PoCL 5.0 i dins de les principals novetats que presenta la nova versió es destaca un nou backend que permet descarregar ordres OpenCL a través d'una xarxa a un o més servidors, també es destaquen les millores per a CUDA, millores de suport i més.

Per als qui desconeixen de POCl, ha de saber que és una implementació portàtil de codi obert (Amb llicència MIT) de l'estàndard OpenC, aaltres de ser una implementació OpenCL de codi obert de múltiples dispositius fàcilment portàtil. Un objectiu principal d‟aquest projecte és millorar la interoperabilitat de la diversitat de dispositius compatibles amb OpenCL integrant-los en una única plataforma orquestrada centralment.

A més, un dels objectius clau a més llarg termini és millorar la portabilitat del rendiment dels programes OpenCL als tipus de dispositius que utilitzen temps d'execució i tècniques de compilació

Principals novetats de POCl 5.0

En aquesta nova versió que es presenta de PoCL 5.0, tal com es va esmentar a l'inici, la novetat més important és el nou backend «PoCL-Remote» el qual està dissenyat per descarregar ordres OpenCL a través d'una xarxa cap a un o més servidors que executen el dimoni ‘pocld’, inclòs amb PoCL. En permetre la compatibilitat amb OpenCL en altres sistemes en xarxa, PoCL-Remote permet utilitzar OpenCL sense problemes en aquests amfitrions remots.

S'esmenta que a diferència de les solucions de descàrrega en xarxa existents per a OpenCL, PoCL-Remote utilitza la infraestructura d'administració de memòria de PoCL per fer un seguiment dels objectes de memòria i només copiar-los quan sigui realment necessari. Quan cal una migració d'objectes de memòria, es tria automàticament la ruta més eficient per a la transferència.

Una altra de les novetats que presenta la nova versió de PoCL 5.0, són les noves característiques afegides del controlador NVIDIA CUDA per brindar suport parcial a OpenCL 3.0 El controlador CUDA ha estat ampliat amb noves funcions per recolzar característiques opcionals d'OpenCL 3.0, diverses extensions essencials per optimitzar l'execució a chipStar, així com també l'addició d'operacions atòmiques d'OpenCL 2.x/3.x.

De les millores de suport s'esmenta el suport per a SVM Coarse-grain fine-grain, quan el dispositiu CUDA és compatible, així com també la introducció de suport inicial per a subgrups: intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, sub_group_ballot.

A més d'això, en aquesta versió, s'ha millorat la compatibilitat amb la CPU RISC-V. PoCL va ser provat a Starfive VisionFive 2 utilitzant una imatge preinstal·lada d'Ubuntu 23.10. Amb LLVM 17 i GCC 13.2, es va aconseguir passar el 98% de les proves (només 4 proves de 253 van fallar).

Dels altres canvis que es destaquen d'aquesta nova versió:

  • Es van implementar nombroses millores addicionals al controlador de la CPU, impulsades principalment per les necessitats de chipStar.
  • Implementació de cl_ext_float_atomics amb suport per a FP32 i FP64.
  • Actualització de la implementació de cl_khr_command_buffer a la versió 0.9.4.
    Backend FPGA experimental integrat a la biblioteca del nucli.
  • S'ha proposat un backend experimental d'AlmaIF per a FPGA que permet reconfigurar transparentment FPGA de diferents proveïdors utilitzant una base de dades de fluxos de bits. Aquest treball forma part d'una investigació en curs i es pot considerar un avenç significatiu. La base de dades amb els fluxos de bits és generada pel projecte AFOCL.
  • Es va eliminar el suport incomplet per a la representació intermèdia dels ombrejadors SPIR 1.x/2.0. SPIR-V està declarat com el llenguatge d'ombrejat intermedi recomanat.
  • Activació de la compatibilitat amb FP16 i espai d'adreces genèric mitjançant l'entrada SPIR-V.
  • S'ha afegit suport per a Clang/LLVM 17.0.
  • Implementació de cl_ext_float_atomics (en FP32 + FP64) quan s'utilitza LLVM 17.
  • La compatibilitat amb Clang/LLVM 10-13 ha quedat obsoleta.

Finalment, cal esmentar que PoCL-Remote es considera llest per a proves fora del laboratori, ja que s'ha integrat oficialment en aquesta nova versió 5.0. Si estàs interessat en poder conèixer més sobre això, pots consultar els detalls en el següent enllaç.

Per als interessats en el projecte, han de saber que el codi del projecte es distribueix sota la llicència MIT i el treball és admès a plataformes X86_64, MIPS32, ARM v7, AMD HSA APU i diversos processadors TTA especialitzats amb l'arquitectura VLIW.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.