cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Improved display performance, better use of GPU.

Improved display performance, better use of GPU.

I can't help but feel the Inventor viewport is way behind current hardware and could be massively improved.  The biggest issue is with views that include wireframe elements such as wireframe, shaded with edges etc.  These views are drastically slower than shaded views which doesn't make a lot of sense and makes them hard to use.

 

Watching the GPU monitor I rarely see more than 50% load which seems to indicate the CPU is still burdened with much of the graphical work.  Ironically as the model gets more complex, the GPU usage goes down which seems to indicate the GPU isn't even used for geometry transformation.

 

The wireframe issue arrises again when Prehighlight is active (which is pretty much necessary much of the time).  Every time something is highlighted which activates a wireframe overlay, it's like the brakes being slammed on as far as graphic performance.  Really a pain.

 

This issue also carries over to any other construction geometry like planes and sketches.

 

Time to re-work the viewport to match current hardware capabilities!

12 Comments
dgorsman
Consultant

I think there may be an unwarranted assumption or two here.  The activity on the CPU isn't necessarily from graphics display, more likely from the work of calculations to build/rebuild the objects.  The relative lack of activity on the GPU isn't necessarily from not being used fully, more likely that the full resources aren't required.  The GPU isn't used for any kind of geometry work as that should be done in the CPU in this type of program.  Games and other heavily constrained systems can get away with it as the assets are all pre-determined (and almost always swapped between options rather than deformed) but in such a dynamic design program there would be a parade of objects being pushed through to the display adaptor (bottleneck).

 

Rather like asking for more RAM to be used to improve performance when it uses as much as it needs, asking for more activity on the part of the graphics card may not be useful if its already using what it needs.

 

I think a more detailed analysis of your situation is required.

lkrenzler
Collaborator

I'm sorry, I don't agree entirely.  Lack of GPU activity because it's not required?  When you're down to 2 or 3 fps it's required, it's just not being used efficiently.  Modern games have far more deformation going on at any given time than Inventor, yet they can use the GPU for geometry transformation along with everything else so I don't buy that at all.

 

Other packages like Max, Maya etc. have made great strides in display performance and are not so very different from Inventor.  Yes, they are polygon based models but solids in Inventor are teslated into polys for display too, so at that point, they are not really different.  Maybe the Inventor guys should walk across the hall and see what they're doing.

 

Solid views in Inventor are not too bad, but I'm sure they could improve.  However the wireframe is terrible.  I have never seen a program with such poor wireframe performance (in other programs usually it's faster than solid views) so I'm confused as to why that is.  I'm pretty sure this part could really be improved.

SMGordon
Advocate

I just discovered this also. I'm working in a pretty giant model and while usable, my framerate is like you said, about 2-3. I decided to investigate to see if I could determine a bottleneck to fix in the next upgrade, and I was surprised to see such low usage. While rotating with my cursor on the window (pre-highlighting) my GPU was maxing out at about 10%, with plenty of VRAM to spare. Apparently I overdid it with the graphics card purchase (I'm using a Firepro W8000) if Inventor can't utilize it. I also noticed my CPU usage didn't really change while testing. This is pretty frustrating and I hope Autodesk takes a serious look at improving this. Perhaps for the time being the main thing you should look at is clock speed of the GPU.

 

This image shows my system and Inventor specific GPU usage:

 

GPU usage screenshot.png

 

 

 

 

 

SMGordon
Advocate

EDIT:

Okay I was wrong, my CPU was hitting 40%-60%. And I found a good explanation about what is happening here:
Quadro M4000—CAD Applications Can't Handle This Much Power

 

"Each time you interact with your CAD program, there is the time, X, which the CPU needs in order to prepare the new view, and the time, Y, which the GPU needs to render that information on your display. If Y is essentially zero relative to X, then a faster GPU (pushing Y further towards zero) doesn't deliver any additional performance. X is what needs improvement."

 

So I guess the solution is to get the fastest CPU you can and don't waste money on a monster graphics card unless you're doing real rendering.

brotherkennyh
Advocate

You are forgetting the different departments at Autodesk don't know each other exist.

Even just for PDS they don't talk to each other. Can you even tell me the guys implementing Vault have used the same water cooler as the guys building the frame generator?

 

Some investment needs to go into the performance here. If necessary Autodesk needs to hire someone that understands application optimisation. This would be a big productivity boost if the CPU bottleneck could be removed/reduced. I know it isn't a simple task, but there should be a whole team of people dedicated specifically to this.

lkrenzler
Collaborator
Haha too true. The solution is probably sitting right across the hall. Ben, the X, Y example you gave may not be entirely true. It is true that the CPU has to do some work and then pass on the job to the GPU BUT if the CPU is stuck doing work that the GPU COULD be doing much better, then performance suffers. This has been a common problem in 3D packages for decades. They write for the hardware on hand. Then the hardware improves dramatically but they don't get around to re-writing for the new capabilities for years. Current GPU's can take on much more than they used to. It feels like Inventor isn't even close to taking advantage of it. This gets to be a real pain in large assemblies. If you make a small change, the display is like wading through mud until all the geometry is in view again. There is something very inefficient happening there, perhaps to save GPU memory which may have been an issue years ago but not so much anymore. Fact is, other programs are WAY faster (even some of Autodesks on stuff) so there is no reason Inventor can't be too. Perhaps they need to walk across the hall...
brotherkennyh
Advocate

I have output some of our large assemblies to Unity 3D (which is free and open source) and have outputted them on the HTC vive in VR.

This has no problem with frame rate, despite the fact it is rendering the same shapes. It is actually being rendered with more complex graphic affects in the scene than Inventor has to deal with and it has to render it twice to produce the 3D effect.

lkrenzler
Collaborator
Exactly. Even if I export to Blender (another free program) it handles it better. Not just a little, whole orders of magnitude. All Inventor needs is a modern re-write of the viewport. I know it's probably not trivial to do that but it needs it.
el_jefe_de_steak
Collaborator

I would like to see an option for GPU assisted rendering of videos and images in Inventor Studio. Currently, I have a pretty decent graphics card, and am disappointed to see that Inventor does not use it at all, and instead uses 100% of the CPU. This seems like a gross oversight because GPU's are specifically designed to render things as efficiently as possible. Even simple renders take quite some time to complete, and it would be great to see this improved upon.

 

I know this idea has come up multiple times before, but I haven't found a post specifically addressing GPU usage for rendering.

 

Untitled.jpg

Tags (4)
dgorsman
Consultant

For what it's worth, that P1000 showing is very basic, I'm not certain you'd get any gains from GPU rendering on that.

 

That requires a renderer written specifically for GPUs.  All of Autodesk's current offerings, including Arnold, are CPU renderers so in order to use a GPU renderer it would require supporting some sort of plug-in architecture similar to where 3DSMAX has been moving.

 

There are also a number of limitations with GPU renderers.  First, each GPU requires sufficient VRAM to load the entire scene even if several are being run in parallel.  If the scene is too complicated (transparent/reflective materials, lots of lights, etc.) then it cannot be rendered at all.  There is currently no means to share system RAM (yes, eeVee/2.8, but that's not even at Alpha release yet...).  There's also potential limitations on which GPUs can be used for certain renderers; some even require the more expensive Quadro/Tesla cards.

 

For now, having a CPU renderer doesn't put a barrier on rendering for any users, even if it does take a bit longer.

l0gical
Explorer

Can totally confirm that a K3100m in assisted rendering makes a HUGE increase, especially as Nvidia have launched the de-noiser which on Solidworks 2018SP3, allows a 10x increase in rendering performance.

Guessing the P1000 is the lower end of the Pascals but probably more powerful than my Kepler 4gb card in my Zbook17 4900MQ/K3100m

 

Would be a nice inclusion of course BUT not make it a requirement as a lot of people including myself have used Gaming Laptops for Autodesk products based on saving against the Quadro BUT having a faster CPU, guess that balances both ways of the argument.

shadowcaster111
Enthusiast

OK its the 21st century

Can we get some GPU rendering in Studio now ?

No one has time to waste on this CPU rendering when arnold now is available with optix

Can't find what you're looking for? Ask the community or share your knowledge.

Submit Idea