Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between the CUDA tookit and the CUDA sdk

Tags:

cuda

gpgpu

nvidia

I am installing CUDA on Ubuntu 14.04 and have a Maxwell card (GTX 9** series) and I think I have installed everything properly with the toolkit as I can compile my samples. However, I read that in places that I should install the SDK (This appears to be talked about with the sdk 4). I am not sure if the toolkit and sdk are different? As I have a later 9 series card does that mean I have CUDA 6 running? Here is my nvcc version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2014 NVIDIA Corporation
Built on Wed_Aug_27_10:36:36_CDT_2014
Cuda compilation tools, release 6.5, V6.5.16

I am following a book and I need to include <cutil.h> and I can't find that file in the includes anywhere where I installed it.

I followed this guide provided by nvidia and as I have done what they say this is why I am confused http://developer.download.nvidia.com/compute/cuda/6_5/rel/docs/CUDA_Getting_Started_Linux.pdf

Thanks for help

like image 440
bubblebath Avatar asked Jan 27 '15 17:01

bubblebath


People also ask

Is CUDA and CUDA Toolkit the same?

CUDA and the cudatoolkit refer to the same thing. CUDA is a library used by many programs like Tensorflow and OpenCV . cudatoolkit is a set software on top of CUDA to make GPU programming easy with CUDA .

What is CUDA SDK?

The NVIDIA software development kit for GPU computing (CUDA SDK) is a collection of code samples, how-to examples, and white papers designed to help developers use the NVIDIA CUDA parallel computing platform and programming model.

What is CUDA and CUDA Toolkit?

The CUDA Toolkit from NVIDIA provides everything you need to develop GPU-accelerated applications. The CUDA Toolkit includes GPU-accelerated libraries, a compiler, development tools and the CUDA runtime.


1 Answers

CUDA Toolkit is a software package that has different components. The main pieces are:

  1. CUDA SDK (The compiler, NVCC, libraries for developing CUDA software, and CUDA samples)
  2. GUI Tools (such as Eclipse Nsight for Linux/OS X or Visual Studio Nsight for Windows)
  3. Nvidia Driver (system driver for driving the card)

It has also many other components such as CUDA-debugger, profiler, memory checker, etc.

The fact that you are able to compile and run samples means that you probably installed the Toolkit fully and have the SDK, the driver, and the Samples at least.

As for the cutil.h, doing a search in my CUDA 6.5 installation with find -L . -iname "cutil.h" yielded no results. Also looking at other related questions on SO, it seems like this header file does not exist in CUDA installations anymore (since CUDA 5.0). However, looking at the samples, you can find some newer utility headers such as helper_cuda.h being in use. Helpers like these should be located in somewhere like /usr/local/cuda/samples/common/inc in your OS. helper_cuda.h is a header I almost always include in my CUDA programs since I find utility functions such as checkCudaErrors() very useful.

If you are following a book, my recommendation is; try to compile the code, and whenever you get an error saying a utility function is missing, do a grep search in the header files included in samples/common/inc. You will most probably find the missing utility functions there and then you can include the necessary headers accordingly.

like image 164
mty Avatar answered Oct 09 '22 02:10

mty