The introduction of the Jetson TX2 Development Kit brings with it the introduction of the new command line interface nvpmodel tool.
Applications for the Jetson Tegra systems cover a wide range of performance and power requirements. As the Jetson family has become more sophisticated over the years, power and performance management is becoming an increasingly important issue.
Fortunately, NVIDIA is providing a new command line tool which takes out a lot of the guess work in configuring the CPU and GPU settings to maximize performance and energy usage under different scenarios.
There are natural performance/energy points which provide the best performance for the minimal amount of energy. NVIDIA has done the heavy lifting and done the calculations to figure out which of the core and clock frequencies provide the best performance for the energy budget.
Remember that the Jetson TX2 consists of a GPU along with a CPU cluster. The CPU cluster consists of a dual-core Denver 2 processor and a quad-core ARM Cortex-A57, connected by a high-performance coherent interconnect fabric. With 6 CPU cores and a GPU, you can understand how the average developer benefits by not having to run all the performance/energy tests themselves.
On the Jetson Tegra, CPUs may be online or offline (except CPU0, which is always on for obvious reasons). CPUs have minimum frequencies and maximum frequencies.
Nvpmodel introduces five different “modes”. On the Jetson TX2. The following table breaks down the modes, which CPU cores are used, and the maximum frequency of the CPU and GPU being used.
nvpmodel mode definition
|Mode||Mode Name||Denver 2||Frequency||ARM A57||Frequency||GPU Frequency|
|0||Max-N||2||2.0 GHz||4||2.0 GHz||1.30 Ghz|
|1||Max-Q||0||4||1.2 Ghz||0.85 Ghz|
|2||Max-P Core-All||2||1.4 GHz||4||1.4 GHz||1.12 Ghz|
|3||Max-P ARM||0||4||2.0 GHz||1.12 Ghz|
|4||Max-P Denver||2||2.0 GHz||0||1.12 Ghz|
Max-Q mode provides equivalent performance to a Jetson TX1 at full clock modes, while Max-N provides almost twice the performance. This is due to a variety of factors, not just clock speeds. For example, the Jetson TX2 has a 128-bit wide memory bus versus the 64-bit wide TX1.
To call nvpmodel:
$ sudo nvpmodel -m [mode]
where mode is the number of the mode that you want to use. For example:
$ sudo nvpmodel -m 1
places the Jetson into Max-Q mode.
You can query which mode is currently being used:
$ sudo nvpmodel -q --verbose
The file /etc/nvpmodel.conf holds the different models. Developers can add their own models to add different modes suitable to their application.
Using nvpmodel provides developers with a nice tool set to easily setup different energy usage and performance scenarios. Recommended.