CUDA application deployment What is correct deployment

What user has to install in order to have cuda working?
I noticed that cuda is not automatically installed with drivers therefore application does not work.

Where is some runtime, does user have to install whole toolkit?

1 Like

I think, user must copy runtime *.dll to folder when executable file. For example: cutil32.dll cudart.dll / maybe glut32.dll glew32.dll or nvcuvid.dll. Look dependence!

Problem is that e.g. cudart is not delivered with nvidia drivers and dlls should be working if they are in path so no copying.

This is uncomfort, there should be some runtime installer.

The application developer should provide cudart.dll in there application’s bin directory. Don’t make your users copy dlls around.

Is it legal to distribute cuda runtime libs in this way? and if you have multiple plarforms, you need various libs

Yes, you are allowed to redistribute CUDART, CUBLAS, and CUFFT as needed. Your app will be built against a particular CUDART/CUBLAS/CUFFT (e.g., in newer versions of the toolkit, cudart32_30_08.dll or something like that), and you’ll need to redistribute that exact version.

This is not so simple, e.g. I am using CUDA.NET so application is not built againist particular cuda version.

If CUDA.NET uses the driver API, then you do not need to redistribute the CUDART DLL.

No cuda.net requires cudart.
Nvidia could prepare in download site cuda runtime download (containing only these libs, not whole toolkit).

And you could also do something with TDR (ask Microsoft to remove it?).