PoCL 3.0 (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:
- OpenCL 3.0 -spesifikaatiota tukevien ominaisuuksien vähimmäissarja on otettu käyttöön. OpenCL 3.0 -tuki on tällä hetkellä saatavilla vain CPU-pohjaisissa taustajärjestelmissä, joissa on LLVM 14 (muut taustajärjestelmät ja LLVM:n vanhemmat versiot tukevat OpenCL 1.2:ta).
- Lisätty tuki Clang/LLVM 14:lle.
- Parannettu jäljitys ja visualisointi.
- Lisätty tuki erityisten funktioryhmien luomiseen ja niiden sisällyttämiseen suoritettaviin tiedostoihin OpenCL-ytimillä.
Lähde: opennet.ru