LoginSignup
6

More than 3 years have passed since last update.

jetson_clocks

Last updated at Posted at 2019-05-23

はじめに

Jetson Nanoの各種記事を読むとコンパイル前にjetson_clocksコマンドでパフォーマンスを最大化してから行っている。そもそもこのコマンドが何をしているのか気になったので調べた。

コマンドラインのヘルプ

ヘルプを見る限り、CPUとGPUとEMC(External Memory Controller)のクロックを変更できるようだ。

yamamo-to@jetson-nano:~$ /usr/bin/jetson_clocks -h
Maximize jetson performance by setting static max frequency to CPU, GPU and EMC clocks.
Usage:
jetson_clocks.sh [options]
  options,
  --show             display current settings
  --store [file]     store current settings to a file (default: ${HOME}/l4t_dfs.conf)
  --restore [file]   restore saved settings from a file (default: ${HOME}/l4t_dfs.conf)
  run jetson_clocks.sh without any option to set static max frequency to CPU, GPU and EMC clocks.

現在の設定は--showオプションで表示とのことなので、sudoをつけた上で実施した。

yamamo-to@jetson-nano:~$ sudo /usr/bin/jetson_clocks --show
[sudo] password for yamamo-to: 
SOC family:tegra210  Machine:jetson-nano
Online CPUs: 0-3
CPU Cluster Switching: Disabled
cpu0: Online=1 Governor=schedutil MinFreq=1428000 MaxFreq=1428000 CurrentFreq=1428000 IdleStates: WFI=0 c7=0 
cpu1: Online=1 Governor=schedutil MinFreq=1428000 MaxFreq=1428000 CurrentFreq=1428000 IdleStates: WFI=0 c7=0 
cpu2: Online=1 Governor=schedutil MinFreq=1428000 MaxFreq=1428000 CurrentFreq=1428000 IdleStates: WFI=0 c7=0 
cpu3: Online=1 Governor=schedutil MinFreq=1428000 MaxFreq=1428000 CurrentFreq=1428000 IdleStates: WFI=0 c7=0 
GPU MinFreq=76800000 MaxFreq=921600000 CurrentFreq=76800000
EMC MinFreq=204000000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=0
Fan: speed=80
NV Power Mode: MAXN

スクリプトの内容

このファイルは単なるシェルスクリプトなので中身を確認できる。およそ402行目から408行目にヒントが書かれている。

do_hotplug
do_clusterswitch
do_cpu
do_gpu
do_emc
do_fan
do_nvpmodel

最初にSOCファミリー(Jetson nanoはtegra210)を環境変数にセットした後、上記項目を一つずつ実行する。

  • hotplugはCPUホットプラグのことで使えるCPUを全部使うようにする
  • clusterswitchはディレクトリ/sys/kernel/cluster/の有無を確認した上でアクティブなクラスタが利用可能ならばEnableにする
  • cpuは動的に変わる周波数の最小値を最大周波数(1.36GHz)に変更する
  • gpuは最初にrail_gate_enableに0を書き込みクロックゲーティングを無効にし1、CPU同様最小駆動周波数を最大値まで引き上げる
  • EMCクロックの最小駆動周波数を最大値まで引き上げる
  • FANスピードを最大(255)にする
  • nvpmodelは何もしない2

まとめ

jetson_clocksコマンドはCPUやクラスタなど使えるものはすべて使える状態にした上で、各種動作周波数を最大まで上げるコマンドのようだ。


  1. GPUの動作を勉強していないがスリープ状態にさせないということか? 

  2. --showオプションが指定された場合のみ動作 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6