Sorry for a newbie question CUDA

What’s the difference between CUDA Toolkit and CUDA SDK, I am confused of which one to install.


The toolkit includes the compiler and libraries needed to compile and/or run CUDA code. The SDK is basically just example code and optional. Though, for a newbie, the SDK is extremely well documented example code that you can learn a lot from.

The SDK also includes a utility library which is used in the example programs, which is very useful to use in your own programs. (It isn’t really documented, but the header files are pretty clear.)

Meaning they are two different things and do not overlap each other?

Correct. “Toolkit” is the compiler and “SDK” is the examples (and utility library). The toolkit usually gets installed to /usr/local/cuda and the SDK goes in your home directory (on Linux, anyway).

Thank you so much!

I have to say, SDK is somewhat a strange name. Normally SDK is more than just examples.

Agreed. One can develop CUDA software entirely without the “Software Development Kit”. :)

Yes it’s strange name indeed now that I think about it. The Toolkit is really the SDK, the SDK is more like a convenient examples package.

I have installed both the toolkit (v1.1) and SDK on Linux (RHEL 5), in both 64 bits and 32 bits. I can run the SDK examples in ‘release’ mode in 64-bit Linux fine (with a 8800GT card). However, when I try to run any of the SDK examples (such as cppIntegration) in either ‘release’ or ‘emurelease’ mode in 32-bit Linux, I get the error message:

cppIntegration: error while loading shared libraries: /usr/local/cuda/lib/ cannot restore segment prot after reloc: Permission denied

Does anyone know what the problem is?


You may disable SELinux to solve this problem.

It works (although this is needed only in 32-bit RHEL 5)! Thank you.