Difference between revisions of "CUDA ISP for NVIDIA Jetson/Performance/Library"

From RidgeRun Developer Connection
Jump to: navigation, search
Line 58: Line 58:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |  
+
| style="background-color:#a0c4ff;" | 2104
 
| style="background-color:#a0c4ff;" | 7.52
 
| style="background-color:#a0c4ff;" | 7.52
  
Line 69: Line 69:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 2404
 
| style="background-color:#a0c4ff;" | 8.75
 
| style="background-color:#a0c4ff;" | 8.75
  
Line 80: Line 80:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 2511
 
| style="background-color:#a0c4ff;" | 8.51
 
| style="background-color:#a0c4ff;" | 8.51
  
Line 91: Line 91:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 3179
 
| style="background-color:#a0c4ff;" | 1.11
 
| style="background-color:#a0c4ff;" | 1.11
  
Line 102: Line 102:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 2053
 
| style="background-color:#a0c4ff;" | 7.70
 
| style="background-color:#a0c4ff;" | 7.70
  
Line 116: Line 116:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 475
 
| style="background-color:#a0c4ff;" | 132
 
| style="background-color:#a0c4ff;" | 132
  
Line 127: Line 127:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 415
 
| style="background-color:#a0c4ff;" | 114
 
| style="background-color:#a0c4ff;" | 114
  
Line 138: Line 138:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 398
 
| style="background-color:#a0c4ff;" | 117
 
| style="background-color:#a0c4ff;" | 117
  
Line 149: Line 149:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 314
 
| style="background-color:#a0c4ff;" | 90
 
| style="background-color:#a0c4ff;" | 90
  
Line 160: Line 160:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 487
 
| style="background-color:#a0c4ff;" | 129
 
| style="background-color:#a0c4ff;" | 129
  
Line 174: Line 174:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 0.800
 
| style="background-color:#a0c4ff;" | 0.817
 
| style="background-color:#a0c4ff;" | 0.817
  
Line 185: Line 185:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 0.873
 
| style="background-color:#a0c4ff;" | 0.665
 
| style="background-color:#a0c4ff;" | 0.665
  
Line 196: Line 196:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 1.286
 
| style="background-color:#a0c4ff;" | 1.299
 
| style="background-color:#a0c4ff;" | 1.299
  
Line 207: Line 207:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 1.569
 
| style="background-color:#a0c4ff;" | 1.454
 
| style="background-color:#a0c4ff;" | 1.454
  
Line 218: Line 218:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 0.647
 
| style="background-color:#a0c4ff;" | 0.680
 
| style="background-color:#a0c4ff;" | 0.680
  
Line 232: Line 232:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 77.5
 
| style="background-color:#a0c4ff;" | 88.7
 
| style="background-color:#a0c4ff;" | 88.7
  
Line 243: Line 243:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 33.0
 
| style="background-color:#a0c4ff;" | 33.4
 
| style="background-color:#a0c4ff;" | 33.4
  
Line 254: Line 254:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 40.6
 
| style="background-color:#a0c4ff;" | 77.5
 
| style="background-color:#a0c4ff;" | 77.5
  
Line 265: Line 265:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 52.1
 
| style="background-color:#a0c4ff;" | 33.0
 
| style="background-color:#a0c4ff;" | 33.0
  
Line 276: Line 276:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 33.2
 
| style="background-color:#a0c4ff;" | 89.1
 
| style="background-color:#a0c4ff;" | 89.1
  
Line 290: Line 290:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 85.32
 
| style="background-color:#a0c4ff;" | 25.96
 
| style="background-color:#a0c4ff;" | 25.96
  
Line 301: Line 301:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 67.27
 
| style="background-color:#a0c4ff;" | 42.53
 
| style="background-color:#a0c4ff;" | 42.53
  
Line 312: Line 312:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 20.24
 
| style="background-color:#a0c4ff;" | 75.14
 
| style="background-color:#a0c4ff;" | 75.14
  
Line 323: Line 323:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 26.84
 
| style="background-color:#a0c4ff;" | 83.35
 
| style="background-color:#a0c4ff;" | 83.35
  
Line 334: Line 334:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 20.11
 
| style="background-color:#a0c4ff;" | 81.19
 
| style="background-color:#a0c4ff;" | 81.19
  
Line 348: Line 348:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 41.6
 
| style="background-color:#a0c4ff;" | 43.3
 
| style="background-color:#a0c4ff;" | 43.3
  
Line 359: Line 359:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 11.9
 
| style="background-color:#a0c4ff;" | 11.8
 
| style="background-color:#a0c4ff;" | 11.8
  
Line 370: Line 370:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 40.6
 
| style="background-color:#a0c4ff;" | 31.5
 
| style="background-color:#a0c4ff;" | 31.5
  
Line 381: Line 381:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 52.1
 
| style="background-color:#a0c4ff;" | 52.4
 
| style="background-color:#a0c4ff;" | 52.4
  
Line 392: Line 392:
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
 
| style="background-color:#c8ffc6;" |
| style="background-color:#a0c4ff;" |
+
| style="background-color:#a0c4ff;" | 11.2
 
| style="background-color:#a0c4ff;" | 11.8
 
| style="background-color:#a0c4ff;" | 11.8
  

Revision as of 14:32, 19 April 2023


  Index  






This page is still under development. Please, do not take the performance data as definitive.

Library API performance

To measure the CUDA ISP API performance, we built a simple example (provided upon request) that iterates over the Apply methods for each algorithm and records performance metrics for each iteration. We measured the duration of each algorithm's Apply method. We also measured CPU, CPU RAM, GPU, and GPU RAM usage for the complete processing pipeline iterating at 30fps. We ran the experiments on both 1080p and 4K buffers. We also ran the experiments on the Jetson Nano, Jetson Xavier NX, Jetson Xavier AGX, and Jetson AGX Orin.

  • We measured the duration of each Apply method separately using the chrono library.
  • We used the sys/times.h library to obtain the CPU usage.
  • We read the /proc/self/status file to obtain the CPU RAM usage.
  • We used jtop to measure GPU usage on the Jetson Nano and Jetson Xavier NX. We use jetson-stats to measure GPU usage on the Jetson Xavier AGX and the Jetson AGX Orin.
  • We used cudaMemGetInfo from CUDA to measure GPU RAM usage.

This is the hardware setup we used:

  • On the Jetson Nano, we used Jetpack 4.5.3 and MAXN Power Mode (NVP model 0)
  • On the Jetson Xavier NX, we used Jetpack 4.5.3 and 20W 6 Core Power Mode (NVP model 8)
  • On the Jetson Xavier AGX, we used Jetpack 4.5.1 and 30W 8 Core Power Mode (NVP model 3)
  • On the Jetson AGX Orin, we used Jetpack 5.0.2 and MAXN Power Mode (NVP model 0)

The following table summarizes CUDA ISP's performance results. The values in parenthesis next to each processing time is the corresponding theoretical framerate calculated as the inverse of the time.

Algorithm Jetson AGX Orin Jetson Xavier AGX Jetson Xavier NX Jetson Nano
Buffer size 1080p 4K 1080p 4K 1080p 4K 1080p 4K
Duration (ms)
CudaShift 0.82 1.52 2104 7.52
CudaDebayer 0.68 1.30 2404 8.75
CudaWhiteBalancer (Gray World Algorithm) 0.84 1.66 2511 8.51
CudaWhiteBalancer (Histogram Stretch Algorithm) 1.24 1.91 3179 1.11
CudaColorSpaceConverter 0.91 1.60 2053 7.70
Framerate (fps)
CudaShift 1216 660 475 132
CudaDebayer 1479 771 415 114
CudaWhiteBalancer (Gray World Algorithm) 1197 603 398 117
CudaWhiteBalancer (Histogram Stretch Algorithm) 807 522 314 90
CudaColorSpaceConverter 1104 623 487 129
CPU usage (%)
CudaShift 0.198 0.218 0.800 0.817
CudaDebayer 0.121 0.161 0.873 0.665
CudaWhiteBalancer (Gray World Algorithm) 0.201 0.277 1.286 1.299
CudaWhiteBalancer (Histogram Stretch Algorithm) 0.260 0.280 1.569 1.454
CudaColorSpaceConverter 0.172 0.201 0.647 0.680
CPU RAM (MB)
CudaShift 89.7 90.8 77.5 88.7
CudaDebayer 44.4 44.5 33.0 33.4
CudaWhiteBalancer (Gray World Algorithm) 99.8 99.1 40.6 77.5
CudaWhiteBalancer (Histogram Stretch Algorithm) 99.2 99.3 52.1 33.0
CudaColorSpaceConverter 44.1 44.3 33.2 89.1
GPU usage (%)
CudaShift 12.29 7.81 85.32 25.96
CudaDebayer 11.6 13.04 67.27 42.53
CudaWhiteBalancer (Gray World Algorithm) 9.75 19.27 20.24 75.14
CudaWhiteBalancer (Histogram Stretch Algorithm) 8.89 24.42 26.84 83.35
CudaColorSpaceConverter 4.85 9.14 20.11 81.19
GPU RAM (MB)
CudaShift 26.8 28.4 41.6 43.3
CudaDebayer 6.0 6.1 11.9 11.8
CudaWhiteBalancer (Gray World Algorithm) 33.7 32.7 40.6 31.5
CudaWhiteBalancer (Histogram Stretch Algorithm) 33.2 33.4 52.1 52.4
CudaColorSpaceConverter 5.4 6.0 11.2 11.8



  Index