Rilascio di PoCL 6.0 con implementazione indipendente dello standard OpenCL

È stato pubblicato il rilascio del progetto PoCL 6.0 (Portable Computing Language OpenCL), che sviluppa l'implementazione dello standard OpenCL, indipendente dai produttori di acceleratori grafici e consente di utilizzare vari backend per l'esecuzione di kernel OpenCL su diversi tipi di processori grafici e centrali. Il codice del progetto è distribuito con licenza MIT. È supportato su piattaforme X86_64, MIPS32, ARM v7, AMD HSA APU, GPU NVIDIA e vari processori ASIP (Application-Specific Instruction-set Processor) e TTA (Transport Triggered Architecture) con architettura VLIW.

L'implementazione del compilatore dei nuclei OpenCL è basata su LLVM, mentre Clang è utilizzato come frontend per OpenCL C. Per garantire la giusta portabilità e prestazioni, il compilatore dei nuclei OpenCL può generare funzioni combinate che utilizzano diverse risorse hardware per parallelizzare l'esecuzione del codice, come VLIW, superscalare, SIMD, SIMT, multicore e multithreading. È supportato il driver ICD
(Installable Client Driver). Sono disponibili backend per garantire il funzionamento tramite CPU, ASIP (TCE/TTA), GPU basate sull'architettura HSA e GPU NVIDIA (tramite libcuda).

Nella nuova versione:

  • Aggiunta la compatibilità con Clang/LLVM 18.0, interrotta la compatibilità con LLVM 10, 11, 12 e 13.
  • Implementato un nuovo backend cpu-tbb, che utilizza la libreria OneTBB, sviluppata da Intel, per il parallelismo delle operazioni e la pianificazione dell'esecuzione dei task.
  • Nel backend cpu, che garantisce l'esecuzione dei kernel OpenCL sulla CPU, è stata aggiunta la compatibilità con lo standard di programmazione parallela OpenMP, è stato aggiunto il metodo clGetDeviceAndHostTimer(), e sono stati implementati estensioni sperimentali cl_pocl_svm_rect, cl_pocl_command_buffer_svm e cl_pocl_command_buffer_host_buffer.
  • Nel backend "Remote", progettato per organizzare computazioni distribuite tramite l'elaborazione di comandi OpenCL su altri host nella rete, su cui è in esecuzione il processo in background pocld, è stata aggiunta la compatibilità con CG SVM (Coarse-Grain Shared Virtual Memory), la possibilità di accedere al backend utilizzando il protocollo di comunicazione Vsock e il supporto per la compilazione e il collegamento di programmi tramite le funzioni clCompileProgram() e clLinkProgram().
  • Nel backend LevelZero, che utilizza l'API Level Zero, è consentita la creazione di buffer di dimensioni superiori a 4 GB, ed è stata implementata l'ottimizzazione dei processi di sincronizzazione.
  • Nel backend CUDA sono state implementate le operazioni sub_group_shuffle e sub_group_shuffle_xor, e aumentato il limite di CL_DEVICE_MAX_MEM_ALLOC_SIZE.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster