Al momento, sto provando a creare un'applicazione Java che utilizza la funzionalità CUDA. La connessione tra CUDA e Java funziona bene, ma ho un altro problema e volevo chiederti se i miei pensieri a riguardo sono corretti.Passare i puntatori tra C e Java attraverso JNI
Quando chiamo una funzione nativa da Java, gli passaggio alcuni dati, le funzioni calcola qualcosa e restituisce un risultato. È possibile, lasciare che la prima funzione restituisca un riferimento (puntatore) a questo risultato che posso passare a JNI e chiamare un'altra funzione che esegue ulteriori calcoli con il risultato?
La mia idea era di ridurre il sovraccarico derivante dalla copia dei dati da e verso la GPU lasciando i dati nella memoria della GPU e semplicemente passando un riferimento ad esso in modo che altre funzioni possano usarlo.
Dopo aver provato un po 'di tempo, ho pensato per me stesso, questo non dovrebbe essere possibile, perché i puntatori vengono eliminati al termine dell'applicazione (in questo caso, quando termina la funzione C). È corretto? O sono solo cattivo in C per vedere la soluzione?
Modifica: Bene, per espandere leggermente la domanda (o renderla più chiara): la memoria è allocata dalle funzioni native JNI deallocate quando termina la funzione? O posso ancora accedervi finché l'applicazione JNI non termina o quando la svendo manualmente?
Grazie per il vostro input :)
anche https://stackoverflow.com/q/5802340/632951 – Pacerier