CUDA è proprietarie per NVIDIA, ma è ampiamente usato in calcolo scientifico. Julia ha diversi pacchetti relativi a CUDA, ma ho usato CUDArt che ha funzionato abbastanza bene per me.
https://github.com/JuliaGPU/CUDArt.jl
Di solito si deve manualmente memoria libera di allocare sulla GPU, ma questo pacchetto ha classi CudaArray che sono registrati con la Julia GC, in modo da non dovete preoccuparvi di perdite di memoria. Quando le tue esigenze di memoria sono più impegnative, puoi ovviamente gestire la memoria manualmente.
Quando si inizia a scrivere i propri kernel, è anche possibile richiamarli direttamente da Julia se li si compila su PTX (non su oggetti condivisi/dll). Puoi effettivamente vivere ricaricarli all'interno di una sessione di Julia esistente se ti avvicini in questo modo.
fonte
2015-06-15 18:15:48
sarei interessato a vedere qualche confronto di prestazioni tra OpenCL e il pacchetto CUDAnative quando è lo sviluppo è completo . Ovviamente, con OpenCL si evita il blocco del fornitore. –