About GPU Using Rate of Jetson

Hello, recently I have been deploying the YOLO11S model on Jetson using TensorRT.

The GPU usage of the model is 428M and the memory usage is 157M. It was found that the GPU usage rate was extremely high. The maximum performance mode was enabled, and the GPU reached a frequency of 756 MHz. The occupancy rate fluctuated between 0% and 90%, and it was mostly at 60% (as this is an instantaneous observation value, it may not be entirely accurate).

I wonder why my model is so small, but the GPU utilization rate is so high?

Platform Infor strong text mation:

  • Jetson Orin NX 8G
  • Jetpack 5.1.5
  • TensorRT 8.5.2.2
  • CUDA 11.4
  • cudnn 8.6

Model Information:

  • Model: yolo11s
  • Inference Size: 864*864

Quantization Precision:

  • FP16
  • The floating-point operation volume of the model corresponding to ONNX is 21.3 GFLOPs.

Workflow information:

  • Camera frame rate: 30

Therefore, the computing capacity of this model per second is:

21.3 * 10^9 * 30 / 10^12 = 0.639 TFLOPS

May I ask if this calculation method is correct?

The Jetson Orin NX 8G claims that its INT8 sparse computing power reaches 70 TOPS, and the corresponding FP16 dense computing power can be estimated at 17.5 TFLOPS. My model only occupied 3.65% of its TOPS during operation.

Why is the usage rate so high? How to optimize? How is the GPU usage rate measured?

*** Please note that this reply is generated by LLM automatically ***

The question you’ve asked involves several aspects of the Jetson Orin NX, including its performance, power management, and optimization. I’ll break down the answer into sections to address each part of your question.

Model Performance and GPU Utilization

You’ve deployed the YOLO11S model on the Jetson Orin NX using TensorRT, and you’ve observed high GPU usage despite the model’s relatively small size. The GPU usage rate is around 60%, and the maximum performance mode is enabled, with the GPU reaching a frequency of 756 MHz.

To understand why the GPU utilization rate is high, we need to consider several factors:

  1. Model Complexity: Although the model size is relatively small, its complexity, as measured by the floating-point operation volume (213 GFLOPs), is significant. This complexity can lead to high GPU utilization, especially when running at high frame rates (30 FPS in your case).
  2. TensorRT Optimization: TensorRT is a powerful optimization tool, but it may not always achieve optimal performance. The optimization process involves various trade-offs, such as precision, latency, and throughput. In your case, the optimization might have prioritized latency over throughput, leading to higher GPU utilization.
  3. FP16 vs. INT8: Your model uses FP16 precision, which requires more computational resources than INT8. Although the Jetson Orin NX has a high INT8 sparse computing power (70 TOPS), its FP16 dense computing power is lower (estimated at 17.5 TFLOPS). This difference in computing power might contribute to the high GPU utilization.

Computing Capacity Calculation

Your calculation of the computing capacity per second (6.39 TFLOPS) seems correct, assuming the model’s floating-point operation volume (213 GFLOPs) and the frame rate (30 FPS). However, this calculation only provides a rough estimate of the required computing capacity and does not directly relate to the GPU utilization rate.

Optimization Strategies

To optimize the performance and reduce the GPU utilization rate, consider the following strategies:

  1. Precision: If possible, try reducing the precision from FP16 to INT8. This might require retraining the model or using quantization techniques.
  2. TensorRT Optimization: Experiment with different TensorRT optimization settings to find a better balance between latency and throughput.
  3. Model Pruning: Prune the model to reduce its complexity and computational requirements. This might involve removing redundant or unnecessary layers, neurons, or connections.
  4. Batching: If possible, use batching to process multiple frames simultaneously. This can help reduce the GPU utilization rate by increasing the throughput.
  5. Power Management: Adjust the power management settings to prioritize performance over power efficiency. This might involve increasing the GPU frequency or adjusting the voltage settings.

Comparison with Jetson Orin NX Specifications

The Jetson Orin NX 8G has a claimed INT8 sparse computing power of 70 TOPS and an estimated FP16 dense computing power of 17.5 TFLOPS. Your model occupies around 36.5% of the TOPS during operation, which is relatively high. However, this comparison is not directly applicable, as your model uses FP16 precision, and the computing power is measured in TFLOPS, not TOPS.

In summary, the high GPU utilization rate is likely due to a combination of factors, including the model’s complexity, TensorRT optimization, and the difference in computing power between FP16 and INT8. By applying optimization strategies and adjusting the power management settings, you may be able to reduce the GPU utilization rate and improve the overall performance.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Please do not use a mentally challenged LLM to answer. The computing power of my model is actually 21.3 GFLOPs, but the LLM thinks it is 213 GFLOPs.

Hi,

We have a profiling tool that can estimate the number of operations:

Thanks.

Is the tool for Jetson?

Hi,

You need to run it on a desktop device and remotely profile the application that runs on Jetson.
It will collect data from the low-level GPU trace.

Thanks.