OT: PSA - Windows 10 Performance Monitoring

ebergerlyebergerly Posts: 3,255
edited September 2018 in The Commons

A great way to learn what's actually going on with your computer, and particularly your GPU, is, if you have Windows 10, to use the Task Manager. There are some not-so-recent improvements that are a bit hidden that can be extremely useful and enlightening. I thought I'd give a brief rundown for anyone interested.

The first image below shows my Task Manager "Performance" tab for one of my 2 GPU's. W10 automatically detects your GPU's and provides these charts. Note I have hovered my mouse over the "v"  (down arrow) to the left of the first (top left) default chart that comes up, and is labelled "3D". It gives a dropdown of all the possible charts you can select. Note that can be done for each of the 4 default charts. 

IMPORTANT: Don't assume the default charts will show you the activity you want. MS chose the charts it thought would be most important to most of its users. Also, if you're checking your GPU during an Iray render, don't assume that the default "3D" graph is the appropriate graph. It's more likely that you should select "Compute_0" to see GPU activity. Also, don't assume that if you're doing 3D rendering then the appropriate chart is "3D". It's up to developers and CUDA to figure out what's the best compute engine for any particular task. 

You can search the web for specifics from Microsoft on exactly what those charts are showing you, and I'd encourage you to do that, since there's a lot going on. NOTE: It seems that some of the "Utilization" displays are in error. They are supposed to give the maximum utilization of any process across all the compute engines, but it doesn't seem to do that. It's best to look at the specific engine(s) that are being used. 

Also, note that on the bottom you'll see some printed data on "Dedicated GPU Memory", "GPU Memory", etc. What's probably of most interest is "Dedicated GPU Memory", which is the total GPU memory used by (dedicated to) all processes, and after the "/" it shows total installed VRAM on that GPU.

The entry for "GPU Memory" is referencing the total installed VRAM for that GPU plus 1/2 of total system RAM. On my system I have 64 GB of system RAM, so the total "GPU Memory" is 32 + 11 = 43. This is referring to what's available for "paging" from the GPU to system RAM as necessary. 

Now the second image shows the more important Task Manager information, under the "Details" tab. This tab can be used to show exactly how much "Dedicated GPU Memory" (VRAM) is being used for each process running on your computer, as well as a lot of other useful information on each process. However, the GPU process data is not shown by default. 

To add the colums showing GPU data, move your mouse over one of the column headings (such as "CPU", or "Description", etc.), and right click. NOTE: it won't work if you mouse-over the tabs (Users, Details, Services) instead of the column headings. You will then get the dropdown that's shown. Choose "Select Columns", and you'll see a requester pop up as shown in the third image. Scroll down to the bottom and select everything that says "GPU", as shown in the image. This will add 4 columns to the Details. 

IMPORTANT:  Once you have the additional GPU columns, you can sort any column by largest first, if, for example, you want to see which process is using the most GPU "Dedicated Memory", as shown in the images below. Just click on the column name for the column you want to sort, and it will alternate between largest/smallest first. Here it's showing my Desktop Window Manager using 164 MB, Gimp using a bit less than that, etc. And the total of all of those usages is shown in the Performance Tab, which, in this case, totals 0.4 GB. Since most of those are system processes, you can deduce that the system is using only around 0.3 GB (if you subtract the Gimp usage). 

So if you ever wonder how much GPU VRAM your DAZ Studio is using, just go to the Details tab and it will tell you exactly how much.  

Hope this helps. 

Post edited by ebergerly on

Comments

  • nonesuch00nonesuch00 Posts: 18,729

    thanks

  • ebergerlyebergerly Posts: 3,255
    edited July 2019

    Since apparently the ever-popular "Windows Task Manager doesn't provide good info on the GPUs" myth is still lingering, I thought I'd update this thread with some additional info. 

    For those who don't want to read the details:

    • Windows does what an Operating System should do, and that is to manage and schedule the computer hardware components so that the software processes work well with the hardware and don't grab resources that other processes might need. Which is where the "Windows hogs GPU VRAM" myth started, when in fact Windows was making sure that individual applications/processes don't hog all the VRAM and instead leave some for others.
    • Windows is therefore the best source for info on what the hardware is doing, how much VRAM the processes are using, etc. Other 3rd party apps query the Windows GPU VRAM scheduler apps "VidMm and VidSch" to obtain their data. 
    • Windows Task Manager, by default, provides GPU Performance charts that would be of most interest to its largest user base, which is gamers and folks editing youtube videos. Which is why it shows by default the "3D" and "Video Encode" and "Video Decode" engines. An engine is just a specialized set of hardware and software designed to solve certain problems. You can easily select the engine that Iray uses by merely selecting either "Cuda" or "Compute_0" from any of the chart dropdowns. It's not difficult. 2 clicks. That's all. 
    • You can get info on exactly what the individual DAZ Studio process (or any other processes) are using in the GPU, which you probably can't do in other reporting software (other than Process Explorer, which presumably gets its info from Windows). So, for example, instead of assuming that the Dedicated GPU Memory is being used solely by Iray/Studio, you'll realize that "hey, I've got some other apps that are also using VRAM and may be affecting my GPU performance". Which, BTW, is how I realized that while using Google Earth during a render it was using a significant amount of GPU resources and was part of the cause for a slower Iray render. And as of the latest Windows 10 you can now get some of this directly in the Processes tab, including a new "Power usage" and "power usage trend" info for each and every process. 

    Above I've shown how to access much of this data. 

    Windows is the best authority on this information, since it runs the show. The reporting may not be perfect, but it's unlikely any 3rd part apps will be better.  

    Post edited by ebergerly on
  • Richard HaseltineRichard Haseltine Posts: 108,114

    and what most of us say is that by default Task manager is not useful, sicne it shows details that don't reflect the work Iray is doing and has to be reset every time. GPU Z just works, so is less fiddly (and doesn't require remembering the extra steps).

  • ebergerlyebergerly Posts: 3,255
    edited July 2019

    Isn't that a bit like saying "DAZ Studio isn't useful since it requires that you first select stuff before you render"?

    And GPU-Z doesn't provide any sort of details on what Studio itself is using, just a conglomerate of what all processes are using. In that respect it's giving you misleading info if you assume it's all Iray.

    Post edited by ebergerly on
  • Subtropic PixelSubtropic Pixel Posts: 2,388

    There are ways for processes to "hide" from task manager.  Not typical, but Task Manager can't show everything if something can hide from its view.

    There are two other tools in Windows 10 that are very helpful to me.  Resource Monitor and Performance Monitor.  I would not be surprised if things can hide from these too, by the way.  But they still have their places.

    3rd party tools I like include CPU-Z, GPU-Z, HWMonitor, and Process Lasso.

  • SlimerJSpudSlimerJSpud Posts: 1,456

    GPU_Z gives you more info about VRAM usage as well as the GPU fan speeds, actual GPU load, etc. Way better than Task Manager for GPU rendering in Iray, IMO.

  • ebergerlyebergerly Posts: 3,255
    edited July 2019

    GPU_Z gives you more info about VRAM usage as well as the GPU fan speeds, actual GPU load, etc. Way better than Task Manager for GPU rendering in Iray, IMO.

    One thing to consider, and something I do, is sometimes I'll use both applications, depending on what I need to monitor. So if, for example, I need to measure hardware stuff like speeds and loads and temps I'll probably use GPU-Z because it measures that stuff. But if I want to look at software stuff, like VRAM usage per process, I'll use Task Manager, because GPU-Z doesn't measure that. And if you want to know how much Iray is ACTUALLY taking then you need a per-process measurement. 

    Below is a nice graph I got out of GPU-Z comparing GPU temperatures for two different renders. Pretty cool. And you can do the same type of graph with Task Manager for software stuff. Pretty cool. 

    So I suggest that people consider using the right tool for the job. Because each software has its own strengths and weaknesses. And sometimes I'll even use HWMonitor to look at other parts of the computer. Because it reports different data. 

    It's nice if you can have a one-click solution to all the monitoring needs you'll ever have, but I've found that's pretty much impossible for most things. So it's best, IMO, if you learn the strengths and weaknesses of the various tools, and make sure you don't dismiss stuff before you fully investigate it. Cuz you can miss some important benefits.  

    GPU.JPG
    1911 x 856 - 151K
    Post edited by ebergerly on
  • SlimerJSpudSlimerJSpud Posts: 1,456

    @ebergerly I also use both. It helps to monitor memory usage for both.

  • GreymomGreymom Posts: 1,140

    Very useful info - thanks!

Sign In or Register to comment.