- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I have just received a new D435 camera and started testing it. While looking at the different parameters for the camera I was using realsense viewer and noticed that, when I turn on the stream from RGB camera, all the cores jump to almost a maximum usage. I have Intel i7-7700HQ, 2.80GHz × 8 so my computer should be up to the task. I first thought it was just because I was using realsense viewer, but it turned out that the same thing happens when I use ROS wrapper and start the stream from RGB camera. After disabling RGB processing, processor usage reduced a little, but not nearly enough.
My question is, why does turning on RGB stream uses so much processing power and is there a way to get around it?
My use case requires a lot of algorithms and processes to run in parallel and if the camera uses this much processing power, I am afraid that I will not be able to meet all the requirements.
Also, I've found an answer somewhere in github issues that there is no explanation on how one of the advanced parameters effect another, but I am interested is there at least explanation what does every parameter mean? Some of the used abbreviations (RAU, SLO, HDAD, AE, DS) are not so clear (at least to me) and any help would be greatly appreciated.
I am looking forward to Your answer and Thank You in advance!
Kind regards
- Tags:
- Memory
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The RealSense SDK software has a couple of Known Issues related to CPU load that are being worked on. They should be fixed in subsequent versions of the SDK.
- CPU utilization increases with Projector switched off
- The Viewer and the visual examples CPU utilization is high, when streaming depth or color
Regarding the Viewer settings: unfortunately I was unable to locate documentation for them to meet your needs despite an extensive search. A member of the Intel support team may be able to confirm to you later whether such documentation for the Viewer settings exists yet.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank You, MartyG!
I am aware that there is still much work to be done, but the load on the processor when streaming RGB really surprised me.
Depth stream does not take nearly as much load as the RGB does, at least in my experience. Also, switching off the projector helps a little, but not nearly enough.
It remains to be seen how the things will evolve.
Thank You for the provided information!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You are very welcome!
If you are not already using SDK version 2.10.1 (the most recent release) then I would recommend trying that, as it contains a setting that disables the 'OpenMP compile flag' by default to reduce CPU load.
https://github.com/IntelRealSense/librealsense/wiki/Release-Notes Release Notes · IntelRealSense/librealsense Wiki · GitHub
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank You very much!
I've pulled all the changes from the master and compiled again, but with disabled 'Open MP flag'. It helped a lot. Now, processing load makes much more sense.
Now, let's wait for the answer regarding advanced parameters.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm very glad I could help.
I had another look through the source code of the Viewer's files in relation to its Advanced menu options but still could not find any notes to explain the functions. In the meantime, you may be interested in the documentation for custom calibrations of the camera.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Another option that would give you some control over how many threads are used, is to re-enable openmp (-DBUILD_WITH_OPENMP=true) and then set either of the environment variables OMP_DYNAMIC (TRUE) or OMP_NUM_THREADS (to some value less than the number of cores/threads your system has). These variables can also be set in the code (e.g., omp_set_num_threads(2)).
Visual Studio references but I think they are same/similar on other platforms.
https://msdn.microsoft.com/en-us/library/xh7e1zba.aspx 4.2 OMP_NUM_THREADS
https://msdn.microsoft.com/en-us/library/y2s46ze1.aspx 4.3 OMP_DYNAMIC
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page