How to configure GPU to work in TCC mode on Windows 10?

I'm using Windows 10, and I want my GPU to dedicate itself to computing, instead of graphics. Here is the information on MATLAB:

>> gpuDevice

ans = 

  CUDADevice with properties:

                      Name: 'Quadro M1000M'
                     Index: 1
         ComputeCapability: '5.0'
            SupportsDouble: 1
             DriverVersion: 8
            ToolkitVersion: 7.5000
        MaxThreadsPerBlock: 1024
          MaxShmemPerBlock: 49152
        MaxThreadBlockSize: [1024 1024 64]
               MaxGridSize: [2.1475e+09 65535 65535]
                 SIMDWidth: 32
               TotalMemory: 2.1475e+09
           AvailableMemory: 1.6915e+09
       MultiprocessorCount: 4
              ClockRateKHz: 1071500
               ComputeMode: 'Default'
      GPUOverlapsTransfers: 1
    KernelExecutionTimeout: 1
          CanMapHostMemory: 1
           DeviceSupported: 1
            DeviceSelected: 1

And here the result when I went to C:\Program Files\NVIDIA Corporation\NVSMI\ and used the command line:

C:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi.exe -L
GPU 0: Quadro M1000M (UUID: GPU-10af5042-4cf4-0ad4-a314-abc9b616b1a8)

Tried the instructions on this site: https://blogs.fau.de/johanneshabich/2010/12/10/windows-and-cuda-enabling-tcc-with-nvidia-smi/

C:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi -g 0 -dm 1
Unable to set driver model for GPU 0000:01:00.0: Not Supported
Treating as warning and moving on.
All done

How can I fix this? I really need to use the GPU in computing mode only . Please help me, thank you very much :)


Hello Dang Manh Truong!

If you wish to use your Quadro GPU strictly for computing, I recommend NVidia NSight Monitor. Once you open it as administrator, you can find in the properties section two interesting settings: a) WDDM which is set by default to true b) WDDM timeout in milliseconds

Setting WDDM to false will deactivate that Windows Watchdog and will enable you to use your GPU however you wish. But be cautious: your screen may freeze. Not to worry, it will unfreeze once it's done with its computation.

If you wish to avoid screen freeze you can increase WDDM timeout by setting that value to a higher one. This would, of course, require code optimization to fit within the time frame.

One other thing you could do is right click on the desktop and open NVidia Control panel. There, at the 3d Settings Section you will have the "Configure SLI, Surround,PhysX" settings. If you open it, you will see that the PhysX processor is set (by default) to Auto-select. And the OS of course selects the GPU to render your display. Set it to CPU. Now your display will be processed by the CPU.

One last thing, GeForce cards do not support TCC, only WDDM. Quadro I believe supports both so there might be a way to set it to TCC if this is what you want, but it will be useless.. The Quadro version you have cannot be set in that mode. You can read more from this link: https://devtalk.nvidia.com/default/topic/513659/can-tcc-mode-be-enabled-with-quadro-2000m-4000m/

Hope it helps. Best of luck ;)

ps. Use TechPowerUp GPU-Z for real-time gpu resource monitoring


For windows, open command window as administrator

Enter the following command:

nvidia-smi -g 0 -fdm 1

Reboot