Ask Your Question

Device GeForce GTX 980 is NOT compatible with current GPU module build

asked 2015-08-10 10:45:58 -0500

Ahryman40k gravatar image

Hi all,

I had compiled opencv 2.4.11 with CUDA 7 and Cublas, there was no error at compile time. But, I'm still not understand why no tests are available when running opencv_test_gpu:

[ GPU INFO ]    Run on OS Windows x64.
*** CUDA Device Query (Runtime API) version (CUDART static linking) ***

Device count: 1

Device 0: "GeForce GTX 980"
  CUDA Driver Version / Runtime Version          7.0 / 7.0
  CUDA Capability Major/Minor version number:    5.2
  Total amount of global memory:                 4096 MBytes (4294967296 bytes)
  GPU Clock Speed:                               1.28 GHz
  Max Texture Dimension Size (x,y,z)             1D=(65536), 2D=(65536,65536), 3D=(4096,4096,4096)
  Max Layered Texture Size (dim) x layers        1D=(16384) x 2048, 2D=(16384,16384) x 2048
  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 block:           1024
  Maximum sizes of each dimension of a block:    1024 x 1024 x 64
  Maximum sizes of each dimension of a grid:     2147483647 x 65535 x 65535
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and execution:                 Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Concurrent kernel execution:                   Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support enabled:                No
  Device is using TCC driver mode:               No
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
      Default (multiple host threads can use ::cudaSetDevice() with device simultaneously)

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version  = 7.0, CUDA Runtime Version = 7.0, NumDevs = 1

Run tests on all supported devices

[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[  PASSED  ] 0 tests.

Running opencv_perf_gpu.exe also produces a strange unexpected result :

[   INFO   ]    Implementation variant: cuda.
[ FAILURE  ]    Device GeForce GTX 980 is NOT compatible with current GPU module build.

Could someone helps me to find an explanation ? Thanks.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2015-08-11 06:08:24 -0500

updated 2015-08-11 06:08:50 -0500

When your program tries to execute code on a GPU the driver will check the executable for suitable code to run on your specific GPU. The executable is known as a "fat binary", meaning it can contain code for multiple architectures. In the case of GPUs, the executable can contain machine code for different GPUs as well as PTX, which is a slightly higher level language (looks like assembly) which can be compiled at runtime to the specific GPU.

In your case you would need compute capability 5.2 for best performance, however, OpenCV does not automatically build for that compute capability yet. What you need to do is open up the cmake-gui interface and look for CUDA_ARCH_BIN in the CUDA group that was set to the value 1.1 1.2 1.3 2.0 2.1(2.0) 3.0 3.5. You then appended 5.2 to the list, generate and then compile again.

Then it should work.

edit flag offensive delete link more


When using cmake_gui on windows, I have 3 variables:

  • CUDA_ARCH_BIN: 3.0 3.5 5.0
  • CUDA_ARCH_PTX: 5.0
  • CUDA_GENERATION can be auto, fermi or Kepler. I set it to void value

I compiled with these values, but you say for maxwell cards, I have to use 5.2 instead of 5.0 ?

Ahryman40k gravatar imageAhryman40k ( 2015-08-12 08:25:07 -0500 )edit

That is what the nvidia website states yes.

StevenPuttemans gravatar imageStevenPuttemans ( 2015-08-12 08:32:13 -0500 )edit

Question Tools

1 follower


Asked: 2015-08-10 10:45:58 -0500

Seen: 1,303 times

Last updated: Aug 11 '15