Proposed setup for hardware-accelerated scaling and encoding:
- GPU Model: Nvidia Quadro P4000
- GPU arch: Pascal GP104
- Centos: 7
- Kernel + header: 3.10
- Gcc: 4.8.5
- Glibc: 2.17
- CUDA Driver 10.1
- CUDA Runtime 10.0
- Nvidia driver: 418.43
$ chmod 755 NVIDIA-Linux-x86_64-418.43.run
$ ./NVIDIA-Linux-x86_64-418.43.run -h
$ ./NVIDIA-Linux-x86_64-418.43.run -x
$ cd ./NVIDIA-Linux-x86_64-418.43
$ ./nvidia-installer # can --uninstallVerify the driver is loaded:
$ lsmod | grep nvidia
$ cat /proc/driver/nvidia/version
$ ./nvidia-smiVerify that CUDA can talk to GPU card:
~/cuda-10.0-samples/NVIDIA_CUDA-10.0_Samples/1_Utilities/deviceQuery/deviceQuery
[...]
Device 0: "Quadro P4000"
CUDA Driver Version / Runtime Version 10.1 / 10.0
[...]NVENC needs for custom headers maintained outside of ffmpeg sources.
This is added in the install script.
$ vmstat -w -n 1 # check "us" (user) column
$ nvidia-smi dmon -i 0 # check "enc" columnGot this message after ffmpeg version bumped:
[h264_nvenc @ 0x25d3440] Driver does not support the required nvenc API version. Required: 9.0 Found: 8.1
[h264_nvenc @ 0x25d3440] The minimum required Nvidia driver for nvenc is 390.25 or newer
Version doesn't seem to match anything but bumping the driver from 415 to 418 solved it.