Is CUDA Toolkit package (Local Installer) contains newest NVidia standard driver? Standard I mean most popular.
For example driver for geforce family like 347.88?
No.
The cuda toolkit installers are a snapshot in time. They contain a reasonably current driver at that time, but as time goes by, newer drivers are released, and these don't automatically appear in a given toolkit installer.
Related
Not a duplicate of this question
When downloading NVIDIA GPU drivers, I've also been asked for some time which CUDA toolkit I prefer.
Now, what does this choice imply when downloading a driver?
As far as I know, different CUDA toolkits have different minimum drivers supporting them (also stated in the release notes), but what does this choice at the driver download page imply?
Generally speaking, there is a backwards compatibility strategy for drivers with respect to CUDA toolkits. For example, the latest driver should work with any older CUDA toolkit. An older driver may not work with a newer CUDA toolkit.
That is a general statement of compatibility. You can find it expressed here (e.g. table 1) also.
However, each CUDA toolkit ships with a particular driver branch. For example CUDA 10.1 ships with a 418.xx driver branch (this corresponds to the version of the GPU driver that is bundled with the CUDA toolkit installer).
So even though a 430.xx driver is compatible with and should work with CUDA 10.1, that isn't actually the driver branch that ships with CUDA 10.1
The dropdown allows you to select a driver that is in the same branch as the driver that particular CUDA toolkit was shipped with and has the highest test coverage with.
Since newer drivers ship with the CUDA runtime (I can choose 9.1 or 9.2 in the drivers download page) my question is: should my library (which uses a CUDA kernel internally) be shipped with -lcudart_static?
I had issues launching kernels compiled with 9.2 on systems which used 9.1 CUDA drivers. What's the most 'compatible' way of ensuring my library will run everywhere a recent CUDA driver is installed? (I'm already compiling for a virtual architecture)
Since newer drivers ship with the CUDA runtime (I can choose 9.1 or 9.2 in the drivers download page)
No, that's incorrect. That choice in the drivers download page is related to the fact that each CUDA version has a minimum required driver version associated with it. It does not mean that the driver ships with the CUDA runtime (stated another way, the driver does not install libcudart.so on linux and never has - with some careful experimentation on a clean install, you can prove this to yourself.)
Some additional comments:
-lcudart_static is actually the default for current/recent versions of nvcc. You can discover this by reading the nvcc manual. Therefore, by default, your executable, when compiled/built with nvcc should already be statically linked to the CUDA runtime library corresponding to the version of nvcc that you are using for compilation. The reason you might need to specify this or something like this is if you are building an application with e.g. the gnu toolchain (on linux) rather than nvcc.
The purpose of static linking to the CUDA runtime library is, as you surmise, so that an application can be built in such a way that it does not need an installation of the CUDA toolkit to run properly. It only needs a machine with a proper GPU driver install.
The most compatible way to ensure that an application will run on a range of machines with a range of GPU driver installs is to compile your application using the oldest CUDA toolkit required to meet the needs of the earliest GPU driver in the range you intend to cover. Again, you can refer to the table here.
I have recently installed cuda 6.0 with a view of performance increment in windows 7 . the toolkit installer has display driver installer along with it and it installed display driver version named as 9.18.13.4062 . is this version mean 340.62???
Also it is mentioned that driver version 340.29 with cuda increases performance according to this link
does 340.xx series have the same performance ?? I couldnot get the version 340.29 driver. where can i download it from???
340.62 is the Windows GPU driver that ships with the CUDA 6.5 (windows) installer.
340.29 is the Linux GPU driver that ships with the CUDA 6.5 (linux) installer.
The link you have provided is referring to linux. 340.62 and 340.29 should be comparable, as much as "comparable" can be stated about a windows platform vs. a linux platform
Regarding the performance in the article linked, CUDA 6.5 (i.e. not just the driver) has significant performance increases in various libraries and in the compiler as well.
To get an idea of these performance increases, there is a webinar you can attend tomorrow (wednesday, September 17th) by following the link here.
My run time system gives an error "CUDA driver version is insufficient for CUDA runtime version" when I try to run CUDA programs on Mac OS X 10.6.8 installed with CUDA ToolKit 5.0 (CUDA driver: 5.0.45) and GPU driver: 1.6.36.10 for GeForce 900M. I was unable to locate the correct (updated) GPU drivers for GeForce 900M at NVIDIA site. Kindly suggest a solution.
A given CUDA version (e.g. 5.0) has a minimum GPU driver version associated with it. Any newer version should work, but versions older than the minimum driver version will give an error, as you are seeing.
based on my memory:
cuda 4.0: 270.41.19
cuda 5.0: 304.54
cuda 5.5: 319.37
The above may be approximate, but it gives you an idea. For CUDA 4.0, for example, any GPU driver that is 270.41.19 or newer should work. An older driver (like 256.02) would not work. I don't recall the minimum driver versions for other CUDA versions, but it's not difficult to determine, by visiting the various CUDA download pages.
The most recent driver for your platform appears to be 256.02. Even CUDA 4.0 requires 270.41.19 or newer. So the most recent CUDA version you could use with 256.02 would be CUDA 3.2 The solution in that case, would be to upgrade your GPU driver to 256.02, and remove the CUDA 5.0 toolkit and install CUDA 3.2.
CUDA 3.2 is pretty old, so there will be many features that will be unavailable in that version. You'll want to have appropriate versions of the documentation, which will be installed on your machine along with the CUDA toolkit (e.g. in /usr/local/cuda/doc or similar)
To develop NVIDIA CUDA programs, the tools needed are:
Developer drivers
CUDA Toolkit
GPU Computing SDK
What is this developer driver? Installing it silently overrides any NVIDIA graphics driver that is already installed. So, how is the developer driver different from the usual NVIDIA graphics driver? What extra components or functionality does it contain?
The developer driver is available in both 32-bit and 64-bit flavours. If I am developing 32-bit Visual C++/CUDA projects on 64-bit Windows 7, which flavour of the developer driver do I choose? Why?
From the developer download page:
Note: The developer driver packages below provide baseline support for the widest number of NVIDIA products in the smallest number of installers. More recent production driver packages for developers and end users may be available at www.nvidia.com/drivers.
The developer driver is released with the Toolkit and is intended to have wide support for all CUDA capable devices. On the other hand the drivers on the main driver page are released as appropriate; the main drivers have full support for CUDA, but each one may support a subset of devices.
Incidentally, when you install a NVIDIA driver it tells you what version is currently installed and what version you're installing (unless you choose a silent install!).