PoCL 6.0-Release mit einer unabhÀngigen Implementierung des OpenCL-Standards

Die Veröffentlichung der Projektversion PoCL 6.0 (Portable Computing Language OpenCL) wird prĂ€sentiert, das die Implementierung des OpenCL-Standards vertieft, unabhĂ€ngig von Herstellern von Grafikbeschleunigern ist und verschiedene Backends fĂŒr die AusfĂŒhrung von OpenCL-Kernen auf verschiedenen Typen von Grafik- und Zentralprozessoren ermöglicht. Der Code des Projekts wird unter der MIT-Lizenz vertrieben. Die UnterstĂŒtzung umfasst Plattformen wie X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU und verschiedene spezialisierte ASIP (Application-Specific Instruction-set Processor) und TTA-Prozessoren (Transport Triggered Architecture) mit VLIW-Architektur.

. Die Implementierung des OpenCL-Kerncompilers basiert auf LLVM, wĂ€hrend Clang als Frontend fĂŒr OpenCL C verwendet wird. Um die notwendige PortabilitĂ€t und Leistung zu gewĂ€hrleisten, kann der OpenCL-Kerncompiler kombinierte Funktionen generieren, die verschiedene Hardware-Ressourcen zur Parallelisierung der CodeausfĂŒhrung nutzen, wie VLIW, superskalare Architektur, SIMD, SIMT, Multicore und Multithreading. Die UnterstĂŒtzung von ICD-Treibern
(Installierbarer Client-Treiber). Es sind Backends verfĂŒgbar, um die AusfĂŒhrung ĂŒber CPU, ASIP (TCE/TTA), HSA-basierten GPU und NVIDIA GPU (ĂŒber libcuda) zu gewĂ€hrleisten.

In der neuen Version:

  • UnterstĂŒtzung fĂŒr Clang/LLVM 18.0 hinzugefĂŒgt, UnterstĂŒtzung fĂŒr LLVM 10, 11, 12 und 13 eingestellt.
  • Ein neues Backend cpu-tbb wurde implementiert, das die Bibliothek OneTBB von Intel zur Parallelisierung von Operationen und zur Planung der Aufgabenverarbeitung verwendet.
  • Im Backend cpu, das die AusfĂŒhrung von OpenCL-Kernen auf der CPU gewĂ€hrleistet, wurde die UnterstĂŒtzung fĂŒr den Standard des parallelen Programmierens OpenMP hinzugefĂŒgt, die Methode clGetDeviceAndHostTimer() hinzugefĂŒgt sowie experimentelle Erweiterungen cl_pocl_svm_rect, cl_pocl_command_buffer_svm und cl_pocl_command_buffer_host_buffer implementiert.
  • Im Backend „Remote“, das fĂŒr die Organisation verteilter Berechnungen durch Auslagerung der OpenCL-Befehlsverarbeitung auf andere Hosts im Netzwerk, auf denen der Hintergrundprozess pocld lĂ€uft, konzipiert ist, wurde die UnterstĂŒtzung von CG SVM (Coarse-Grain Shared Virtual Memory) hinzugefĂŒgt, die Möglichkeit, auf das Backend ĂŒber das Kommunikationsprotokoll Vsock zuzugreifen, sowie die UnterstĂŒtzung fĂŒr die Kompilierung und das Linken von Programmen durch die Funktionen clCompileProgram() und clLinkProgram().
  • Im LevelZero-Backend, das die Level Zero API nutzt, ist es erlaubt, Puffer mit einer GrĂ¶ĂŸe von mehr als 4 GB zu erstellen, und es wurden Optimierungen fĂŒr Synchronisationsprozesse implementiert.
  • Im CUDA-Backend wurden die Operationen sub_group_shuffle und sub_group_shuffle_xor implementiert, und das Limit fĂŒr CL_DEVICE_MAX_MEM_ALLOC_SIZE wurde erhöht.

Quelle: opennet.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster