[PLUGIN] GPU Statistics


Recommended Posts

I am confused, seems like transcoding is working, but nothing is reported by plugin.

Is it any chance to see what is going with plex transcoding ? Or how to see if intel GPU is in use...

Showing no activity, but looks like it's my quadro working,

Nvidia smi saying |  No running processes found    

 

Edited by J05u
Link to comment
On 2/2/2022 at 7:46 AM, NeoDude said:

Not a biggy, but any ideas why Tdarr doesn't show under 'Active Apps' like Plex does with the little logo?

 

App detection isn't that straight forward.  Depending upon the container and/or the configuration you're running tdarr may be using ffmpeg or HandbrakeCLI in such a way that we can't determine tdarr is invoking it.  Nvidia-smi usually only reports a single binary name (like "ffmpeg" or "HandbrakeCLI") as the process that's using the GPU.  Some applications are much more specific.  Plex, for example, doesn't just invoke ffmpeg, it invokes its own "Plex Transcoder" process that is easy to identify.  Still, I do attempt to pull the full command of the process using the PID Nvidia reports, but if I don't find "tdarr" anywhere in the command I can't rightly match it.  I'd investigate your own processes when Tdarr is running and see if there is any way to uniquely identify it and then let me know.  Otherwise, can't fix it.

Edited by b3rs3rk
Link to comment
On 2/5/2022 at 2:34 AM, lanky8804 said:

Have 2 GPU’s installed now. Is it possible to have both statistics displayed on the dash? Atm am having to change setting each time to view the other card. 

 

Answered ad infinitum in this thread.  One day I hope to implement it, but I just don't have time right now.

Edited by b3rs3rk
Link to comment
On 2/6/2022 at 3:00 AM, J05u said:

I am confused, seems like transcoding is working, but nothing is reported by plugin.

Is it any chance to see what is going with plex transcoding ? Or how to see if intel GPU is in use...

Showing no activity, but looks like it's my quadro working,

Nvidia smi saying |  No running processes found    

 

 

If Nvidia-smi says no processes are found you are not using it.  Nothing else to say really.  The plugin is not magic, it depends on nvidia-smi reporting to populate the widget.

Link to comment
On 1/25/2022 at 4:04 PM, flyize said:

Apologies. I figured the answer would just be, yes. ;)

 

Attached

truffle-diagnostics-20220125-1603.zip 161.95 kB · 1 download

 

IMC bandwidth is specific to Intel iGPUs and usually works fine but it really depends on the CPU/GPU package.

 

I can't use those diagnostics to determine the issue, but the way the code is written, the IMC Bandwidth usage will return N/A if intel_gpu_top is not returning those indexes in the statistics pull.

 

Try this from CLI:

 

timeout -k .500 .400 intel_gpu_top -J -s 250

 

And post the result here.

Link to comment

I'll post the results, just in case. But I don't think they will help. I had to move back to GPU transcoding due to Unraid instabilities with my Alder Lake CPU. I'll circle back whenever RC3 comes out.

 

root@Truffle:~# timeout -k .500 .400 intel_gpu_top -J -s 250

{
        "period": {
                "duration": 0.004918,
                "unit": "ms"
        },
        "frequency": {
                "requested": 0.000000,
                "actual": 0.000000,
                "unit": "MHz"
        },
        "interrupts": {
                "count": 0.000000,
                "unit": "irq/s"
        },
        "rc6": {
                "value": 100.000000,
                "unit": "%"
        },
        "power": {
                "GPU": 0.000000,
                "Package": 0.000000,
                "unit": "W"
        },
        "engines": {
                "Render/3D/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "Blitter/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "Video/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "Video/1": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "VideoEnhance/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                }
        }
},
{
        "period": {
                "duration": 250.182461,
                "unit": "ms"
        },
        "frequency": {
                "requested": 0.000000,
                "actual": 0.000000,
                "unit": "MHz"
        },
        "interrupts": {
                "count": 0.000000,
                "unit": "irq/s"
        },
        "rc6": {
                "value": 100.000000,
                "unit": "%"
        },
        "power": {
                "GPU": 0.000000,
                "Package": 27.051546,
                "unit": "W"
        },
        "engines": {
                "Render/3D/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "Blitter/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "Video/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "Video/1": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                },
                "VideoEnhance/0": {
                        "busy": 0.000000,
                        "sema": 0.000000,
                        "wait": 0.000000,
                        "unit": "%"
                }
        }
}

 

Edited by flyize
Link to comment
13 minutes ago, flyize said:

Alder Lake CPU

The developers from intel_gpu_tools reached today out to me that an update is in the works, I think intel_gpu_top is not quiet ready for Alder Lake yet, like the i915 module for Linux...

 

It takes a little bit until everything is working correctly on Linux with new hardware most of the times.

  • Like 2
Link to comment
5 hours ago, ich777 said:

The developers from intel_gpu_tools reached today out to me that an update is in the works, I think intel_gpu_top is not quiet ready for Alder Lake yet, like the i915 module for Linux...

 

It takes a little bit until everything is working correctly on Linux with new hardware most of the times.

Yeah. Coming from an old Xeon, I was hoping to future proof myself, but I somewhat regret the Alder Lake purchase.

Link to comment
On 2/7/2022 at 12:29 PM, b3rs3rk said:

 

App detection isn't that straight forward.  Depending upon the container and/or the configuration you're running tdarr may be using ffmpeg or HandbrakeCLI in such a way that we can't determine tdarr is invoking it.  Nvidia-smi usually only reports a single binary name (like "ffmpeg" or "HandbrakeCLI") as the process that's using the GPU.  Some applications are much more specific.  Plex, for example, doesn't just invoke ffmpeg, it invokes its own "Plex Transcoder" process that is easy to identify.  Still, I do attempt to pull the full command of the process using the PID Nvidia reports, but if I don't find "tdarr" anywhere in the command I can't rightly match it.  I'd investigate your own processes when Tdarr is running and see if there is any way to uniquely identify it and then let me know.  Otherwise, can't fix it.


Thanks for the reply man. Seeing as how I only use my GPU for Plex and TDARR. Can I not just set it up so that whenever ffmpeg shows, the dash shows it as TDARR?
 

Link to comment
18 hours ago, ChillZwix said:

I can't understand, I can't get my intel 9900K to show up. Only get to choose my P2000.

Can you please be a bit more specific?

Where can you choose only your P2000?

The driver for your iGPU is already loaded from what I see from your Diagnostics, have you passed through the device "/dev/dri" to a container (not a path!).

Or do you mean in the GPU Statistics plugin?

Link to comment
9 minutes ago, NeoDude said:


Thanks for the reply man. Seeing as how I only use my GPU for Plex and TDARR. Can I not just set it up so that whenever ffmpeg shows, the dash shows it as TDARR?
 

 

I'd consider implementing something like that if it was a desired enough feature, but you're the only person that has requested that functionality before (I think).  Have you tried filing an issue with the application or container image author to start using a more deterministic command to launch their ffmpeg processes?  I looked at the Tdarr Dockerfile and they actually install jellyfin-ffmpeg via APT and create a symbolic link to /usr/local/bin/ffmpeg.  If they just named it tdarr-ffmpeg we wouldn't be having this conversation.

Link to comment
25 minutes ago, b3rs3rk said:

 

I'd consider implementing something like that if it was a desired enough feature, but you're the only person that has requested that functionality before (I think).  Have you tried filing an issue with the application or container image author to start using a more deterministic command to launch their ffmpeg processes?  I looked at the Tdarr Dockerfile and they actually install jellyfin-ffmpeg via APT and create a symbolic link to /usr/local/bin/ffmpeg.  If they just named it tdarr-ffmpeg we wouldn't be having this conversation.

I shall pass it on :)

Link to comment
3 hours ago, ich777 said:

Can you please be a bit more specific?

Where can you choose only your P2000?

The driver for your iGPU is already loaded from what I see from your Diagnostics, have you passed through the device "/dev/dri" to a container (not a path!).

Or do you mean in the GPU Statistics plugin?

 

In the GPU Stat Plugin

 

I have set /dev/dri to Plex this weekend, but it did not even work before that. Not even when I remove it..

gpu-stat.png

Link to comment
4 hours ago, Sungray said:

I don't get how to enable emby detection, can anyone enlighten me ?

https://github.com/b3rs3rk/gpustat-unraid/issues/32

 

Emby was originally included in the app detection when it released, but was disabled due to the large number of false positives where it was identified as running when people didn't even have an Emby container running.  This is because it invokes 'ffmpeg' as the process with no other determining language in the command to accurately identify it as Emby.  Because the issue creator (for issue #32 on my GH repo that you referenced) included a command/process name that included the string 'emby' I decided to re-activate it using that command syntax.  If the container you're using doesn't use the same command, it won't work.  You could try reaching out to that user and see which container they are running and follow suit.  Or someone could request that the container authors they prefer use a predictable command for their transcoding processes.

Link to comment
15 hours ago, ChillZwix said:

 Even when I select Intel at Vendor, can still just see P2000 in the drop down.

gpustat2.png

gpustat3.png

 

I guess it isn't detecting your iGPU when the settings page is running the inventory code.  I looked at the lspci dump in the diagnostics and I pulled the line out that should be returned and tested it against the inventory regex for Intel and it matches with no issue.  So I'm at a loss without more troubleshooting.

 

Easiest way, would be to edit the /usr/local/emhttp/plugins/gpustat/gpustatus.php file to force a data dump for review.  Run it line by line.

 

cd /usr/local/emhttp/plugins/gpustat
sed -i.bak '44 c\$gpustat_inventory = true;' gpustatus.php
sed -i '52 c\var_dump($gpustat_data);' gpustatus.php
php gpustatus.php
<data that we need to see>
  
### Revert
cp gpustatus.php.bak gpustatus.php
rm gpustatus.php.bak

 

Edited by b3rs3rk
Wrong php file run
Link to comment
4 hours ago, b3rs3rk said:

 

I guess it isn't detecting your iGPU when the settings page is running the inventory code.  I looked at the lspci dump in the diagnostics and I pulled the line out that should be returned and tested it against the inventory regex for Intel and it matches with no issue.  So I'm at a loss without more troubleshooting.

 

Easiest way, would be to edit the /usr/local/emhttp/plugins/gpustat/gpustatus.php file to force a data dump for review.  Run it line by line.

 

cd /usr/local/emhttp/plugins/gpustat
sed -i.bak '44 c\$gpustat_inventory = true;' gpustatus.php
sed -i '52 c\var_dump($gpustat_data);' gpustatus.php
php gpustatus.php
<data that we need to see>
  
### Revert
cp gpustatus.php.bak gpustatus.php
rm gpustatus.php.bak

 

 

Thank you for helping @b3rs3rk , here it the result:

gpustat4.png

Link to comment
22 hours ago, ChillZwix said:

 

Thank you for helping @b3rs3rk , here it the result:

gpustat4.png

 

Okay so your iGPU is not being inventoried at all.  Can you do an:

 

lspci | grep VGA

 

and paste the result?  I looked at the output in your diagnostics file but want to make sure.  Beyond that we will have to do more debugging to discover the root cause.

Edited by b3rs3rk
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.