Because Omniverse KIT based apps uses a full range of RTX capabilities there are some key elements to help with getting your project running at it’s best. There are also optimizations that can benefit specifically one renderer or another. This document is here to shed light on how to keep your project’s performance optimal and how to diagnose quickly when things go awry.
The two most important elements we will want to generally watch are GPU Usage and GPU Memory however CPU usage and CPU memory are also possible to be overrun. If any of those hit their limits, performance will suffer. To monitor these stats Omniverse Create has a built in profiler and some handy tools based on the operating system you are using. Though not critical it is a very good idea and a best practice to leave these tools open and displaying while you work in Omniverse Create. This way you will see just how much strain any particular action has on your system.
The profiler can be access by pressing F8 on your keyboard. It offers some very helpful filtering features making it easy to expand or retract your results. The tools we generally use to do this are GPU Nesting and Duration. GPU Nesting filters based on how many levels deep in the call graph you want to see while the Duration Filter is the minimum duration that an entry needs to have to show up in the list. If the process does not meet these criteria they are filtered out. This can be very useful as typically we wont care about micro costs when investigating a performance problem.
The profiler is a powerful tool and can give you realtime, organized information regarding your project. It also does an excellent job of denoting where the performance cost is being felt.
Task Manager is a great resource for giving nice clean graphs and can show peak usage on a variety of system information regarding performance.
Click on the Start icon
Type “Task Manager”
In Task Manager, Select the “Performance” Tab
On the left side of this pane you will see various graphs like CPU, Memory and GPU. Select any of these to get a more detailed view of the data. Generally speaking if any of these are spiking or peaking out, you should look into its cause and begin to troubleshoot.
Getting a Baseline¶
It is generally good to get a baseline of your performance before starting up your project. A baseline is simply what your computer is looking like before your project is loaded. In any tool mentioned above take a quick note of your memory and gpu usage with just your working tools running but your project not loaded. These are your baseline measurements. Now when you load a project you can be more accurate on the actual cost of your project as you can subtract the baseline cost of whatever tools you may have running.
Here we can see an example of a baseline. All tools are running but a project is not yet loaded.
Now we have a large Project Loaded.
To get the actual cost, simply subtract the baseline value from the project loaded value. Calculating from the above example would look like this…
CPU Utilization of Project (project loaded Utilization - baseline utilization = project cost)
43% - 18% = 25%
Dedicated Memory Used by Project (project loaded Mem Gb - baseline Mem Gb = project cost)
10.7Gb - 7.9Gb = 2.8Gb
This information can be useful to know if you are working on a target platform where memory/GPU power is lower than the development system.