DOMANDA [JAVA] Sfrutta il calcolo 3D della GPU?

Pubblicità

Alessandro001

Utente Attivo
Messaggi
166
Reazioni
7
Punteggio
44
Salve, stavo eseguendo un codice abbastanza corposo con dati abbastanza importanti infatti l'esecuzione è durata alcuni minuti.
Ho notato dai grafici del Gestore delle Risorse che il grafico della GPU è salito dal 18% al 41% e alla fine dell'esecuzione è tornato al suo normale 18%.
Il compilatore non dovrebbe sfruttare la CPU?
 
Dipende dal codice che stai eseguendo. Intanto JAVA ha supporto sia per CUDA che OpenCL. Poi c'e' Project Sumatra, il cui scopo era ( e' cominciato nel 2016 ) di supportare nativamente il GPGPU nel compilatore.

Di preciso non lo so, ma non mi meraviglierebbe se Hotspot sfruttasse le GPU per eseguire determinate operazioni. E se usi librerie matematiche, e' praticamente sicuro che sfruttino le GPU laddove presenti e supportate.
 
Dipende dal codice che stai eseguendo. Intanto JAVA ha supporto sia per CUDA che OpenCL. Poi c'e' Project Sumatra, il cui scopo era ( e' cominciato nel 2016 ) di supportare nativamente il GPGPU nel compilatore.

Di preciso non lo so, ma non mi meraviglierebbe se Hotspot sfruttasse le GPU per eseguire determinate operazioni. E se usi librerie matematiche, e' praticamente sicuro che sfruttino le GPU laddove presenti e supportate.
Ciao grazie della risposta.
Uso ambiente BlueJ e svolgendo lo stesso codice prima sul mio pc e poi sul pc della scuola ho notato che il tempo di esecuzione sulla mia macchina è 5 volte inferiore.
Ma sulla mia macchina sfrutta la GPU mentre su quella della scuola sfrutta la CPU...
Non uso librerie matematiche ma solo calcoli con numeri molto grandi e cicli ripetuti centinaia di volte.
 
Uso ambiente BlueJ e svolgendo lo stesso codice prima sul mio pc e poi sul pc della scuola ho notato che il tempo di esecuzione sulla mia macchina è 5 volte inferiore.

Questo puo' dipendere dalle differenze hardware tra le macchine in questione. Non conoscendole, non posso arrivare ad una conclusione.

Quel che posso dirti, e' che le CPU moderne implementano unita' di calcolo vettoriale ( SIMD ). Queste unita' sono in grado, senza l'ausilio di alcuna GPU, di accelerare, di qualche ordine di grandezza, i calcoli matematici su matrici e vettori.

Non uso librerie matematiche ma solo calcoli con numeri molto grandi e cicli ripetuti centinaia di volte.

Il che mi fa pensare ad ottimizzazioni che sfruttano le unita' vettoriali. Del resto, a parte il progetto Sumatra, non ho trovato nulla che indichi l'implementazione del GPU offloading nei compilatori Java. Si puo' fare, ma usando librerie apposite come JCuda e JOcl.
 
Pubblicità
Pubblicità
Indietro
Top