CUDA ist für NVIDIA propietary zu überprüfen, sondern ist weit verbreitet in wissenschaftlichen Rechnens verwendet. Julia hat mehrere CUDA-bezogene Pakete, aber ich habe CUDArt benutzt, was ziemlich gut für mich funktioniert hat.
https://github.com/JuliaGPU/CUDArt.jl
Normalerweise haben Sie manuell freien Speicher Sie auf dem GPU zuordnen, aber dieses Paket hat CudaArray Klassen, die mit der Julia GC registriert sind, so dass Sie nicht über Speicherlecks zu kümmern. Wenn Ihre Speicheranforderungen anspruchsvoller sind, können Sie den Speicher natürlich manuell verwalten.
Wenn Sie mit dem Schreiben eigener Kernel beginnen, können Sie sie auch direkt von Julia aus aufrufen, wenn Sie sie nach PTX kompilieren (nicht nach geteilten Objekten/DLLs). Sie können sie tatsächlich in einer bestehenden Julia-Sitzung neu laden, wenn Sie sich auf diese Weise nähern.
Es würde mich interessieren, einige Vergleiche zwischen OpenCL und dem CUDAnative Paket, um zu sehen, wenn es Entwicklung ist abgeschlossen . Mit OpenCL vermeiden Sie natürlich die Herstellersperre. –