GeForce 940MX decoding

Recently I’ve been struggling with decoding video using NVIDIA sample project. I use GeForce 940MX GPU with CUDA enabled. DeviceQuery project outputs following information:

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

Detected 1 CUDA Capable device(s)

Device 0: "GeForce 940MX"
  CUDA Driver Version / Runtime Version          8.0 / 8.0
  CUDA Capability Major/Minor version number:    5.0
  Total amount of global memory:                 2048 MBytes (2147483648 bytes)
  ( 3) Multiprocessors, (128) CUDA Cores/MP:     384 CUDA Cores
  GPU Max Clock rate:                            1242 MHz (1.24 GHz)
  Memory Clock rate:                             900 Mhz
  Memory Bus Width:                              64-bit
  L2 Cache Size:                                 1048576 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 Model)
  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 simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce 940MX
Result = PASS

When I run cudaDecodeGL sample project I got following result:

[CUDA/OpenGL Video Decode]
Command Line Arguments:
argv[0] = cudaDecodeGL.exe
argv[1] = test_stream2.264
argv[2] = out.yuv
[cudaDecodeGL]: input file: <test_stream2.264>
        VideoCodec      : AVC/H.264
        Frame rate      : 30/1fps ~ 30fps
        Sequence format : Progressive
        Coded frame size: [176, 96]
        Display area    : [0, 0, 176, 96]
        Chroma format   : 4:2:0
        Bitrate         : 488kBit/s
        Aspect ratio    : 11:6

argv[0] = cudaDecodeGL.exe
argv[1] = test_stream2.264
argv[2] = out.yuv

> Device 0: <   GeForce 940MX >, Compute SM 5.0 detected
  -> GPU 0: < GeForce 940MX > driver mode is: WDDM
reshape() glViewport(0, 0, 176, 96)
>> initGL() creating window [176 x 96]
> Using CUDA/GL Device [0]: GeForce 940MX
> Using GPU Device: GeForce 940MX has SM 5.0 compute capability
  Total amount of global memory:     2048.0000 MB
>> modInitCTX<NV12ToARGB_drvapi64.ptx > initialized OK
>> modGetCudaFunction< CUDA file:              NV12ToARGB_drvapi64.ptx >
   CUDA Kernel Function (0x1cad3eb6a30) = <   NV12ToARGB_drvapi >
>> modGetCudaFunction< CUDA file:              NV12ToARGB_drvapi64.ptx >
   CUDA Kernel Function (0x1cad3eb3c90) = <     Passthru_drvapi >
  Free memory:     1699.4781 MB
> VideoDecoder::cudaVideoCreateFlags = <4>Use CUVID decoder

Assertion failed: CUDA_SUCCESS == oResult, file VideoDecoder.cpp, line 101

oResult gets set to CUDA_ERROR_NO_DEVICE(100) - which means that the program could not find CUDA capable device.

The only conclusion I came up with is that my GPU does not support video decoding, this table seems to state the same:

Am I right and I cannot decode videos using this GPU or is it another issue ?

Since your device is GM108, it does not support video decoding and that’s the reason for the error you are getting

GF 920m - 2Gb in Acer Extensa EX2520G support Cuda/NVENC video decoding or not?