[Plugin] Linuxserver.io - Unraid Nvidia


Recommended Posts

Hi All 

 Well this has made my day finding this and is AMAZING ! however i have two questions that i hope some one more knowledgeable than me can answer.
 
I currently use Binhex-Plexpass (i have plex premium) will this work or will i need to change to the official docker? If i do have to change can i take my library "status" with me? i.e what i have and have not watched etc?
 
what GPU should i purchase? I would like to be in a position to transcode 6 X 1080p streams and possibly 1 4k stream with 3 or 4 other 1080p streams going. the P2000 Quadro is a bit expensive  so how many streams would say a quadro P400 handle? is there a minimum spec i need for more than 2 streams? I understand its a quadro card i need but i dont want to drop £300-400 on a P2000 if i really dont "need" it. I have no idea what Quadro is what as this will be my first even toe into the Quadro world. 
 
Thanks in advance to whoever helps out on this one 
As to the question of will it work with X container, this is mentioned in the readme, it will work with any container.

Sent from my Mi A1 using Tapatalk

Link to comment
12 hours ago, casperse said:

Okay removed the modprobe it and did at reboot and now I have my console screen back on the primary P2000 card. 😊

 

I then started to play files and many files and I still couldn't see any stream on the "watch nvidia-smi" output console

But then I noticed that the load went up, and so is the memory so could it just be an error on the output screen?

 

image.png.f7a45226d2aa7dd201ca79496671368a.png

 

I just tried rolling back to Version: 6.7.0-rc2 because I think it was working at that time, but no change?

Without the modprobe I just can't switch between the GPU and the iGPU (If I wanted to use it, temporarily example for some passthrough to a VM)

And on top of it all I can't see if its really working anyway? - Is there any monitoring available for the iGPU some linux command?

 

Last thing... is there any way to remove everything related to the Plex setup and transcoding and just start over with OUT creating a new UnRAID USB stick?

I was under the impression that dockers was contained, but it seems that GPU changes can happen many places in UnRaid

Remember this was working for a very brief moment ;-) and it might be working now? just cant see any of the streams in the "watch nvidia-smi"

 

As always your valuable insight is most appreciated!

 

 

 

Link to comment
5 minutes ago, Cessquill said:

Noob question alert (that dictates whether I go card shopping or have to plan another Unraid rebuild)...

 

I have a free PCI-E 3.0 x8 (in x16 slot) port in my X10SL7-F motherboard.  My (limited) understanding thinks that an x16 card will be OK in an x8 slot for this purpose, yes?

Yes I have a 16x card in a 8x works fine

  • Upvote 1
Link to comment
Noob question alert (that dictates whether I go card shopping or have to plan another Unraid rebuild)...
 
I have a free PCI-E 3.0 x8 (in x16 slot) port in my X10SL7-F motherboard.  My (limited) understanding thinks that an x16 card will be OK in an x8 slot for this purpose, yes?

You will see no difference between a x8 or x16 slot your all good
  • Upvote 1
Link to comment
2 hours ago, casperse said:

I just tried rolling back to Version: 6.7.0-rc2 because I think it was working at that time, but no change?

Without the modprobe I just can't switch between the GPU and the iGPU (If I wanted to use it, temporarily example for some passthrough to a VM)

And on top of it all I can't see if its really working anyway? - Is there any monitoring available for the iGPU some linux command?

 

Last thing... is there any way to remove everything related to the Plex setup and transcoding and just start over with OUT creating a new UnRAID USB stick?

I was under the impression that dockers was contained, but it seems that GPU changes can happen many places in UnRaid

Remember this was working for a very brief moment ;-) and it might be working now? just cant see any of the streams in the "watch nvidia-smi"

 

As always your valuable insight is most appreciated!

 

 

 

 

I think you make this a little bit too complicated. 

 

1. Follow the instructions in the first post on how to pass through the GPU. This way, the container only have access to the one you specify. Don't use priviliged. The nvidia gpu does not need to be the primary GPU. 

 

2. What do you use the iGPU for? Only unraid console? Or pass through to a VM? If it's only for console, you don't need to modprobe it. 

 

3. As long as plex/emby says hw transcode, it doesn't matter if nvidia-smi mention any running processes or not. 

 

4. You don't need to setup unraid from scratch to start clean for plex. Just delete plex and also choose to delete the image. Then delete the appdata and install plex from a fresh template following the firsts post of this thread. 

 

5. Not sure what you mean with gpu changes happens in a lot of places in unraid. It's not happening many places. 

 

6. You don't need a monitor attached to the nvidia gpu to use it for transcoding. 

Link to comment
29 minutes ago, saarg said:

 

I think you make this a little bit too complicated. 

 

1. Follow the instructions in the first post on how to pass through the GPU. This way, the container only have access to the one you specify. Don't use priviliged. The nvidia gpu does not need to be the primary GPU. 

 

2. What do you use the iGPU for? Only unraid console? Or pass through to a VM? If it's only for console, you don't need to modprobe it. 

 

3. As long as plex/emby says hw transcode, it doesn't matter if nvidia-smi mention any running processes or not. 

 

4. You don't need to setup unraid from scratch to start clean for plex. Just delete plex and also choose to delete the image. Then delete the appdata and install plex from a fresh template following the firsts post of this thread. 

 

5. Not sure what you mean with gpu changes happens in a lot of places in unraid. It's not happening many places. 

 

6. You don't need a monitor attached to the nvidia gpu to use it for transcoding. 

I have been ad it for 2 days now so it starts to seem a little complicated to me ;-)

 

1) I did that, 3 times thinking I did something wrong, because the nvidia-smi mention did not show any running processes.

 

2) Yes as unraid console for now, would like to have it available for pass through?

or if I needed the GPU for special Adobe project I could then start Plex in another docker with the modprobe (But I removed to get the console back)

 

3) I think you nailed it by this comment! - I just did a BIOS change Intel Processor Graphics = Disabled and after that I still got HW transcoding but nothing showed up in the nvidia-smi mention any running processes! so this was working initial (See picture showing 10 processes, so I believed it had to work)

 

4) I did that 2 times, but stating the above it's probably working just not showing anything and most here use that as a test for success

 

5) I was afraid that me trying to test some GPU passthrough (Unsuccessful other issue) had caused some problem in general with the GPU? 

 

6) Ok, then I will change the BIOS back to having the iGPU as primary using this as a console, and that would also fix my Black screen bug? during boot ;-)

 

So lesson learned -  Don't trust the nvidia-smi and disregard that it doesn't mention any running processes - if Plex is showing HW encoding!

 

THANKS @saarg for taking the time to explain this

Link to comment
On 2/10/2019 at 12:15 AM, linuxserver.io said:

3.  If you use Unraid in GUI mode and have only a single GPU in your server and you use that GPU in a virtual machine, trying to start that VM will crash libvirt.

This is my my current setup.

 

Slot 1 ( PCI-E 3.0 x16/ x8) ---->  GT 610 (unRaid WebUI)

Slot 2 (PCI-E 3.0 x8) ----> GT 1050 Ti (Transcoding)

 

My question is if I remove my GT 610 and plug my GT 1050Ti in the primary slot will I be able to use my graphic cards for hardware decoding in docker considering that I don't have any VM's using graphic cards and I rarely boot into unRaid WebUI mode.Mostly I'll login into  WebUI remotely.

 

I want to move back to a single card setup as it means less heat and I can use my 2 x PCI-E (x1) slots obstructed by heat-sinks.

Link to comment
3 minutes ago, mAYH3M said:

This is my my current setup.

 

Slot 1 ( PCI-E 3.0 x16/ x8) ---->  GT 610 (unRaid WebUI)

Slot 2 (PCI-E 3.0 x8) ----> GT 1050 Ti (Transcoding)

 

My question is if I remove my GT 610 and plug my GT 1050Ti in the primary slot will I be able to use my graphic cards for hardware decoding in docker considering that I don't have any VM's using graphic cards and I rarely boot into unRaid WebUI mode.Mostly I'll login into  WebUI remotely.

 

I want to move back to a single card setup as it means less heat and I can use my 2 x PCI-E (x1) slots obstructed by heat-sinks.

Yes that will be fine using the gtx 1050ti on its own.

Like you say so long as you don't use gui mode or a vm whilst any gpu transcoding is going on then you will be fine.

Link to comment
52 minutes ago, casperse said:

I have been ad it for 2 days now so it starts to seem a little complicated to me ;-)

 

1) I did that, 3 times thinking I did something wrong, because the nvidia-smi mention did not show any running processes.

 

2) Yes as unraid console for now, would like to have it available for pass through?

or if I needed the GPU for special Adobe project I could then start Plex in another docker with the modprobe (But I removed to get the console back)

 

3) I think you nailed it by this comment! - I just did a BIOS change Intel Processor Graphics = Disabled and after that I still got HW transcoding but nothing showed up in the nvidia-smi mention any running processes! so this was working initial (See picture showing 10 processes, so I believed it had to work)

 

4) I did that 2 times, but stating the above it's probably working just not showing anything and most here use that as a test for success

 

5) I was afraid that me trying to test some GPU passthrough (Unsuccessful other issue) had caused some problem in general with the GPU? 

 

6) Ok, then I will change the BIOS back to having the iGPU as primary using this as a console, and that would also fix my Black screen bug? during boot ;-)

 

So lesson learned -  Don't trust the nvidia-smi and disregard that it doesn't mention any running processes - if Plex is showing HW encoding!

 

THANKS @saarg for taking the time to explain this

 

2. You mean to use the iGPU in plex as you want to pass through the GPU? Then remember to run modprobe i915 before starting plex. And also mean you have to reboot to remove the modprobe once you are finished with using the iGPU (There are other ways, but cleanest to reboot). 

 

6. Not sure it will fix the non working pass through. There are many reason for that, and better left in your other thread. 

Link to comment
On 2/10/2019 at 8: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.

 

Just wanted to let you know I was successful also! but I had to adjust the permissions on the new "Plex Transcoder"  folder to get mine to go. It stumped me for a bit!

 

GPU is a P2000

docker is linuxserver

 

image.png.b94dafc2bfb2a95c7d79e301be029504.png

 

Thank you for this!!!!!! So cool, much wow!

 

 

 

 

Edited by stakacs
Link to comment
10 hours ago, stakacs said:

 

Just wanted to let you know I was successful also! but I had to adjust the permissions on the new "Plex Transcoder"  folder to get mine to go. It stumped me for a bit!

 

GPU is a P2000

docker is linuxserver

 

image.png.b94dafc2bfb2a95c7d79e301be029504.png

 

Thank you for this!!!!!! So cool, much wow!

 

 

 

 

Is it correct that Emby already does this natively? - Would it be possible to run Emby & Plex in dockers side by side using the same P2000? 

  • Like 1
Link to comment

This is awesome and basically works fine.

Most importantly the unraid GUI boot now goes 1440p!

 

I cannot use this without stubbing my second GPU, though. 

I have assigned the 1050Ti to my plex container and the 1070 to my windows vm. Starting up windows breaks my system: hard reset required because vm and docker is not available in the web interface anymore.

 

I would love to not stub the 1070, because with the driver it will finally stop its fans at idle, which it doesn't when stubbed.

 

Am I wrong in assuming this would work if I were not passing through the unstubbed 1070 to anything but the windows vm?

Edited by rix
Link to comment
1 hour ago, rix said:

This is awesome and basically works fine.

Most importantly the unraid GUI boot now goes 1440p!

 

I cannot use this without stubbing my second GPU, though. 

I have assigned the 1050Ti to my plex container and the 1070 to my windows vm. Starting up windows breaks my system: hard reset required because vm and docker is not available in the web interface anymore.

 

I would love to not stub the 1070, because with the driver it will finally stop its fans at idle, which it doesn't when stubbed.

 

Am I wrong in assuming this would work if I were not passing through the unstubbed 1070 to anything but the windows vm?

5.  To be 100% safe, we recommend a dedicated GPU for transcoding that is not being used for any virtual machines, if you decide to ignore this, then you're on your own, we are not responsible for any problems that ensue.

 

If you don't stub the 1070 and don't pass it through to a container there shouldn't be any issues, BUT, we haven't tested this on Unraid GUI.  I know it will work fine on the non-GUI boot.

  • Upvote 1
Link to comment
10 hours ago, CHBMB said:

5.  To be 100% safe, we recommend a dedicated GPU for transcoding that is not being used for any virtual machines, if you decide to ignore this, then you're on your own, we are not responsible for any problems that ensue.

 

If you don't stub the 1070 and don't pass it through to a container there shouldn't be any issues, BUT, we haven't tested this on Unraid GUI.  I know it will work fine on the non-GUI boot.

Ok thanks for the clarification.

Link to comment
Ok thanks for the clarification.
Interestingly one of the things that held up the plugin was trying to imagine all the different scenarios we might encounter. Most of us in ls.io only have one GPU so we used to run NVIDIA_VISIBLE_DEVICES=all which does what you'd expect and passes through all devices, which can cause issues with VM passthrough and server locks, so I rethought the approach and changed to use the UUID method. That way it's clear which one you're using and I put the bus info on the plugin screen so it's easy to correlate which GPU is which when looking at VMs and containers even with two identical named graphics cards.



Sent from my Mi A1 using Tapatalk

Link to comment
On 2/13/2019 at 1:16 AM, CHBMB said:

We use upstream Slackbuild packages to build the drivers, and don't really intend to change that, so driver version isn't something we have any/much control over.

Thanks for the info.

 

Slackbuilds shows 418.30 posted.

 

I would wait until next month when Geforce 1660Ti cards come out.

 

Because 418.30 and above supports Turing Streaming for new cards with New Nvidia Video Codec SDK 9

 

https://developer.nvidia.com/nvidia-video-codec-sdk

Link to comment
On 2/9/2019 at 6:15 AM, linuxserver.io said:

6.  We will produce one Nvidia build per Unraid release, we will not be updating the drivers multiple times for each Unraid version, unless there is a critical bug that demands this.  So please don't ask.

From the first page. . .

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