CPU running count and enabling

Hello,

On running tegrastats , I see that out of 4 only 2 CPU’s are running and 2 are off.

Can you tell steps, on how to start/on all 4 CPU.

Different power profile “models” can be picked via the “nvpmodel” program. Typically, you’d pick one and only one of the below:

sudo ./nvpmodel -m 0
sudo ./nvpmodel -m 1
sudo ./nvpmodel -m 2

Note that all this does is to echo individual settings into files of “/sys”. The files in “/etc/nvpmodel/” contain various model information. The Nano is probably a t210 file, while an NX would be a t194 (Nano is related to the older TX1, a t210, and NX is related to the newer Xavier, a t194).

For example you’ll see a list of files (full path) in “/sys” for turning on the different cores, which can also be used to test if cores are online. As an example:
cat /sys/devices/system/cpu/cpu0/online
(“1” is online, “0” is offline)

Hello,

Thanks for the information. I am using jetson nano.

As per the documents there are 2 ways to power the jetson nano:

  • 5V 2.5A (10W) microUSB power adapter.(Supply-A)
  • 5V 4A (20W) barrel plug power supply.(Supply-B)

Power mode:

  • 0 : MAXN (already defined in nvpmodel_t210.conf)(default) (all 4 cpu cores are running)
  • 1 : 5W(already defined) (2 cpu cores are running)
  • 2 : (this can be a user defined mode??) can you tell about this.

from my understanding(correct me if i am wrong)
Supply-A requires power mode 5W and Supply-B requires power mode MAXN

I am using Supply-A, so in this scenario which power mode is suitable.

And on running the MAXN power mode in Supply-A i get a notification(system process is throttled).

This is not a specific answer, but this somewhat random list should be useful (no specific order)…

The Nano is capable of having any CPU core, other than CPU0, disabled or enabled. This is done through echo of “1” (or “0”) to the correct file in “/sys”. “nvpmodel” is a front end to a number of useful “echo” statements.

Some details are available in a similar method via “cat” of the proper “/sys” file.

Files in “/etc/nvpmodel” are human readable, and hint at which files are useful to cat or echo to. For a sample of useful file paths, try this:
egrep -i online /etc/nvpmodel/*
…and compare the “1” or “0” to which cores show up in apps like “htop” (“sudo apt-get install htop” if you don’t have this).

What nvpmodel results in will either be making cores available or not available, and will also possibly set a maximum clock range. Lower power usage models might run all cores, but limit clock speeds. Max output will enable all cores, and provide the range of clocks to the full range. Note carefully that I termed this “range”. “nvpmodel” does not actually change clocks, this is the realm of “jetson_clocks” (run “which jetson_clocks” to see where the file exists).

jetson_clocks” is also a human readable script, and you can browse what it does. Whereas “nvpmodel” will change the available range of clocks, “jetson_clocks” will actually pick a clock within that range. Using “jetson_clocks” to max out the clocks in an “nvpmodel” with a limited clock range will result in lower performance than if “jetson_clocks” is run in max performance nvpmodel. First, pick a model with nvpmodel, and then max out (or restore) the specific clocks with jetson_clocks.

The power consumption depends on which cores are active, along with what clock range is allowed (and which software is running). Not all combinations are possible with the micro-USB power since USB power has its own standards which can exceed max clocks with all cores running. The barrel connector does not have that limitation. Even if you had a power supply capable of 1000W going to the micro-USB connector the power consumption would be limited by the USB power delivery standards.

It would not be unusual for a power model to work most of the time with a USB power delivery. There could still be corner cases where the Nano mysteriously powers down for unknown reasons, which could be nothing more than a brief spike in power requirements. Using MAXN with a micro-USB connector does not result in throttling, but attempting to use more than the micro-USB allows results in shutdown or reboot. Other modes which only sporadically exceed micro-USB will also result in shutdown or reboot. In theory, even the barrel connector could lead to shutdown with power spikes, but this connector is capable of passing power from a supply which works at all power consumption spikes (the power supply becomes the limit instead of the USB standards).

If you were to look at the different “/sys” files used in either “/etc/nvpmodel/*” or “jetson_clocks”, then you can easily create a script with custom settings which works analogously to nvpmodel and jetson_clocks. If you were to add models in “/etc/nvpmodel/”, then you could probably have your own “nvpmodel -m 3” or “nvpmodel -m 4” (I have not personally done this, but I see no reason it wouldn’t work…and if you leave alone the original files, then there isn’t any chance of messing up standard modes).