Can someone point towards how a tutorial on this topic? I have a usd environment describing a digital twin of a factory, but due to the complexity of the scene it runs slowly, I want to utilize 2 GPUs to split the workload. So my plan is to perform the RTX Rendering and the Omniverse Kit UI/ Display Rendering on one of the GPU’s, while the other tasks such as the Physics, Core Simulation… would run on the other GPU. I am struggling to find any documentation, Setup Tips — Isaac Sim Documentation, shows how to activate it, but lacks more detail into assigning tasks to the GPU’s or more information in general.
Actually that will not help to much, because we still do physics, mostly on the CPU. So you currently have 2 GPUs installed now? Which ones? The way you can tell if you are CPU or GPU limited is to look at your task manager, and see, when playing back the simulation, if your cpu or gpu is maxed out. Another test is to just move around the scene purely in gpu mode, with no physics running. If that is smooth, again it is more likely the physics.
Right now I only have one GPU, a RTX 3090, but my simulation seems to run slow. I am building a Digital Twin of a small assembly line, but unfortunately I am running into slow performance of the simulation part. And since I am also running ROS packages to fully integrate the simulation into the project, controlling the robots via ROS messages is a crucial part.
In simple environments, where I just have a ground plane the robot and an object to pick up it runs great but with a more complex environment nothing seems to work, I don’t think it is caused by the GPU, but the CPU. So I was exploring the idea of splitting the workload in order to get a better performance.
So what I want is to run the rendering in one GPU and the other for the simulation core. Is this possible? Or I can only add two GPUs without assigning specific tasks?
Ah I see that you are actually running this service LIVE from another application. That is MUCH more demanding and would help explain the huge performance drop. Ideally you drive the animation in Isaac Sim with code and have that extra viewer / app closed. Having a LIVE link is much more strain on the cpu. And yes, it is true that the more complex the scene the more it will slow down with realtime simulation. All you can do it try to work with the hardware limitations you have, or update your cpu. But again, I would suggest looking for ways to only have Isaac Sim open, and not that other driving application.
Just one final question, about the rendering possibilities, can I assign specific tasks of the simulation on a specific GPU or am I just able to assign 2 GPU to the simulation and Isaac Sim manages the utilization of these at its will?
Well there are some subtle ways to segment out GPU usage, but I would keep it automatic mode and let Isaac Sim use the cpu and both GPUs the best way it can. You can go into the Physics system menu and assign certain tasks away from the cpu and on to the GPU, but you would have to experiment with it for best results.