Niente di che. CUDA fornisce delle istruzioni e delle annotazioni in più per il C++, oltre ad un compilatore e una serie di librerie. Il programma C++/Cuda viene compilato in linguaggio macchina e le librerie cuda si occupano di eseguire i kernel ( che sarebbero le routine che gireranno sulla gpu ) sulla gpu.
con java si tratta di usare una libreria come jocl http://www.jocl.org/
no, perchè non supportano il gpgpu