PoCL 3.1:n julkaisu OpenCL-standardin itsenäisellä toteutuksella

PoCL 3.1 (Portable Computing Language OpenCL) -projektista on esitelty julkaisu, joka kehittää grafiikkakiihdytinvalmistajista riippumattoman OpenCL-standardin toteutusta, joka mahdollistaa erilaisten taustaohjelmien käytön OpenCL-ytimien suorittamiseen erityyppisissä grafiikoissa ja keskusjärjestelmissä. prosessorit. Projektikoodia jaetaan MIT-lisenssillä. Tukee työskentelyä alustoilla X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ja erilaisia ​​erikoistuneita ASIP (Application-Specific Instruction-set Processor) ja TTA (Transport Triggered Architecture) prosessoreja VLIW-arkkitehtuurilla.

OpenCL-ytimen kääntäjän toteutus on rakennettu LLVM:n pohjalta ja Clangia käytetään OpenCL C:n käyttöliittymänä. Oikean siirrettävyyden ja suorituskyvyn varmistamiseksi OpenCL-ytimen kääntäjä voi luoda yhdistelmätoimintoja, jotka voivat käyttää erilaisia ​​laitteistoresursseja koodin suorittamisen rinnakkain, kuten VLIW, superskalaari, SIMD, SIMT, moniytiminen ja monisäie. ICD-ajureille (Installable Client Driver) on tuki. On olemassa taustaohjelmia, jotka tukevat toimintaa CPU:n, ASIP:n (TCE/TTA), HSA-arkkitehtuuriin perustuvan GPU:n ja NVIDIA GPU:n (libcudan kautta).

Uudessa versiossa:

  • Lisätty tuki Clang/LLVM 15.0:lle.
  • Merkittävästi parannettu SPIR-V Shader -väliesitystuki CPU- ja CUDA-ajureille.
  • Erikoislaitteiston (CL_DEVICE_TYPE_ACCELERATOR) ja mukautettujen laitteiden (CL_DEVICE_TYPE_CUSTOM) ajuria, jotka eivät tue online-kääntämistä, on suunniteltu merkittävästi uudelleen. Accel- ja ttasim-ajurit on yhdistetty uuteen AlmaIF-ajuriin.
  • Työ jatkuu Vulkan-grafiikkasovellusliittymän ajurin parissa.
  • Ehdotetaan cl_khr_command_buffer-laajennuksen perustoteutusta, jonka avulla voit kirjoittaa sarjan OpenCL-komentoja suoritettavaksi yhdessä kutsussa.

Lähde: opennet.ru

Lisää kommentti