I would like to log the usage of the GPU, encoder, decoder, and VIC.

I believe tegrastats is reading from these nodes on the Orin NX:


The VIC is the only one that lists a max load, and it is 900 on my device.
Otherwise, I don’t know what the unit of the numbers is. Is it frequency? Percentage?

I have seen the decoder load go between 0 and ~2000.

Can you help me determine how to calculate the overall load on these devices?

I would also like to record the load on the EMC, which tegrastats reports, but it is not immediately clear to me from the strace where it reads it from.

We would suggest run sudo tegrastats and check the prints. The tegrastats binary is prebuilt and not open source.

Yes I am running tegrastats and trying to figure out where it is getting it’s information from. tegrastats’ output is not easily machine parse-able, and I need to record load metrics via my own task to ensure we don’t run out of GPU processing space at a critical point in a mission.

I know an nvidia representative hasn’t endorsed this directly, but many posts on the forum recommend using strace to figure out what tegrastats is reading from so we can access the information directly.

@bhagen55 jetson-stats / jtop has an API or you can browse the source to see the /sys and /proc files that it queries the device information from:

1 Like

Ok, I will get what information I can from the source code of that project.

We would really like a deeper API to fetch performance information from the GPU. We will be running multiple tasks that will likely be competing for GPU resources, and it seems like there is no way to record stats that would let us understand if/when we run out of cycles/bandwidth/etc.

Having the NVML API available would be fantastic, and probably fulfill all our needs. But it appears that is not supported on Tegra platforms.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.