Il miglior approccio per GPGPU / CUDA / OpenCL in Java?



Answers

Si può anche considerare Aparapi . Consente di scrivere il codice in Java e tenterà di convertire bytecode in OpenCL in fase di runtime.

Piena divulgazione Sono lo sviluppatore di Aparapi.

Question

Il calcolo generico su unità di elaborazione grafica ( GPGPU ) è un concetto molto interessante per sfruttare la potenza della GPU per qualsiasi tipo di calcolo.

Mi piacerebbe utilizzare GPGPU per l'elaborazione di immagini, particelle e operazioni geometriche veloci.

In questo momento, sembra che i due contendenti in questo spazio siano CUDA e OpenCL. Mi piacerebbe sapere:

  • OpenCL è ancora utilizzabile da Java su Windows / Mac?
  • Quali sono i modi in cui le librerie possono interfacciarsi con OpenCL / CUDA?
  • Sta usando JNA direttamente un'opzione?
  • Sto dimenticando qualcosa?

Ogni esperienza / esempi / storie di guerra del mondo reale sono apprezzate.




Ho usato JOCL e ne sono molto felice.

Il principale svantaggio di OpenCL rispetto a CUDA (almeno per me) è la mancanza di librerie disponibili (Thrust, CUDPP, ecc.). Tuttavia CUDA può essere facilmente portato su OpenCL, e osservando come funzionano queste librerie (algoritmi, strategie, ecc.) È davvero molto bello, dato che si impara molto con esso.




Seguendo gli ultimi risultati di Google, suppongo che tensorflow sia il miglior approccio al calcolo su GPU, non solo OpenCL. Tensorflow supporta i calcoli OpenCL e CUDA con la stessa API.




Posso anche raccomandare JOCL di jogamp.org , funziona su Linux, Mac e Windows. CONRAD , ad esempio, utilizza pesantemente OpenCL in combinazione con JOCL.




Links