Server Version#: 1.20.2.3343
Player Version#: 1.19.0.1399-31d8c803
So I’ve been struggling to figure out why my server is using my nvidia GPU to decode video, but not to encode. My server has a AMD Ryzen Threadripper CPU and Nvidia P4000 GPU, running Ubuntu 20.04. Digging through the logs I see the following:
Sep 28, 2020 17:49:01.793 [0x7f67627fc700] DEBUG - [Transcode] [FFMPEG] - Loaded lib: libnvidia-encode.so.1
Sep 28, 2020 17:49:01.793 [0x7f67627fc700] DEBUG - [Transcode] [FFMPEG] - Loaded sym: NvEncodeAPICreateInstance
Sep 28, 2020 17:49:01.793 [0x7f67627fc700] DEBUG - [Transcode] [FFMPEG] - Loaded sym: NvEncodeAPIGetMaxSupportedVersion
Sep 28, 2020 17:49:01.793 [0x7f67627fc700] ERROR - [Transcode] [FFMPEG] - Driver does not support the required nvenc API version. Required: 10.0 Found: 9.1
Sep 28, 2020 17:49:01.793 [0x7f67627fc700] ERROR - [Transcode] [FFMPEG] - The minimum required Nvidia driver for nvenc is 418.30 or newer
Sep 28, 2020 17:49:02.160 [0x7f67627fc700] WARN - [Transcode] Codecs: avcodec_open2 returned -38 for encoder 'h264_nvenc'
Sep 28, 2020 17:49:02.160 [0x7f67627fc700] DEBUG - [Transcode] Codecs: testing h264 (decoder) with hwdevice vaapi
Sep 28, 2020 17:49:02.160 [0x7f67627fc700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Sep 28, 2020 17:49:02.160 [0x7f67627fc700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Sep 28, 2020 17:49:02.160 [0x7f67627fc700] DEBUG - [Transcode] Codecs: testing h264 (decoder) with hwdevice nvdec
Sep 28, 2020 17:49:02.160 [0x7f67627fc700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
For some reason the logs are saying I have an old driver / NVENC API version, but as far as I can tell, I have the latest nvidia drivers installed. When I run nvidia-smi, it returns the following:
Mon Sep 28 17:55:21 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100 Driver Version: 440.100 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro P4000 Off | 00000000:21:00.0 Off | N/A |
| 50% 48C P0 30W / 105W | 26MiB / 8119MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1458 G /usr/lib/xorg/Xorg 9MiB |
| 0 1838 G /usr/bin/gnome-shell 2MiB |
+-----------------------------------------------------------------------------+
and if I look at the driver modules I get this:
find /usr/lib/modules -name nvidia.ko -exec modinfo {} \;
filename: /usr/lib/modules/5.4.0-47-generic/kernel/nvidia-440/nvidia.ko
alias: char-major-195-*
version: 440.100
supported: external
license: NVIDIA
srcversion: 79812FEC91C545B3F516DF2
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends: ipmi_msghandler
retpoline: Y
name: nvidia
vermagic: 5.4.0-47-generic SMP mod_unload
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 60:9F:61:6A:D4:C9:3C:64:35:01:B1:13:6F:DD:36:46:DB:88:1D:84
sig_hashalgo: sha512
signature: 4E:71:7F:56:8E:28:8D:6D:0A:25:73:46:9C:92:60:3F:CC:9A:28:77:
EA:28:E9:6A:34:A0:65:8B:1F:3F:4C:0B:AD:C9:5F:A1:2D:65:B1:0A:
D4:12:AE:F9:3D:0E:74:23:1A:75:FF:BB:E6:D6:D0:58:4E:42:FB:A6:
13:14:14:A5:AA:EB:F5:71:C5:7A:C7:46:FD:22:60:DB:6F:4F:28:BB:
03:C9:08:62:DD:44:D4:39:4A:BB:21:E5:5B:AB:37:00:6E:23:8C:33:
B0:8A:90:EF:F2:98:65:58:52:D2:11:9F:C0:15:08:68:0D:C4:17:98:
B5:A6:45:CD:CE:0E:DB:2A:76:A4:70:FD:73:03:80:C3:F0:3B:2F:16:
B7:E6:74:E8:68:94:9B:81:1B:2E:0D:29:AE:B7:00:C9:A6:7F:0F:B9:
C8:E2:46:51:BF:3E:93:AC:F4:DC:83:80:B0:71:B8:79:A9:BA:6C:21:
AC:72:B8:A6:B0:87:D3:C5:5F:41:53:B8:B2:58:9A:AA:DF:15:BF:FC:
71:AF:B0:57:2B:F7:87:4D:C6:66:F2:83:D2:E1:7C:26:C7:3C:77:FC:
7E:DC:59:2C:C9:29:93:F8:8F:70:10:46:67:7E:A7:C6:62:0A:EC:75:
5A:B7:CC:53:95:E7:BC:09:C9:83:68:3E:9C:17:1E:1B:26:81:04:33:
D4:D0:93:CD:E7:23:4E:95:87:0B:AE:E4:99:88:F4:63:0E:61:1C:6C:
0B:49:37:C5:45:CC:15:1C:BC:6D:A8:DE:85:27:6E:A8:37:8B:3D:A2:
E7:7E:A1:20:0E:5D:4C:CB:76:71:10:D2:BE:69:F7:4D:D7:D6:12:1F:
D6:2D:A3:88:AF:6C:2D:13:A7:32:D8:12:CC:8E:9D:5D:64:0C:50:46:
56:E3:30:41:C2:B6:5C:B9:76:D5:CD:BC:44:9A:0A:33:E6:11:A7:87:
41:47:CC:5C:76:DF:67:97:BF:9E:3B:AC:57:68:7E:89:B2:D1:75:45:
EE:A4:0C:D0:1C:50:30:FE:8E:B8:3D:E0:5C:C8:2A:0A:DF:E9:B7:B3:
A5:57:1C:2F:AA:90:18:77:7C:1C:AA:A3:7F:FC:EF:18:A9:69:FE:28:
70:7C:31:F0:CA:8C:0D:A4:83:2E:60:AA:FC:38:F3:3E:33:DB:B6:61:
58:B7:09:B7:00:A1:F7:03:25:AB:37:86:E3:26:4C:B1:C9:06:24:C2:
E6:B4:C4:13:E4:0E:D5:76:C9:15:7C:4C:6E:87:3A:92:16:04:B1:85:
33:FC:A6:9F:EE:7D:88:BE:03:28:80:C1:DB:CB:26:B0:29:C6:00:BB:
91:FA:56:BA:73:F3:C3:38:09:11:19:3F
parm: NvSwitchRegDwords:NvSwitch regkey (charp)
parm: NVreg_Mobile:int
parm: NVreg_ResmanDebugLevel:int
parm: NVreg_RmLogonRC:int
parm: NVreg_ModifyDeviceFiles:int
parm: NVreg_DeviceFileUID:int
parm: NVreg_DeviceFileGID:int
parm: NVreg_DeviceFileMode:int
parm: NVreg_InitializeSystemMemoryAllocations:int
parm: NVreg_UsePageAttributeTable:int
parm: NVreg_MapRegistersEarly:int
parm: NVreg_RegisterForACPIEvents:int
parm: NVreg_EnablePCIeGen3:int
parm: NVreg_EnableMSI:int
parm: NVreg_TCEBypassMode:int
parm: NVreg_EnableStreamMemOPs:int
parm: NVreg_EnableBacklightHandler:int
parm: NVreg_RestrictProfilingToAdminUsers:int
parm: NVreg_PreserveVideoMemoryAllocations:int
parm: NVreg_DynamicPowerManagement:int
parm: NVreg_EnableUserNUMAManagement:int
parm: NVreg_MemoryPoolSize:int
parm: NVreg_KMallocHeapMaxSize:int
parm: NVreg_VMallocHeapMaxSize:int
parm: NVreg_IgnoreMMIOCheck:int
parm: NVreg_NvLinkDisable:int
parm: NVreg_RegisterPCIDriver:int
parm: NVreg_RegistryDwords:charp
parm: NVreg_RegistryDwordsPerDevice:charp
parm: NVreg_RmMsg:charp
parm: NVreg_GpuBlacklist:charp
parm: NVreg_TemporaryFilePath:charp
parm: NVreg_AssignGpus:charp
filename: /usr/lib/modules/5.4.0-48-generic/updates/dkms/nvidia.ko
alias: char-major-195-*
version: 440.100
supported: external
license: NVIDIA
srcversion: 79812FEC91C545B3F516DF2
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends: ipmi_msghandler
retpoline: Y
name: nvidia
vermagic: 5.4.0-48-generic SMP mod_unload
sig_id: PKCS#7
signer: skynet Secure Boot Module Signature key
sig_key: 21:AF:51:58:09:F3:C1:D5:9C:B8:AB:FB:83:49:0D:A7:CA:28:3B:E9
sig_hashalgo: sha512
signature: 07:6E:72:DA:E9:8D:2E:C0:A9:2B:D3:6A:25:AD:15:B4:1F:4D:35:40:
C6:CE:01:61:AE:74:29:07:97:95:44:AB:62:7B:73:5E:CB:BC:A6:B3:
F9:9E:BD:FA:0E:1D:20:F6:5B:34:75:6B:E8:BE:C2:22:16:82:FC:48:
77:82:38:81:DD:7E:0D:13:B4:F6:C5:CC:2A:D1:A4:3E:C8:4D:5F:D3:
AF:E2:DE:8C:CD:6E:22:EF:75:04:37:FB:2C:AB:3B:FF:29:0E:BE:2E:
20:E2:8F:C0:C2:11:B3:B4:B5:89:53:6F:7B:83:3C:48:C8:2D:A8:86:
8F:D1:32:D3:DA:8E:86:86:F5:E2:37:5B:5C:85:9E:9B:DD:17:CC:F9:
49:24:17:7D:B6:E8:24:75:74:F8:BD:FA:BD:8C:F4:03:88:DF:BB:03:
00:DA:FB:2E:EC:10:7C:2B:2D:25:F6:F8:D7:39:27:AC:B2:6D:48:4F:
3B:04:23:97:2E:E5:F2:DE:51:93:E6:74:8D:CF:F3:01:CD:41:9C:39:
2B:FC:85:7A:88:C4:3A:C0:D6:C7:14:8D:4A:81:A1:CA:FC:85:6E:60:
9D:08:99:A4:CA:57:D9:0C:8D:4C:CA:97:13:3B:FC:0F:C7:E5:B3:9F:
92:92:16:DF:B1:7E:02:D7:A0:24:66:F3:AB:4A:4B:6C
parm: NvSwitchRegDwords:NvSwitch regkey (charp)
parm: NVreg_Mobile:int
parm: NVreg_ResmanDebugLevel:int
parm: NVreg_RmLogonRC:int
parm: NVreg_ModifyDeviceFiles:int
parm: NVreg_DeviceFileUID:int
parm: NVreg_DeviceFileGID:int
parm: NVreg_DeviceFileMode:int
parm: NVreg_InitializeSystemMemoryAllocations:int
parm: NVreg_UsePageAttributeTable:int
parm: NVreg_MapRegistersEarly:int
parm: NVreg_RegisterForACPIEvents:int
parm: NVreg_EnablePCIeGen3:int
parm: NVreg_EnableMSI:int
parm: NVreg_TCEBypassMode:int
parm: NVreg_EnableStreamMemOPs:int
parm: NVreg_EnableBacklightHandler:int
parm: NVreg_RestrictProfilingToAdminUsers:int
parm: NVreg_PreserveVideoMemoryAllocations:int
parm: NVreg_DynamicPowerManagement:int
parm: NVreg_EnableUserNUMAManagement:int
parm: NVreg_MemoryPoolSize:int
parm: NVreg_KMallocHeapMaxSize:int
parm: NVreg_VMallocHeapMaxSize:int
parm: NVreg_IgnoreMMIOCheck:int
parm: NVreg_NvLinkDisable:int
parm: NVreg_RegisterPCIDriver:int
parm: NVreg_RegistryDwords:charp
parm: NVreg_RegistryDwordsPerDevice:charp
parm: NVreg_RmMsg:charp
parm: NVreg_GpuBlacklist:charp
parm: NVreg_TemporaryFilePath:charp
parm: NVreg_AssignGpus:charp
Any idea what I’m doing wrong and what I can do to fix it? Thanks very much in advance for any assistance.