Reputation: 13
I’m running a real-time data plotting application on a Jetson Orin NX 16GB with Qt 6.8.0, where I update a chart with 10,000 data points every 30ms. This results in high CPU usage, ranging from 60-65%. When I remove the chart component from the application, the CPU usage drops to 2-3%, indicating that the chart rendering is likely causing the performance bottleneck.
Interestingly, the same application runs much more efficiently on a Samsung A8 tablet. This raises the concern that rendering such a large volume of data points in real time might be overwhelming the Jetson’s CPU, or potentially that the GPU on the Jetson Orin NX is not being fully utilized, or may lack the required capacity for this workload.
It seems possible that the main thread could be overwhelmed with chart rendering tasks, and GPU offloading may not be working effectively. Could there be a misconfiguration in utilizing the GPU for rendering, or is the Jetson Orin NX’s GPU simply not powerful enough to handle this load compared to the Samsung A8?
I am using minimal image on the board so make sure the resources are not over-utilised. Below is the code which I am using to plot real-time data-
I am using minimal image on the board so make sure the resources are not over-utilised. Below is the code which I am using to plot real-time data-
ChartView {
id: chartView
Layout.fillWidth: true
Layout.fillHeight: true
anchors.fill: parent
legend.visible: false
antialiasing: false
theme: ChartView.ChartThemeLight
property real xMarg: 0.2*chartView.width
property real yMarg: 0.065*chartView.height
ValuesAxis {
id: axisX
titleText: " IF Frequency (MHz)"
labelFormat: "%.2f"
min: 0
max: 100
}
ValuesAxis {
id: axisY
titleText: "Magnitude (dB)"
labelFormat: "%.1f"
min: -50
max: 0
tickCount: 6
}
LineSeries {
id: series1
name: "Analysis"
useOpenGL: true
axisX: axisX
axisY: axisY
}
axes: [axisX, axisY]
}
Connections {
target: zmqSubscriber
function onDataReceived(frequencyList, magnitudeList, maxMagnitude, maxMagnitudeFreq)
{
series1.clear();
// Append data to the series
for (var i = 0; i < frequencyList.length; i+= 5)
{
series1.append(frequencyList[i], magnitudeList[i]);
}
}
}
Upvotes: 0
Views: 56