[Plugin] Linuxserver.io - Unraid Nvidia


Recommended Posts

15 hours ago, cammelspit said:

I'm seriously considering trying out Emby as well and run into the same roadblock, I can't even test out the features I need without paying. Jellyfin is another option and is based on Emby so that will likely be what I test out first as Binhex recently put an unraid template together for it. It's hard when you paid for something and they seem to just ignore some of the more basic functionality things in favor of flashy features no one wants. I mean, I'm by no means above paying for something that does what I want it to, bought unraid after all, but it does kind of have to work. With Plex, I couldn't even try out half the features I intended on making use of without buying it and I have to admit there is definitely some buyers remorse there. Not to mention how little control you have over what is and is not allowed to transcode, a shame really. For people like me, a VM is not really possible as I am already making my poor little AMD server cry for mercy 75% of the time. 😀

https://forums.plex.tv/t/hardware-accelerated-decode-nvidia-for-linux/233510/231

https://forums.plex.tv/t/much-faster-hopefully-smaller-mostly-and-better-pms-builds-preview-1-15-0-573-123756e9a/308294/343

 

Read the threads starting from 2weeks ish ago.

Link to comment

What a great new development!

Would it be possible to "clone" the existing docker for Plex and configure this with a new P2000 card?

(I just got the IGPs working! and I would love to do some benchmarking comparing the IGP with the P2000, quality and speed)

Example: (Pointing to the same Appdate folder

Docker 1 - Plex linuxserver (IGP)

Clone  2 - Plez linuxserver (GPU)

Edited by casperse
Link to comment

This is super exciting, and I struggle to determine if my really old Quadro Card (Quadro FX 3800) would be at all supported by this great feat!

The short answer is NO.  This plug-in currently installs the 410.78 Nvidia Drivers.   

 

According to the error I received via "dmesg",  he supported products for this driver can be found here: https://www.nvidia.com/Download/driverResults.aspx/141700/en-us

 

[   93.316383] nvidia-nvlink: Nvlink Core is being initialized, major device number 247
[   93.316630] NVRM: The NVIDIA Quadro FX 3800 GPU installed in this system is
               NVRM:  supported through the NVIDIA 340.xx Legacy drivers. Please
               NVRM:  visit http://www.nvidia.com/object/unix.html for more
               NVRM:  information.  The 410.78 NVIDIA driver will ignore
               NVRM:  this GPU.  Continuing probe...
[   93.316645] NVRM: No NVIDIA graphics adapter found!
[   93.326565] nvidia-nvlink: Unregistered the Nvlink Core, major device number 247


Roughly [Note the RTX 8000 support is added in Version 410.93]:


NVIDIA TITAN Series:

NVIDIA TITAN V, NVIDIA TITAN Xp, NVIDIA TITAN X (Pascal), GeForce GTX TITAN X, GeForce GTX TITAN, GeForce GTX TITAN Black, GeForce GTX TITAN Z

 

GeForce RTX 20 Series:

GeForce RTX 2080 Ti, GeForce RTX 2080, GeForce RTX 2070

 

GeForce MX100 Series (Notebook):

GeForce MX150, GeForce MX130, GeForce MX110

 

GeForce 10 Series:

GeForce GTX 1080 Ti, GeForce GTX 1080, GeForce GTX 1070 Ti, GeForce GTX 1070, GeForce GTX 1060, GeForce GTX 1050 Ti, GeForce GTX 1050, GeForce GT 1030

 

GeForce 10 Series (Notebooks):

GeForce GTX 1080, GeForce GTX 1070, GeForce GTX 1060, GeForce GTX 1050 Ti, GeForce GTX 1050

 

GeForce 900 Series:

GeForce GTX 980 Ti, GeForce GTX 980, GeForce GTX 970, GeForce GTX 960, GeForce GTX 950

 

GeForce 900M Series (Notebooks):

GeForce GTX 980, GeForce GTX 980M, GeForce GTX 970M, GeForce GTX 965M, GeForce GTX 960M, GeForce GTX 950M, GeForce 945M, GeForce 940MX, GeForce 930MX, GeForce 920MX, GeForce 940M, GeForce 930M, GeForce 920M, GeForce 910M

 

GeForce 800M Series (Notebooks):

GeForce GTX 880M, GeForce GTX 870M, GeForce GTX 860M, GeForce GTX 850M, GeForce 845M, GeForce 840M, GeForce 830M, GeForce 825M, GeForce 820M, GeForce 810M

 

GeForce 700 Series:

GeForce GTX 780 Ti, GeForce GTX 780, GeForce GTX 770, GeForce GTX 760, GeForce GTX 760 Ti (OEM), GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745, GeForce GT 740, GeForce GT 730, GeForce GT 720, GeForce GT 710

 

GeForce 700M Series (Notebooks):

GeForce GTX 780M, GeForce GTX 770M, GeForce GTX 765M, GeForce GTX 760M, GeForce GT 755M, GeForce GT 750M, GeForce GT 745M, GeForce GT 740M, GeForce GT 735M, GeForce GT 730M, GeForce GT 720M, GeForce 710M

 

GeForce 600 Series:

GeForce GTX 690, GeForce GTX 680, GeForce GTX 670, GeForce GTX 660 Ti, GeForce GTX 660, GeForce GTX 650 Ti BOOST, GeForce GTX 650 Ti, GeForce GTX 650, GeForce GTX 645, GeForce GT 640, GeForce GT 635, GeForce GT 630

 

GeForce 600M Series (Notebooks):

GeForce GTX 680MX, GeForce GTX 680M, GeForce GTX 675MX, GeForce GTX 670MX, GeForce GTX 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M, GeForce GT 640M LE

 

Quadro RTX Series:

Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Quadro RTX 4000

 

Quadro Series:

Quadro GV100, Quadro GP100, Quadro P6000, Quadro P5200, Quadro P5000, Quadro P4000, Quadro P2000, Quadro P1000, Quadro P620, Quadro P600, Quadro P400, Quadro M6000 24GB, Quadro M6000, Quadro M5000, Quadro M4000, Quadro M2000, Quadro K6000, Quadro K5200, Quadro K5000, Quadro K4000, Quadro K4200, Quadro K2200, Quadro K2000, Quadro K2000D, Quadro K1200, Quadro K620, Quadro K600, Quadro K420, Quadro 410

 

Quadro Series (Notebooks):

Quadro P5200, Quadro P5000, Quadro P4200, Quadro P4000, Quadro P3200, Quadro P3000, Quadro P2000, Quadro P1000, Quadro P600, Quadro P500, Quadro M2200, Quadro M1200, Quadro M620, Quadro M520, Quadro M5500, Quadro M5000M, Quadro M4000M, Quadro M3000M, Quadro M2000M, Quadro M1000M, Quadro M600M, Quadro M500M, Quadro K5100M, Quadro K5000M, Quadro K4100M, Quadro K4000M, Quadro K3100M, Quadro K2200M, Quadro K2100M, Quadro K3000M, Quadro K2000M, Quadro K1100M, Quadro K1000M, Quadro K620M, Quadro K610M, Quadro K510M, Quadro K500M

Quadro Blade/Embedded Series :

Quadro P5000, Quadro P3000, Quadro M5000 SE, Quadro M3000 SE, Quadro K3100M

 

Quadro NVS Series:

NVS 810, NVS 510

 

Quadro Sync Series:

Quadro Sync II, Quadro Sync, Quadro G-Sync II

 

Quadro SDI:

Quadro SDI

 

GRID Series:

GRID K520

 

NVS Series:

NVS 810, NVS 510

 

M-Class:

M40 24GB, M40

Link to comment
2 hours ago, Dazog said:

Quadro FX 3800 is 10 years old...

 

It doesn't have the hardware encode/decode required.

 

Refer to this:

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

 

if it's not on there.  It's not going to work.

 

Totally understood.   I didn't have high expectations.   While the FX 3800 does support H264 and HEVC encoding, it is only compatible with older CUDA standards.   I'm somewhat curious about it's capabilities with legacy drivers.  


At any rate, there seemed little harm in trying to see how the Nvidia version worked with it.

 

 

 

Link to comment
5 hours ago, casperse said:

What a great new development!

Would it be possible to "clone" the existing docker for Plex and configure this with a new P2000 card?

(I just got the IGPs working! and I would love to do some benchmarking comparing the IGP with the P2000, quality and speed)

Example: (Pointing to the same Appdate folder

Docker 1 - Plex linuxserver (IGP)

Clone  2 - Plez linuxserver (GPU)

 

Just go to the docker screen, click at the bottom "add container" click your plex template and change the the name of the container to Plex(iGPU) and then just edit the parameters to the iGPU settings. Now you can have two containers with each gpu hardware transcoding capability.

Link to comment
On 2/10/2019 at 1:04 PM, michaelfjsmith2 said:

Hello,

i am having an issue with adding the above instructions to an existing and a new plex docker. i am able to identify my GPU in the Nvidia Sceen and get the GUID.

 

Unraid Version - 6.7.0-rc3 with Nvidia

GPU - Quadro P2000

 

Below shows my setup in the docker followed by the error code i get when trying to apply. Any help would be greatly appreciated.

 

image.thumb.png.9df4a79e78cf2002dae699903ff2b329.png

image.thumb.png.e0e69f69dc65c5bb32fa34c4bb2b8fc8.png

image.thumb.png.1940501aa5b9d96a05595730ef0a41c5.png

I have the same issue, seems that it's not available in "nvidia-smi", I get "No devices were found".  Any chance you are running Unraid in a VM?  I'm running in Qemu on top of Proxmox.  Wondering if that's my issue.  I also have a P2000.

  • Upvote 1
Link to comment
1 hour ago, cmconner156 said:

I have the same issue, seems that it's not available in "nvidia-smi", I get "No devices were found".  Any chance you are running Unraid in a VM?  I'm running in Qemu on top of Proxmox.  Wondering if that's my issue.  I also have a P2000.

Got it working for anyone running Unraid on top of Qemu like Proxmox.  I had to download a bios for the P2000 and include in the proxmox config:

 

https://forum.proxmox.com/threads/amd-gpu-passthrough-issue-windows-10-steps-included.25427/page-2

 

https://www.techpowerup.com/vgabios/198658/198658

 

And this is my proxmox config:

 

bootdisk: scsi0
cores: 2
cpu: host
hostpci0: 01:00.0
hostpci1: 03:00,romfile=nvidia_p2000_bios.rom,x-vga=on
ide2: local:iso/plopkexec.iso,media=cdrom
machine: q35
memory: 15000
name: unraid
net0: virtio=8E:6C:07:3D:FA:D4,bridge=vmbr0
numa: 0
onboot: 1
ostype: l26
scsihw: virtio-scsi-pci
serial0: socket
smbios1: uuid=181e28f6-9cb3-4fd4-82c3-72dc91b6b553
sockets: 4
usb0: host=2-1.2
vmgenid: 138739ff-1cd6-435b-8829-8597432f0e11

Link to comment

Thanks for this awesome Plugin and the Instructions worked perfectly. 

In one of the posts it says that it can be shared between containers. 

 

I am wanting to know if all I need to do is add the same 2  Variables to the jlesage/handbrake container to make use of the p2000 there as well.

Will there be issues if 2 containers share the same GPU at the same Time?

Plex is barely using up the available GPU.

 

Thanks Again

Link to comment
1 hour ago, Dallas.toth said:

Thanks for this awesome Plugin and the Instructions worked perfectly. 

In one of the posts it says that it can be shared between containers. 

 

I am wanting to know if all I need to do is add the same 2  Variables to the jlesage/handbrake container to make use of the p2000 there as well.

Will there be issues if 2 containers share the same GPU at the same Time?

Plex is barely using up the available GPU.

 

Thanks Again

 

There should not be any issues sharing the GPU between containers. 

Link to comment
16 hours ago, MowMdown said:

 

Just go to the docker screen, click at the bottom "add container" click your plex template and change the the name of the container to Plex(iGPU) and then just edit the parameters to the iGPU settings. Now you can have two containers with each gpu hardware transcoding capability.

Great I didn't know I could use my already configuration!

 

Unfortuanetly I get an error when trying to start the docker with the GPU (I have checked my input for any special hidden character )

image.thumb.png.42d74d2cb10600401e5a527421c9f760.png

 

Someone in this thread reported that he replaced his existing template with the standard template?

Don't know how to do this? only standard template I can select is not the one for Linuxserver Plex

So close now!!! ;-)

 

OK REMOVED everything and started over and I got it started but the looks like the docker selects the internal IGU before the Nividia GPU?

 

image.png.b2fa4e887cd99145b278041a83959409.png

 

Do I need to change the Bios so that the external card is the primary for this to work?

 

 

Edited by casperse
Link to comment

Hi Guys,

 

i hate to ask the obvious. Say I install a compatible Gpu, and use the Plex docker. If my sister who lives far away starts her Plex app on her smart TV, will she see a difference? Or it is just off-loading my cpu and re-encoding on GPU on my end? What happens if my other sister watches something at the same time? 

 

Thank you.

 

h.

 

 

Link to comment
2 hours ago, hernandito said:

Hi Guys,

 

i hate to ask the obvious. Say I install a compatible Gpu, and use the Plex docker. If my sister who lives far away starts her Plex app on her smart TV, will she see a difference? Or it is just off-loading my cpu and re-encoding on GPU on my end? What happens if my other sister watches something at the same time? 

 

Thank you.

 

h.

 

 

It's just doing the same encode work on the gpu via hw acceleration instead of using sw on the cpu. The benefits are cooler systems with much less cpu utilization (and potentially a lot more simultaneous transcodes).

 

Consumer Nvidia cards can do 2 streams at a time (artificial limit). Quadros are not limited and can do more than a dozen.

 

And by stream I mean transcoded streams. If one client is direct playing or direct streaming, that's not a transcoded stream.

Edited by aptalca
Link to comment
3 hours ago, hernandito said:

What happens if my other sister watches something at the same time? 

Hardware transcoding (either with an iGPU or this unRAID Nvidia plugin with a supported GPU) will result in your system being able to handle more simultaneous transcodes than with software transcoding which is CPU dependent.  With software transcoding, your CPU passmark score is very important in determining how many simultaneous transcodes the CPU can support. 2000 passmarks per 1080p transcode is the often-used benchmark.

 

My system has an iGPU and I support four remote households which all stream from my Plex server.  I have seen as many as three simultaneous hardware transcode streams plus my own local direct play and the CPU utilization fluctuated between 40-55%

 

If both your sisters and you are watching simultaneously from your server, no one is likely to even notice, assuming a decent GPU.

 

I set all my Plex remote/Internet streams to 4mbps 720p quality and everyone reports that quality is good.  Local streams are, of course, at original quality. I could push more, but everyone seems to be happy with this.

 

Link to comment
On 2/10/2019 at 10:20 PM, Pducharme said:

 

I just followed what's in here to first enable the NVIDIA card on my Unraid server, then to enable access to the GPU on my PLEX docker, then I followed the instructions over at PLEX forum to create a workaround to enable the NVDEC. (see this link Instructions for the script

 

It's only 2 lines of codes you put in a new file called "/usr/lib/plexmediaser/Plex Transcoder".

 

Step 1.  Go inside the docker PLEX terminal, to /usr/lib/plexmediaserver/.

Step 2.  Rename the file "Plex Transcoder" to "Plex Transcoder2"

Step 3.  Create a script called "Plex Transcoder" (I use nano editor, apt-get update, apt-get install nano, yes to all questions), and put this code in it :

 

#!/bin/sh

/usr/lib/plexmediaserver/Plex\ Transcoder2 -hwaccel nvdec "$@"

 

This will tell call the Plex Transcoder and enable the decode part.  Since it's a workaround, it won't show it Tautulli or in Plex Dashboard because plex doesn't know it decode hardware.  You can see it working by running this command from the same Terminal inside plex docker:

 

nvidia-smi dmon -s u 

 

There is column for enc. and one for dec., if it's not 0, it means it's working.

Did you need the custom version of Plex that was built in that thread or does it work with any Plex now?  I'm running current binhex docker image.

 

Thanks!

Link to comment
  • trurl locked this topic
Guest
This topic is now closed to further replies.