CPU load for camera_multiple_gmsl and camera_gmsl

Hi,

Currently, I am working on a ROS nodelet to read out a number of GMSL cameras on the Drive PX2. The Driveworks camera_multiple_gmsl sample will be used as a basis for our code. I was starting out with some analysis on the performance using htop and I noticed the following.

When running the camera_multiple_gmsl sample with two cameras on different ports (A0, B0), the reported CPU load percentage of the main process is about 70%. When running two instances of the camera_gmsl sample for each camera (A0, B0), the reported CPU load percentage for each main process is about 10%, giving a total of just 20%. Do you know why this is? Because of how Driveworks is implemented or because of how both samples are implemented? And do you otherwise know how to improve the camera_multiple_gmsl to also reach about 20% for two cameras? It seems like a rather big difference.

Some information about our set-up:

  • Drive SDK 5.0.5

  • CUDA 9.0

  • cuDNN 7.0

  • Driveworks 0.6

  • Camera: Sekonix SF332X-10X

  • Image sensor: Onsemi AR0231 RCCB (rev 7)

Best regards,

Erik

Dear e.vlasblomzepis,

I’ve checked and measured CPU load percentage with tegrastats tool on DPX2.

-. ./sample_camera_gmsl --camera-port=a
-. ./sample_camera_gmsl --camera-port=c

RAM 2351/6402MB (lfb 599x4MB) CPU [32%@1979,0%@2035,1%@2035,22%@1979,15%@1979,5%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@51.5C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [29%@1979,1%@2035,0%@2035,26%@1979,16%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@52C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [27%@1979,1%@2035,0%@2035,26%@1979,11%@1979,9%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@51.5C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [31%@1979,0%@2035,0%@2035,21%@1979,18%@1979,2%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@51.5C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [31%@1979,1%@2035,1%@2035,21%@1979,12%@1979,6%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@52C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [29%@1979,3%@2035,0%@2035,24%@1979,13%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@52C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [26%@1979,3%@2035,0%@2035,26%@1979,14%@1979,5%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.25C AO@52C GPU@59C BCPU@53C thermal@59C Tegra@59.25C Tj@59.25C
RAM 2351/6402MB (lfb 599x4MB) CPU [31%@1979,1%@2035,1%@2035,23%@1979,14%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.25C AO@51.5C GPU@59C BCPU@53C thermal@59C Tegra@59.25C Tj@59.25C
RAM 2351/6402MB (lfb 599x4MB) CPU [31%@1979,3%@2035,2%@2035,25%@1979,14%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@51.5C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [28%@1979,5%@2035,0%@2035,26%@1979,12%@1979,2%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.25C AO@51.5C GPU@59C BCPU@53C thermal@59C Tegra@59.25C Tj@59.25C
RAM 2351/6402MB (lfb 599x4MB) CPU [29%@1979,2%@2035,2%@2035,24%@1979,13%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.25C AO@51.5C GPU@59C BCPU@53C thermal@59.25C Tegra@59.25C Tj@59.25C
RAM 2351/6402MB (lfb 599x4MB) CPU [28%@1979,2%@2035,0%@2035,23%@1979,11%@1979,6%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@51.5C GPU@59C BCPU@53C thermal@59.25C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [31%@1979,2%@2035,2%@2035,21%@1979,12%@1979,6%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@52C GPU@59C BCPU@53C thermal@59.25C Tegra@59C Tj@59C
RAM 2351/6402MB (lfb 599x4MB) CPU [29%@1979,2%@2035,0%@2035,22%@1979,11%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.25C AO@51.5C GPU@59C BCPU@53C thermal@59.25C Tegra@59.25C Tj@59.25C
RAM 2351/6402MB (lfb 599x4MB) CPU [29%@1979,2%@2035,1%@2035,24%@1979,13%@1979,4%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@52C GPU@59C BCPU@53C thermal@59.25C Tegra@59C Tj@59C
RAM 2352/6402MB (lfb 599x4MB) CPU [27%@1979,2%@2035,1%@2035,24%@1979,13%@1979,3%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59C AO@52C GPU@59C BCPU@53C thermal@59C Tegra@59C Tj@59C
  1. ./sample_camera_multiple_gmsl --selector-mask=000100010000
RAM 2895/6402MB (lfb 461x4MB) CPU [36%@1979,2%@2035,0%@2035,27%@1979,15%@1979,8%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.75C AO@52.5C GPU@59.5C BCPU@53.5C thermal@59.5C Tegra@59.75C Tj@59.75C
RAM 2895/6402MB (lfb 461x4MB) CPU [37%@1979,1%@2035,1%@2035,27%@1979,18%@1979,6%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.75C AO@52C GPU@59.5C BCPU@53.5C thermal@59.75C Tegra@59.75C Tj@59.75C
RAM 2896/6402MB (lfb 461x4MB) CPU [37%@1979,2%@2035,2%@2035,32%@1979,16%@1979,9%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.75C AO@52.5C GPU@59.5C BCPU@53.5C thermal@59.75C Tegra@59.75C Tj@59.75C
RAM 2896/6402MB (lfb 461x4MB) CPU [42%@1979,1%@2035,4%@2035,31%@1979,14%@1979,7%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.5C AO@52.5C GPU@59.5C BCPU@53.5C thermal@59.75C Tegra@59.5C Tj@59.5C
RAM 2895/6402MB (lfb 461x4MB) CPU [42%@1979,0%@2035,2%@2035,30%@1979,15%@1979,6%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.5C AO@52C GPU@59.5C BCPU@53.5C thermal@59.75C Tegra@59.5C Tj@59.5C
RAM 2895/6402MB (lfb 461x4MB) CPU [38%@1979,1%@2035,3%@2035,31%@1979,12%@1979,11%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.5C AO@52C GPU@59C BCPU@53C thermal@59.75C Tegra@59.5C Tj@59.5C
RAM 2896/6402MB (lfb 461x4MB) CPU [36%@1979,1%@2035,0%@2035,32%@1979,13%@1979,10%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.75C AO@52.5C GPU@59C BCPU@53C thermal@59.5C Tegra@59.75C Tj@59.75C
RAM 2896/6402MB (lfb 461x4MB) CPU [39%@1979,0%@2035,0%@2035,27%@1979,16%@1979,7%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.75C AO@52.5C GPU@59C BCPU@53C thermal@59.5C Tegra@59.75C Tj@59.75C
RAM 2896/6402MB (lfb 461x4MB) CPU [39%@1979,1%@2035,1%@2035,29%@1979,13%@1979,10%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.5C AO@52.5C GPU@59C BCPU@53C thermal@59.5C Tegra@59.5C Tj@59.5C
RAM 2896/6402MB (lfb 461x4MB) CPU [40%@1979,1%@2035,5%@2035,28%@1979,12%@1979,9%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.5C AO@52.5C GPU@59.5C BCPU@53.5C thermal@59.5C Tegra@59.5C Tj@59.5C
RAM 2896/6402MB (lfb 461x4MB) CPU [37%@1979,2%@2035,1%@2035,28%@1979,11%@1979,7%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53.5C MCPU@53.5C Tegra@0C Tdiode@59.5C AO@52.5C GPU@59.5C BCPU@53.5C thermal@59.5C Tegra@59.5C Tj@59.5C
RAM 2896/6402MB (lfb 461x4MB) CPU [38%@1979,3%@2035,1%@2035,29%@1979,13%@1979,6%@1979] EMC_FREQ 0% GR3D_FREQ 0%@1275 GR3D_PCI % 0% PLL@53C MCPU@53C Tegra@0C Tdiode@59.5C AO@52.5C GPU@59C BCPU@53C thermal@59.5C Tegra@59.5C Tj@59.5C

According to the logs, there is not big gap between two single and multi(two camear).

DPX2 system SW versions.
PDK : 5.0.10.3
DriveWorks : 1.2.400

Could you please update DPX2’s PDK and DW to the latest version and try to measure again? Thanks