Help us understand the problem. What is going on with this article?

jetson_clocks

More than 1 year has passed since last update.

はじめに

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オプションが指定された場合のみ動作 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした