Jetson Nano とファン

Jetson Nano 2GB でいろいろ使っていると温度が高いと感じる事があったのでヒートシンクとファンを交換してみました。

Jetson Nano とファン

ざっくりまとめると

ファンはあったほうが良いが絶対ではない。
目的が機械学習やGPUを過酷に利用するためのデバイスなので、あったほうが本来のパフォーマンスを発揮できる場面が広がります。しかし、触れないほどにヒートシンクが熱くなっている場合は、サーマルスロットリング(温度による破損防止機能)状態となるため、ファンの利用をオススメします。
ファンはついていれば何でも良い
ついているか、いないかで大きな差があります。有名ブランドも試しましたが、安価なファンと差はほとんどありません。(耐久性の面では差がありそう)
ヒートシンクは必要
ヒートシンクが無いと明らかにパフォーマンスが落ちます。機械学習などで使われる場合は必須です。
利用もそれなりに簡単
つけたからといってもそのままでは動作しません。しかし、コマンドを2つ打つだけで温度に応じたファン速度で制御ができますので、難しくてできない!という事はありません。

Jetson Nano(2GB)

Jetson Nano はGPU性能を必要とする目的に沿うよう設計されているデバイスですが、現在のコンピューターは発熱を避ける事が出来ないため、Jetsonもフル能力を発揮するためには冷却が必要になります。実際しばらく負荷を掛けた状態にするとヒートシンクが触れない程の温度になります。

絶対に必要なのか

ファンが無くとも元々大きめのヒートシンクがつけられた状態で販売されていますので、ある程度までは問題無く利用することが出来ます。しかし、カメラ等から物体認識などでGPUに長時間負荷を掛け続ける場合は必須と言ってもかまいません。

Jetson Nano は基板上に ファンを回すためのPWM制御可能な4ピンソケットがついています。つまりわざわざ用意している程にファンの必要性は高いプロダクトになります。

MEMO

通常のコンピューター用ファンは 12v ですがJetsonのファン用電源は 5v出力です。

このソケットではPWMによってファンの回転速度を制御することが可能です。

ハードウェア

以下のヒートシンクとファンを利用しました。効果はどちらかというとヒートシンクの交換が高いように感じました。

ヒートシンクはなんとなく熱かったので他のものを試してみたく購入しましたが、なかなかナイスです。しかし残念ながら付属ファンは光るだけで効率が悪い気がします。とはいえ、ファンがついているとついてないでは劇的に差がありますのでファンはつけておいたほうがよいです。

しかし、5v PWM制御可能なファンとなるとかなり限られる・・・

ソフトウェア

非常に便利なソフトウェアがMarc Ueckerさんにより開発、公開されていますので利用します。

GitHub - Pyrestone/jetson-fan-ctl: Automagic fan control for the Nvidia Jetson Nano
Automagic fan control for the Nvidia Jetson Nano. Contribute to Pyrestone/jetson-fan-ctl development by creating an account on GitHub.

まずはターミナルを起動し、このプロジェクトをクローンします。

git clone https://github.com/Pyrestone/jetson-fan-ctl

では次はインストールコマンドを実行します。

cd jetson-fan-ctl
./install.sh

インストールが完了すると以下のようなメッセージが表示されます。

settling to /usr/local/bin/automagic-fan/...
done
adding service to /lib/systemd/system/...
done
creating config at /etc/automagic-fan/
done
starting and enabling service...
Created symlink /etc/systemd/system/multi-user.target.wants/automagic-fan.service → /lib/systemd/system/automagic-fan.service.
done
automagic-fan installed sucessfully!

To configure, edit /etc/automagic-fan/config.json (needs sudo)

温度設定

設定ファイルが/etc/automagic-fan/config.jsonに保存されているので、編集を行います。

スーパユーザーでの編集

この設定ファイルは管理者権限が必要となるため、例えば vim で編集をする際は、以下のコマンドにて編集を行います。


sudo vim /etc/automagic-fan/config.json
{
"FAN_OFF_TEMP":20,
"FAN_MAX_TEMP":50,
"UPDATE_INTERVAL":2,
"MAX_PERF":1
}
デフォルト設定

各項目の設定

FAN_OFF_TEMP 設定された温度以下になった場合ファンが停止します。
FAN_MAX_TEMP 設定された温度以上になった場合、ファンが100%のスピードで回ります。
UPDATE_INTERVAL ファンのスピードを更新する周期を秒単位で設定します。
MAX_PERF 0より大きな値を設定するとシステムを最大限高速で動作するようになります。

MEMO

温度は小数点以下の値(20.125のように)設定することも出来ますが、内部の温度センサーは0.5度単位でしか計測できません。

ファン制御を再起動

設定ファイルを編集した場合、システムを再起動するか以下のコマンドにより設定を適用します。

再起動するまでは、起動時の設定が保持されます。

sudo service automagic-fan restart
記事の内容は間違いが無いように気をつけていますが、私の認識違いや、ミスなどにより間違っている可能性もあります。もし発見された場合はお問い合わせフォームよりご連絡頂けると幸いです。