Problems installing CUDA with Lenovo GTX 960M

Hi There!

Chat support told me to post this since they could not help.

Just bough a new Lenovo Y50 laptop with a GTX 960M graphics adapter. I have problems installing CUDA properly.

Symptoms:

  • Windows 8.1 64 bit.
  • Device manager shows two graphic adapters: NVidia GTX 960M and Intel HD Graphics 4600. Both running properly according to device manager.
  • In “Manage 3D Settings” - global settings to use Nvidia performance processor (instead of auto-select).
  • Did all windows updates.
  • Installing GPU driver rev. 350.12 with no issues.
  • When running the CUDA 7 installer it tells me that “This graphics driver could not find compatible graphics hardware. You may continue installation but you will not be able to run CUDA applications.”
  • Running same installer on another laptop with GT 755M - installation recognizes graphics adapter with no problems.
  • Chatting with CUDA chat support:
    First supporter told me that I need to install visual studio first. Did that. Did not help.
    Second supporter told me to install anyway and send him the report of two checks: DeviceQuery.exe and BandwidthTest.txt

Resutls below:

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0\bin\win64\Debug>deviceQuery.
exe
deviceQuery.exe Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 960M"
  CUDA Driver Version / Runtime Version          7.0 / 7.0
  CUDA Capability Major/Minor version number:    5.0
  Total amount of global memory:                 4096 MBytes (4294967296 bytes)
  ( 5) Multiprocessors, (128) CUDA Cores/MP:     640 CUDA Cores
  GPU Max Clock rate:                            1176 MHz (1.18 GHz)
  Memory Clock rate:                             2505 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 2097152 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536),
3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Mo
del)
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simu
ltaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.0, CUDA Runtime Versi
on = 7.0, NumDevs = 1, Device0 = GeForce GTX 960M
Result = PASS

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0\bin\win64\Debug>

And

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0\bin\win64\Debug>bandwidthTes
t.exe
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: GeForce GTX 960M
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     12346.6

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     310303040.0

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     67660.2

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may v
ary when GPU Boost is enabled.

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0\bin\win64\Debug>

Any suggestions on how to solve this “compatible hardware not found” issue? Could this be that the graphics card is new and the CUDA installer does not include its VID/PID in its supported hardware list?

Suggestions please.
Thanks in advance.

The issue appears to be already solved.

Yes, the CUDA 7 installer does not contain a driver that recognizes the GTX 960. The correct answer is to:

  1. Install Visual Studio first
  2. Either use the existing driver on your machine or install a compatible driver - the 350.12 driver you used is fine.
  3. Run the CUDA 7 installer, but deselect the option to install the driver.

Follow the other instructions from the windows getting started guide to verify your install, but if you can run those 2 tests and get the above results, you appear to have a proper install.

http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-microsoft-windows/index.html#abstract

I would like to know if CUDA 9.0 works with GTX 960 M