How to make GPU allocatable

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
I upgraded from Core to Scale, but now hardware transcoding in Plex is no longer working.

I think the problem has something to do with "Allocatable: nvidia.com/gpu = 0", but I'm stuck now.

Does anyone have any suggestions or ideas on how to fix this?

root@truenas[~]# lspci 00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05) 00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05) 00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05) 00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5) 00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5) 00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5) 00:1c.5 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #6 (rev d5) 00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05) 00:1f.0 ISA bridge: Intel Corporation Z87 Express LPC Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05) 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05) 01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GT 740] (rev a1) 01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1) 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c) 04:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)

root@truenas[~]# k3s kubectl describe nodes Name: ix-truenas Roles: control-plane,master Labels: beta.kubernetes.io/arch=amd64 beta.kubernetes.io/os=linux kubernetes.io/arch=amd64 kubernetes.io/hostname=ix-truenas kubernetes.io/os=linux node-role.kubernetes.io/control-plane=true node-role.kubernetes.io/master=true openebs.io/nodeid=ix-truenas openebs.io/nodename=ix-truenas Annotations: csi.volume.kubernetes.io/nodeid: {"zfs.csi.openebs.io":"ix-truenas"} k3s.io/node-args: ["server","--flannel-backend","none","--disable","traefik,metrics-server,local-storage","--disable-kube-proxy","--disable-network-policy",... k3s.io/node-config-hash: 6JB3YSFQHC3JVPU7XDB7K5B4YRPPPIUMD4Q3IKJGIV37YI6PKKTA==== k3s.io/node-env: {"K3S_DATA_DIR":"/var/lib/rancher/k3s/data/94499178817b4c5ce4973492f034bfaed731d47d3de22485bfc180619d2a1cc7"} node.alpha.kubernetes.io/ttl: 0 volumes.kubernetes.io/controller-managed-attach-detach: true CreationTimestamp: Mon, 01 Nov 2021 02:24:31 -0700 Taints: <none> Unschedulable: false Lease: HolderIdentity: ix-truenas AcquireTime: <unset> RenewTime: Mon, 21 Mar 2022 03:11:12 -0700 Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ------ ----------------- ------------------ ------ ------- MemoryPressure False Mon, 21 Mar 2022 03:10:22 -0700 Wed, 05 Jan 2022 22:43:28 -0800 KubeletHasSufficientMemory kubelet has sufficient memory available DiskPressure False Mon, 21 Mar 2022 03:10:22 -0700 Wed, 05 Jan 2022 22:43:28 -0800 KubeletHasNoDiskPressure kubelet has no disk pressure PIDPressure False Mon, 21 Mar 2022 03:10:22 -0700 Wed, 05 Jan 2022 22:43:28 -0800 KubeletHasSufficientPID kubelet has sufficient PID available Ready True Mon, 21 Mar 2022 03:10:22 -0700 Mon, 21 Mar 2022 02:33:52 -0700 KubeletReady kubelet is posting ready status. AppArmor enabled Addresses: InternalIP: 192.168.1.138 Hostname: ix-truenas Capacity: cpu: 8 ephemeral-storage: 4853213952Ki gpu.intel.com/i915: 0 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 32832972Ki nvidia.com/gpu: 1 pods: 110 Allocatable: cpu: 8 ephemeral-storage: 4721206528803 gpu.intel.com/i915: 0 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 32832972Ki nvidia.com/gpu: 0 pods: 110 System Info: Machine ID: 03272844cdf44b0885ab4933059fec58 System UUID: 03272844cdf44b0885ab4933059fec58 Boot ID: a314a541-6e0f-4f88-aef4-8d4d983ed2b4 Kernel Version: 5.10.93+truenas OS Image: Debian GNU/Linux 11 (bullseye) Operating System: linux Architecture: amd64 Container Runtime Version: docker://20.10.12 Kubelet Version: v1.21.0-k3s1 Kube-Proxy Version: v1.21.0-k3s1 PodCIDR: 172.16.0.0/16 PodCIDRs: 172.16.0.0/16 Non-terminated Pods: (4 in total) Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age --------- ---- ------------ ---------- --------------- ------------- --- kube-system coredns-7448499f4d-z9vh6 100m (1%) 0 (0%) 70Mi (0%) 170Mi (0%) 38m kube-system nvidia-device-plugin-daemonset-xhvr5 0 (0%) 0 (0%) 0 (0%) 0 (0%) 37m kube-system openebs-zfs-node-pbj2m 0 (0%) 0 (0%) 0 (0%) 0 (0%) 37m kube-system openebs-zfs-controller-0 0 (0%) 0 (0%) 0 (0%) 0 (0%) 37m Allocated resources: (Total limits may be over 100 percent, i.e., overcommitted.) Resource Requests Limits -------- -------- ------ cpu 100m (1%) 0 (0%) memory 70Mi (0%) 170Mi (0%) ephemeral-storage 0 (0%) 0 (0%) hugepages-1Gi 0 (0%) 0 (0%) hugepages-2Mi 0 (0%) 0 (0%) gpu.intel.com/i915 0 0 nvidia.com/gpu 0 0 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Starting 41m kubelet Starting kubelet. Normal NodeHasSufficientMemory 41m kubelet Node ix-truenas status is now: NodeHasSufficientMemory Normal NodeHasNoDiskPressure 41m kubelet Node ix-truenas status is now: NodeHasNoDiskPressure Normal NodeHasSufficientPID 41m kubelet Node ix-truenas status is now: NodeHasSufficientPID Normal NodeAllocatableEnforced 41m kubelet Updated Node Allocatable limit across pods Warning Rebooted 41m kubelet Node ix-truenas has been rebooted, boot id: a314a541-6e0f-4f88-aef4-8d4d983ed2b4 Normal NodeNotReady 41m kubelet Node ix-truenas status is now: NodeNotReady Normal NodeReady 41m kubelet Node ix-truenas status is now: NodeReady Normal Starting 37m kubelet Starting kubelet. Normal NodeHasSufficientMemory 37m kubelet Node ix-truenas status is now: NodeHasSufficientMemory Normal NodeHasNoDiskPressure 37m kubelet Node ix-truenas status is now: NodeHasNoDiskPressure Normal NodeHasSufficientPID 37m kubelet Node ix-truenas status is now: NodeHasSufficientPID Normal NodeAllocatableEnforced 37m kubelet Updated Node Allocatable limit across pods Normal NodeNotReady 37m kubelet Node ix-truenas status is now: NodeNotReady Normal NodeReady 37m kubelet Node ix-truenas status is now: NodeReady

root@truenas[~]# nvidia-smi Mon Mar 21 03:15:55 2022 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GT 740 Off | 00000000:01:00.0 N/A | N/A | | 40% 22C P8 N/A / N/A | 0MiB / 4034MiB | N/A Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
 

Ixian

Patron
Joined
May 11, 2015
Messages
218
I don't see a Jira issue for this, thought it might just be me but no, have the same problem. Can't assign an Nvidia GPU to apps. Doesn't work even with the default (not Truecharts) Plex app.

You can select the GPU in the config options i.e. "allocate 1 Nvidia GPU", but then the app won't deploy because of an error. This event:

Code:
Error: failed to start container "plex": Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: ldcache error: process /sbin/ldconfig failed with error code: 2: unknown


Bug perhaps? I've only started testing it in the past couple days, on TrueNAS-SCALE-22.02.0.1.

Edit: I should have added that my GPU does show up in SCALE:

Code:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro P2200        Off  | 00000000:2D:00.0 Off |                  N/A |
| 46%   34C    P8     4W /  75W |      2MiB /  5059MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+


And it does work for HW transcoding in a vanilla docker running on the SCALE host.

Edit 2: Here's Nvidia-smi when I am transcoding via Plex running on bare metal SCALE:

Code:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro P2200        Off  | 00000000:2D:00.0 Off |                  N/A |
| 48%   42C    P0    42W /  75W |    653MiB /  5059MiB |     26%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A    868537      C   ...diaserver/Plex Transcoder      651MiB |
+-----------------------------------------------------------------------------+
 
Last edited:

Ixian

Patron
Joined
May 11, 2015
Messages
218

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
Ixian,
Thank you for creating the Jira bug report.

I read the bug report, but I'm not sure if I understand it. I've seen other people in this forum whose nvidia graphics cards where allocatable. Does this mean that the problem is connected to only certain models of graphics cards (like the Quadro P2200 or my GTX740)?

Would it be better if I tried using a different graphics card?

Lastly, would you suggest I just wait for this to be resolved or should I try creating a VM and installing Plex inside the VM and then enable Harware Transcoding from there?
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
so let me help you with this issue you are missing a modprobe command to establish folders for the DOCKER and K3s apps for GPU resource i am currently running a P2000 Quatro works with out any issues let me pull up my old jira ticket
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
take a look at this ticket were i fixed this same issue https://jira.ixsystems.com/browse/NAS-109192
Thank you Saberwolf for helping me with this.

Here is what I did:
- Delete the Plex app (this is a new install so I don't have any other apps running)
- Added Init script as seen in the Jira screenshot
- Rebooted
- Installed Plex App with ENV Variable and claim token, named 'plex' to match script below
- Ran the midclt script:

[SIZE=2][FONT=courier new]root@truenas[/dev]# midclt call -job chart.release.update 'plex' '{"values":{"gpuConfiguration": {"nvidia.com/gpu": 1}}}' Status: (none) Total Progress: [________________________________________] 0.00% [EINVAL] values.gpuConfiguration.nvidia.com/gpu: Invalid choice: 1[/FONT][/SIZE]

- Stopped plex app and reran script, but I got the same response as above

Here are some logs that may be helpful?

root@truenas[/dev]# ls nv* nvidia-modeset nvidia-uvm nvidia-uvm-tools nvidia0 nvidiactl nvram nvidia-caps: nvidia-cap1 nvidia-cap2 root@truenas[/dev]# nvidia-smi Wed May 4 14:15:52 2022 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GT 740 Off | 00000000:01:00.0 N/A | N/A | | 40% 24C P8 N/A / N/A | 0MiB / 4035MiB | N/A Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ root@truenas[/dev]# k3s kubectl describe nodes Name: ix-truenas Roles: control-plane,master Labels: beta.kubernetes.io/arch=amd64 beta.kubernetes.io/os=linux kubernetes.io/arch=amd64 kubernetes.io/hostname=ix-truenas kubernetes.io/os=linux node-role.kubernetes.io/control-plane=true node-role.kubernetes.io/master=true openebs.io/nodeid=ix-truenas openebs.io/nodename=ix-truenas Annotations: csi.volume.kubernetes.io/nodeid: {"zfs.csi.openebs.io":"ix-truenas"} k3s.io/node-args: ["server","--cluster-cidr","172.16.0.0/16","--cluster-dns","172.17.0.10","--data-dir","/mnt/fishpond/ix-applications/k3s","--kube-apiserve... k3s.io/node-config-hash: 6L5HRDEYTN6AGPKJQPKBYKGOSV6SBNV5SF4TF3WZB5YO5WV5RL6Q==== k3s.io/node-env: {"K3S_DATA_DIR":"/mnt/fishpond/ix-applications/k3s/data/31ff0fd447a47323a7c863dbb0a3cd452e12b45f1ec67dc55efa575503c2c3ac"} node.alpha.kubernetes.io/ttl: 0 volumes.kubernetes.io/controller-managed-attach-detach: true CreationTimestamp: Mon, 02 May 2022 08:39:57 -0600 Taints: <none> Unschedulable: false Lease: HolderIdentity: ix-truenas AcquireTime: <unset> RenewTime: Wed, 04 May 2022 14:16:19 -0600 Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ------ ----------------- ------------------ ------ ------- MemoryPressure False Wed, 04 May 2022 14:12:10 -0600 Mon, 02 May 2022 11:06:58 -0600 KubeletHasSufficientMemory kubelet has sufficient memory available DiskPressure False Wed, 04 May 2022 14:12:10 -0600 Mon, 02 May 2022 11:06:58 -0600 KubeletHasNoDiskPressure kubelet has no disk pressure PIDPressure False Wed, 04 May 2022 14:12:10 -0600 Mon, 02 May 2022 11:06:58 -0600 KubeletHasSufficientPID kubelet has sufficient PID available Ready True Wed, 04 May 2022 14:12:10 -0600 Wed, 04 May 2022 02:58:37 -0600 KubeletReady kubelet is posting ready status. AppArmor enabled Addresses: InternalIP: 192.168.1.78 Hostname: ix-truenas Capacity: cpu: 8 ephemeral-storage: 12122777Mi gpu.intel.com/i915: 1 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 32740372Ki nvidia.com/gpu: 1 pods: 110 Allocatable: cpu: 8 ephemeral-storage: 12076070355304 gpu.intel.com/i915: 1 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 32740372Ki nvidia.com/gpu: 0 pods: 110 System Info: Machine ID: 21dfc0a9292b490b81006e6b690fe956 System UUID: 03aa02fc-0414-0599-aa06-860700080009 Boot ID: 55bdaab6-a832-4ac4-93a1-5a66c737f8e8 Kernel Version: 5.10.93+truenas OS Image: Debian GNU/Linux 11 (bullseye) Operating System: linux Architecture: amd64 Container Runtime Version: docker://20.10.12 Kubelet Version: v1.22.7+k3s1 Kube-Proxy Version: v1.22.7+k3s1 PodCIDR: 172.16.0.0/16 PodCIDRs: 172.16.0.0/16 Non-terminated Pods: (5 in total) Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age --------- ---- ------------ ---------- --------------- ------------- --- kube-system coredns-96cc4f57d-h28n7 100m (1%) 0 (0%) 70Mi (0%) 170Mi (0%) 11h kube-system openebs-zfs-node-79ds4 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2d5h kube-system nvidia-device-plugin-daemonset-wrcj9 0 (0%) 0 (0%) 0 (0%) 0 (0%) 11h kube-system intel-gpu-plugin-4czvd 0 (0%) 0 (0%) 0 (0%) 0 (0%) 42h kube-system openebs-zfs-controller-0 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2d5h Allocated resources: (Total limits may be over 100 percent, i.e., overcommitted.) Resource Requests Limits -------- -------- ------ cpu 100m (1%) 0 (0%) memory 70Mi (0%) 170Mi (0%) ephemeral-storage 0 (0%) 0 (0%) hugepages-1Gi 0 (0%) 0 (0%) hugepages-2Mi 0 (0%) 0 (0%) gpu.intel.com/i915 0 0 nvidia.com/gpu 0 0 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Starting 30m kubelet Starting kubelet. Normal NodeHasSufficientMemory 30m kubelet Node ix-truenas status is now: NodeHasSufficientMemory Normal NodeHasNoDiskPressure 30m kubelet Node ix-truenas status is now: NodeHasNoDiskPressure Normal NodeHasSufficientPID 30m kubelet Node ix-truenas status is now: NodeHasSufficientPID Warning Rebooted 30m kubelet Node ix-truenas has been rebooted, boot id: 55bdaab6-a832-4ac4-93a1-5a66c737f8e8 Normal NodeAllocatableEnforced 30m kubelet Updated Node Allocatable limit across pods

What should I try next?
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
Oh, and I also double checked that:
- Applications/Settings/Advanced Settings/'Enable GPU support' was selected
- System Settings/Advanced/Isolated GPU Device(s) was empty
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
As I was playing around with the k8s-device-plugin this received these errors:

Warning: GPU-f53ea93a-117e-6e52-888d-981a1d78b3af is too old to support healthchecking: nvml: Not Supported. Marking it unhealthy. 2022/05/05 02:53:35 'nvidia.com/gpu' device marked unhealthy: GPU-f53ea93a-117e-6e52-888d-981a1d78b3af 2022/05/05 02:53:35 Warning: GPU-f53ea93a-117e-6e52-888d-981a1d78b3af is too old to support healthchecking: nvml: Not Supported. Marking it unhealthy. ^C2022/05/05 02:57:48 Received signal "interrupt", shutting down. 2022/05/05 02:57:48 Stopping to serve 'nvidia.com/gpu' on /var/lib/kubelet/device-plugins/nvidia-gpu.sock 2022/05/05 02:57:50 Shutdown of NVML returned: <nil> root@truenas[/usr/bin]# docker run -it -v /var/lib/kubelet/device-plugins:/var/lib/kubelet/device-plugins nvidia/k8s-device-plugin:1.8 2022/05/05 03:01:54 Loading NVML 2022/05/05 03:01:54 Fetching devices. 2022/05/05 03:01:54 Starting FS watcher. 2022/05/05 03:01:54 Starting OS watcher. 2022/05/05 03:01:54 Starting to serve on /var/lib/kubelet/device-plugins/nvidia.sock 2022/05/05 03:01:54 Fatal: nvml: Not Supported panic: Fatal: nvml: Not Supported
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
try running this command in truenas salce shell prompt
modprobe nvidia-current-uvm && /usr/bin/nvidia-modprobe -c0 -u
the middle ctl command was to ass support to the middle ware witch it was all ready doing

Modprobe will create missing dir's and link library's
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
Two days ago, I ran the modprobe command (copied from NAS-109192) and it didn't appear to have helped. But to be fair, I also have installed, uninstalled, and modified so many files trying to get this to work, that something else I did could have been a factor as well.

With this in mind, I removed the boot drive (16GB M.2) and inserted a different one and reinstalled TrueNAS Scale to start fresh. So right now, I do not have any Nvidia drivers installed or any Plex apps. Do you have any suggestions on how I should proceed from here? Do you think it would be worth trying an older Nvidia driver (around version 360-390) instead of the newest one?
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
No Don't do that they are not comp able with the kernels stick with either the one that comes with truenas scale or provide a newer one from the Debian train just try to install the plex app that came with scale your NVIDIA-SMI should be working at this point
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
there might be an issue with GPU your trying to use do you have another to try it appers you have a GT 740 i dont know if they are on the NVEC matrix list let me look

you silly little rabbit your GPU is not supported for NVENC OR NVDEC that function is not supported

see fallowing site from nvidia https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
take my suggestion and buy a used P2000 quarto and install it better card for Plex and you would not be limited to H.264 mpeg1 mpeg 2 and VC1

below is an example of what I am using right now in my Truenas scale box and it run just fine
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
it will decode HVEC and h.265 and encode h.265 4:2:2 but not 4:4:4 as stated before check out the matrix chart both for DEC and ENC you just have the wrong GPU for what your asking it to do you could always create a dedicated VM in truenas and attach to it that gpu windows would most likely support some from of NVDEC OR NVENC but native support is no go
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
Thank you so much for figuring out that the GT 740 is not supported. Although I'm sad it won't work, I'm really happy to finally have an answer, and I learned a lot along the way, so that's good too.

Is there a list somewhere of which cards are compatible with the Scale Plex App? I would rather not go the VM route, I really like the catalog apps.

As for other GPUs to try, I pulled out my bin of spare parts and found these three cards:
GTS 450
GTX 480
Quadro K620

How do I check if these can do Plex Hardware encoding?
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
Oh wait, I think I found it:



1651855256059.png
 

Saberwolf

Explorer
Joined
Feb 7, 2021
Messages
63
they K620 sould work just place it in the server run the modprobe commands and lunch the plex app enable the hardware accleration and test it out check to see in the plex dashboard that you see (HW) indicate that it is transcodeing with hardware accleration you can also run Nvidia-SMI and see the process there i like NVTOP app but you have to download the .DEB file and install it mannuly as they dont want you to install out of box apps
 

gobygoby

Dabbler
Joined
Aug 5, 2014
Messages
45
Ok, here is the follow-up:

I started with a fresh install of TrueNAS scale, installed the default plex app (no GPU available during initial setup). Then I rebooted, stopped the plex app, and clicked 'edit' on the plex app and the K620 graphics card was just there in the drop down. I didn't have to do anything fancy, and I didn't need to run any special commands. It just worked the first time. I opened the web portal and configured Plex, then played a video on my phone (not using local wifi) and watched the plex dashboard info and it showed the hardware encoding was working!

Thank you everyone for all your help!
 
Last edited:
Top