Release av PoCL 3.0 med oberoende implementering av OpenCL 3.0-standarden

En version av projektet PoCL 3.0 (Portable Computing Language OpenCL) har presenterats, som utvecklar en implementering av OpenCL-standarden som är oberoende av grafikacceleratortillverkare och tillåter användning av olika backends för att exekvera OpenCL-kärnor på olika typer av grafik och centrala processorer. Projektkoden distribueras under MIT-licensen. Stöder arbete på plattformarna X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU och olika specialiserade ASIP (Application-Specific Instruction-set Processor) och TTA (Transport Triggered Architecture)-processorer med VLIW-arkitektur.

Implementeringen av OpenCL-kärnkompilatorn är byggd på basis av LLVM, och Clang används som frontend för OpenCL C. För att säkerställa korrekt portabilitet och prestanda kan OpenCL-kärnkompilatorn generera kombinationsfunktioner som kan använda olika hårdvaruresurser för att parallellisera kodexekvering, såsom VLIW, superskalär, SIMD, SIMT, multi-core och multi-threading. Det finns stöd för ICD-drivrutiner (Installable Client Driver). Det finns backends för att stödja drift via CPU, ASIP (TCE/TTA), GPU baserad på HSA-arkitektur och NVIDIA GPU (via libcuda).

I den nya versionen:

  • Minimiuppsättningen funktioner som krävs för att stödja OpenCL 3.0-specifikationen har implementerats. Stöd för OpenCL 3.0 är för närvarande endast tillgängligt på CPU-baserade backends med LLVM 14 (andra backends och äldre versioner av LLVM ger stöd för OpenCL 1.2).
  • Lade till stöd för Clang/LLVM 14.
  • Förbättrad spårning och visualisering.
  • Lade till stöd för att generera specialiserade grupper av funktioner och inkludera dem i körbara filer med OpenCL-kärnor.

Källa: opennet.ru

Lägg en kommentar