Background:
I am profiling a model on the Jetson Orin Nano dev kit for a memory-bandwidth study. The workload executes a GPU-resident model on the Orin Nano’s . I am trying to quantify how much DRAM bandwidth consumes during execution, I need per-source DRAM throughput measurements.
Environment:
- Jetson Orin Nano Developer Kit (8 GB)
- JetPack 6.2.2 (L4T R36.5.0)
- CUDA 12.6
- Nsight Systems 2024.5.4
- Nsight Compute 2024.3.1.0
- GPU: Ampere GA10B (1024 CUDA cores, 32 Tensor Cores)
- Device path:
/sys/devices/17000000.ga10b/devfreq/17000000.ga10b/
The ga10b-gfxt GPU metrics config file at /opt/nvidia/nsight-systems/2024.5.4/target-linux-tegra-armv8/GpuMetrics/ga10b-gfxt.config defines exactly the metrics I need. I also noted that the ga10x.config file defines GPU-internal DRAM counters (dram__read_throughput, dram__write_throughput) which are absent from the ga10b.config file.
I tried the following
- captured a profile with
ga10b-gfxtat 10 kHz as below
sudo nsys profile --trace=cuda,nvtx,osrt --gpu-metrics-device=0 --gpu-metrics-set=ga10b-gfxt --gpu-metrics-frequency=10000 --sample=cpu --output=run_dram ./myscript.py
- Verified the
GPU_METRICStable exists with the correct metric definitions inTARGET_INFO_GPU_METRICS
metricId 0 → CPU-L3 Reads [Throughput %]
metricId 1 → CPU-L3 Writes [Throughput %]
metricId 2 → GPU Reads [Throughput %]
metricId 3 → GPU Writes [Throughput %]
metricId 4 → SoC Peripheral Reads [Throughput %]
metricId 5 → SoC Peripheral Writes [Throughput %]
- Queried the actual values , shows AVG=0.0 and MAX=0 across allsamples
- Verified that other GPU compute metrics in the same capture do have non-zero values
metricId 6 (GPU Active): AVG=34.1%, MAX=100%
metricId 10 (SM Throughput): AVG=4.9%, MAX=86%
metricId 91 (L1 Hit Rate): AVG=4.0%, MAX=100%
metricId 101 (L2 Hit Rate): AVG=14.8%, MAX=100%
Questions:
- Is the GA10B GPU on the Jetson Orin Nano expected to support the
mcc__dram_throughput_*counters through Nsight Systems’ periodic GPU metrics sampling (--gpu-metrics-set=ga10b-gfxt)? - If the counters should work, is there any settings or configurations that needs to be enabled on JetPack 6.2.2 to expose these counters to nsys? I have already tried running with
sudoand settingperf_event_paranoidto -1. - Is there a newer version of Nsight Systems (or a patched
ga10b-gfxt.config) that correctly collects these counters on the Orin Nano, or should I rely onncutool for per-kernel DRAM bandwidth andtegrastats EMC_FREQ%for system-wide DRAM utilization? - Are the
dram__read_throughput/dram__write_throughputcounters (present inga10x.configbut absent fromga10b.config) available on GA10B at all, through either nsys or ncu?
Any guidance on the supported counter set for GA10B on the Orin Nano would be appreciated. Thank you