I’m trying to benchmark power consumption between the Xavier AGX and Xavier NX when configured almost identically. We are trying to keep the power consumption down to around 19W on each Xavier.
I have a custom nvpmodel which is pasted below and is used for the AGX and the same is used for the NX. The clocks are reduced so that we can achieve running in a 19W footprint.
The results show the AGX can consume 19W using a 700 Mhz GPU and 1.95 Ghz CPU cores. The NX power consumption is much higher, around 24W. The test is started (by hand), followed by the stress-ng load, followed by the nbody_opengles load (nbody_opengles is from cuda samples).
Why is the NX could be so much higher? Or why is the AGX power consumption so much lower? Both Nvidia devkits are using Jetpack 4.5.1. Both are Nvidia devkits. Both are connected to displays so i could run the nbody_opengles commands from a console window on the display.
On the AGX, I am running these command-line tools on separate consoles:
$ stress-ng --cpu 8 --cpu-load 80
$ ./nbody_opengles -numbodies=20000
$ sudo tegrastats
The results for the AGX are below. The horizontal axis is number of seconds.
AGX nvpmodel:
< POWER_MODEL ID=7 NAME=MODE_7 >
CPU_ONLINE CORE_0 1
CPU_ONLINE CORE_1 1
CPU_ONLINE CORE_2 1
CPU_ONLINE CORE_3 1
CPU_ONLINE CORE_4 1
CPU_ONLINE CORE_5 1
CPU_ONLINE CORE_6 1
CPU_ONLINE CORE_7 1
TPC_POWER_GATING TPC_PG_MASK 0
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
CPU_DENVER_0 MIN_FREQ 1000000
CPU_DENVER_0 MAX_FREQ 1950000
CPU_DENVER_1 MIN_FREQ 1000000
CPU_DENVER_1 MAX_FREQ 1950000
CPU_DENVER_2 MIN_FREQ 1000000
CPU_DENVER_2 MAX_FREQ 1950000
CPU_DENVER_3 MIN_FREQ 1000000
CPU_DENVER_3 MAX_FREQ 1950000
GPU MIN_FREQ 318750000
GPU MAX_FREQ 700000000
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 1600000000
DLA_CORE MAX_FREQ 896000000
DLA_FALCON MAX_FREQ 524800000
PVA_VPS MAX_FREQ 550400000
PVA_CORE MAX_FREQ 409600000
CVNAS MAX_FREQ 460800000
On the NX, I am running these command-line tools in separate consoles:
$ stress-ng --cpu 6 --cpu-load 80
$ ./nbody_opengles -numbodies=20000
$ sudo tegrastats
The results for the NX are below. The horizontal axis is the number of seconds.
NX Nvpmodel:
< POWER_MODEL ID=15 NAME=MODE_6CORE_GPU >
CPU_ONLINE CORE_0 1
CPU_ONLINE CORE_1 1
CPU_ONLINE CORE_2 1
CPU_ONLINE CORE_3 1
CPU_ONLINE CORE_4 1
CPU_ONLINE CORE_5 1
TPC_POWER_GATING TPC_PG_MASK 1
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
CPU_DENVER_0 MIN_FREQ 1000000
CPU_DENVER_0 MAX_FREQ 1950000
CPU_DENVER_1 MIN_FREQ 1000000
CPU_DENVER_1 MAX_FREQ 1950000
CPU_DENVER_2 MIN_FREQ 1000000
CPU_DENVER_2 MAX_FREQ 1950000
GPU MIN_FREQ 318750000
GPU MAX_FREQ 700000000
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 1600000000
DLA_CORE MAX_FREQ 896000000
DLA_FALCON MAX_FREQ 524800000
PVA_VPS MAX_FREQ 550400000
PVA_CORE MAX_FREQ 409600000
CVNAS MAX_FREQ 576000000