投稿日

性能を引き出すIoT機器の冷却 ~ Raspberry Pi に汗をかかせるな!

はじめに ~ IoT機器の冷却の重要性

皆さん、お久しぶりです。ソラコムEngineerの五十嵐(ニックネーム:ash)です。
5月だというのに東京でも気温が25度以上になるなど、夏の近づきを感じる今日この頃ですが、今回は来るべき夏に備えてIoT機器の冷却に関する話題をお届けしたいと思います。

Raspberry Pi(通称:ラズパイ)はセンサーやカメラと接続できる小型のコンピューターで、IoTの現場や製品の一部として活用されており、ソラコムのAIカメラ「S+ Camera」でも、一部機種でラズパイを採用しています。
S+ Cameraのお客様フィードバックで「開発時と実運用時、特に屋外利用でパフォーマンスが異なる」というお問い合わせをいただくことがあるのですが、これは動作時の温度が起因であることがほとんどです。カメラ内のCPUが高温になることで処理性能が変化します。特にAIによる画像解析といった高負荷処理が見込まれる場合は、冷却する仕組みが重要となります。これはS+ CameraだけでなくラズパイをはじめとしたIoT機器全般に言えることです。

本ブログでは、5/26開催のオンラインセミナー「AI Camera NOW ~AIカメラの使い方・実践編~」にご登壇いただく株式会社JR東⽇本情報システム(JEIS)の資延様、⽯原様にご協力いただき、同社のS+ Cameraの現場での運⽤経験から得られたS+ Camera やラズパイの冷却に注⽬した情報をお届けします。

測定の概要

最初に簡単に測定方法、測定したケース、そして測定結果についてまとめておきます。

測定方法

  • S+ Camere
    • Raspberry Pi 4 Model B Rev 1.2 4GB Memory
    • Distributor ID: Raspbian
    • Description:    Raspbian GNU/Linux 10 (buster)
    • Release:          10
    • Codename:     buster
  • CPU負荷の生成
    • openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
  • サーマルカメラによる撮影および、CPU&System on Chip(SOC)の温度取得

測定したケース

図1:測定に利用したケース一覧

今回冷却性能測定にはプラスチック筐体のS+ Camera Basic v1.1、防水/防塵のS+ Camera WP v2.1、そしてJEIS様がサイネージ向けに作成された2種類の合計4種類のケースを利用しました。今回はファンなど機械的な冷却については故障の可能性やホコリを吸い込むリスクから検討対象外としています。

結果の要約

図2に4種類のケースを測定して得られた結果を示します。

図2:ケースの違いによるCPU温度の変化
  • 放熱対策を行なったケースは10度以上CPUの温度を下げることができる
  • CPUの温度は80度を超えるとCPUクロックのスロットリング(低下)が発生
  • CPUの直下を冷やす方が冷却性能は向上する

測定方法など、詳細については今回は3人の対談形式で紹介いたします。

JR東日本情報システム様の紹介

ソラコム五十嵐(以下、Ash):資延様、石原様、今日はどうぞよろしくお願いします。まずは、貴社について紹介をお願いできますでしょうか。

JR東日本情報システム 資延氏(以下、資延氏):JR東日本情報システム、略称JEISは、JR東日本グループのICT企業です。
いわゆるユーザー系SIerで、JR東日本とそのグループ企業の基幹システムをはじめとしたさまざまな業務システムの開発、運用をやっています。具体的にはモバイルSuicaのシステム、えきねっとのシステム。新幹線のシステムなど多岐に渡ります。

Ash:ありがとうございます。次に、ソラコムのサービスをどの様に自社のサービスにご利用いただいているかを紹介いただけますでしょうか。

JR東日本情報システム 石原氏(以下、石原氏):私たちは、ユーザー系SIerにおける研究開発を行っています。ニーズ主導&シーズ主導、やりたいことは沢山ありますが、JEISは「ユーザー系SIer」であって、自分たちで何かフィールド(工場や店舗)を持っているわけではないので、PoCを実施しようにもまず場所をさがすところからスタートします。まずは、自社で試せるものを作ってPoCをしてみようということで、最初にエッジ側で完結するピープルカウンターを作成することにしました。撮影した画像をクラウドに送信して処理をするのは(セキュリティ的には問題ないとしても)心理的に敬遠される可能性があったので、エッジ側で処理を完結させるためにRaspberry Piを使ってプロトタイプを作ってみました。実際に社内で検証した結果、使えそうという感触が得られたので、PoCができる場所を探したのが始まりです。

しかし、プロトタイプをいざ現地に設置するとなると、新しい課題に直面しました。

  • デバイス:プロトタイプでは、基盤が剥き出し。カメラのケーブルもニョロニョロ。
  • ネットワーク:データをクラウドにどうやって送る? 無線LAN ?
  • データ:セキュアなデータ送信&データ保存

私はアプリケーションが専門なので、実際にPoCを始めるにあたり、IoTは総合格闘技ということを思い知らされました。

図3:最初に作成したピープルカウンターのプロトタイプ

次の展開に向けてどうすべきか思案にくれていたところ、資延がRaspberry Piを利用したソラコムのS+ Camera トライアルの記事を見つけてきて、これなら上記の課題を解決できると、S+ Cameraの利用を開始しました。その後、お客様へのデモも上手くいき、館内混雑情報サービスとしてサービス化することができました。現在はこの他にもS+ Cameraを用いて様々なサービスの展開および検証を行っております。

なぜ新たなケースが必要か

Ash:ありがとうございます。JEIS様には初期の頃からS+ Cameraをご活用いただいて、様々なフィードバックをいただきありがとうございます。特に実際の現場で利用していただき、フィードバックいただいた、電源ケーブルの長さや、ケーブルの取り回しへのフィードバックは、S+ Camera Designにも取り込ませていただきました。現在のお取り組みについてもご紹介いただけますか。

資延氏:S+ Cameraの遠隔からソフトウェアの入れ替えができるという機能を利用して、サイネージを提供できないか検討しており、ソラコムからS+ Cameraの基盤とHDMIの操作ができるインタフェースを提供いただいて、PoC(概念実証)を行なっております。PoCを通して発見した課題は、サイネージを行なっていると、CPUの温度が高くなってCPUクロックのスロットリングが発生して性能が劣化することです。そのため、軽量かつCPUを効率的に冷やすためのケースを作成しております。

Ash:サイネージも屋外を含めて様々な場所で利用されるので、「IoTは会議室で起こっているんじゃない。現場で起こっているんだ。」ということを痛感させられることが多いですね。

資延氏:PoCが終わって端末を引き上げに行ったら、電源が動物に噛まれて切れそうになっていたり、ケース内に蜘蛛の巣がびっしりだったりすることもありました。

Raspberry Piに汗をかかせてはダメ?

Ash:ここからが今日の本題「Raspberry Piに汗をかかせるな」になります。よく投資の世界では「お金に汗をかかせよう」とか、サッカーだと「ボールに汗をかかせよう」と言われていますが、IoTにおいては「Raspberry Piに汗をかかせよう」は間違っているのでしょうか。

石原氏:Raspberry Piを最大限活用することは良いのですが、汗をかくまで頑張らせると大きな問題が発生します。こちらの記事にある様にRaspberry PiのCPUを80度以上でしばらく稼働させていると、通常1.5GHzで動作するCPUクロックにスロットリングが発生して、クロックが半分以下の600MHzに低下してしまいます。オフィスでは問題がなかったのに、フィールドで利用すると性能が出ない問題のほとんどの場合がこのCPUクロックのスロットリングでした。Raspberry Piを冷やして、CPUクロックをいかに低下させないかが、安定した性能を得るためにとても重要なことになります。

Ash:なるほど。そこで「Raspberry Piに汗をかかせるな」ということになるんですね。「カメラを止めるな!」を観て予習してきたのですが、深読みしすぎました。それではRaspberry Piに汗をかかせないために重要なことは何になりますか。

冷却効果の測定方法

資延氏:やはりCPUをどこまで効率的に冷やせるか、です。Raspberry PiのCPU ファンを利用しての冷却も考えましたが、故障の可能性や、ホコリをケース内に吸い込んでしまうことを考えて、ファンレスで冷却することを考えました。
今日は試作した2つのケースを持ってきたので、御社のS+ Camera共に、冷却性能を計測比較してみましょう。

今回の計測に利用した環境は次の通りです。

  • Raspberry Pi 4 Model B Rev 1.2 4GB Memory
  • Distributor ID: Raspbian
    • Description:    Raspbian GNU/Linux 10 (buster)
    • Release:          10
    • Codename:     buster
  • サーマルカメラ
  • CPU負荷
    • openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
  • 冷却性能測定用スクリプト (冷却性能測定用のスクリプト)
#!/bin/bash
FILE="./cpugpu-temparature-$(hostname)-$(date +%Y%m%d-%H-%M).csv"
INTERVAL=30
# -------------------------------------------------------
echo "Date, GPU, CPU, Clock" | tee "$FILE"
while true
do
    raw=$(cat /sys/class/thermal/thermal_zone0/temp)
    cpu=$((${raw} / 1000))
    soc=$(vcgencmd measure_temp | cut -d = -f2 | cut -d "'" -f1)
    clock=$(vcgencmd measure_clock arm | cut -d = -f2)
    echo "$(date +%s), $soc, $cpu, $clock" | tee -a "$FILE"
    sleep $INTERVAL
done

冷却性能測定用のスクリプトを簡単に説明するとcpuでCPUの温度、soc でSOCの温度を計測しています。合わせて clock でCPU クロックを計測して、INTERVAL(30秒)毎に、計測結果をローカルファイルへ追記します。

今回は簡易な測定ということで、次の様に計測します。

  • それぞれのケースにS+ Cameraの基盤を設置して、十分な時間、電源を入れずに冷却してから測定を開始
  • 温度が上昇しなくなったところで計測を終了
  • 計測後、サーマルカメラで筐体を撮影

S+ Camera Basic v1.1の結果

最初に特に冷却処理を行なっていないS+ Camera Basic v1.1について計測します。

図4:S+ Camera Basic v1.1

図5が計測結果になります。負荷をかけるとCPUの温度が上昇し、温度が80度を超えた240秒以降は、断続的にCPUクロックが1GHzに落ちるスロットリングが発生しました。

図5:S+ Camera Basic v1.1 の冷却性能
図6:S+ Camera Basic v1.1のサーマルカメラの映像

資延氏:図6のサーマルカメラの撮影結果の背面からの写真がわかりやすいと思いますが、映像の色が明るくなっている場所は、熱が高くなっていることを示しており、S+ Camera Basic v1.1では熱が一部に集中していることがわかります。プラスチックの筐体なので難しいかもしれないですが、冷却効果を高めるためにはRaspberry Piで最も熱くなるCPU付近と筐体の設置面積を増やして、筐体全体に熱が逃げる工夫が必要と思われます。

S+ Camera WP v2.1の結果

Ash:アドバイスありがとうございます。次に外気温の影響を受けやすい外部で利用することを想定したS+ Camera WP v2.1についての同様に計測していきます。
S+ Camera Basic v1.1の結果から高温化することが予想できたため、 S+ Camera WP v2.1では、図7の様にRaspberry Piの基盤の背面の電子部品があまり載ってないないところに、サーマルパッドを介してアルミの放熱版を設置しています。負荷をかけた結果が図8になります。

図7:S+ Camera WP v2.1
図8:S+ Camera WP v2.1 の冷却性能

今回は最大でCPUの温度が70.1度までしか上がらなかったので、CPUクロックのスロットリングは発生しませんでした。

図9:S+ Camera WPのサーマルカメラの映像

資延氏:図9のマウントの底面のサーマルカメラの画像がわかりやすのですが、S+ Camera Basic v1.1に比べるとS+ Camera WP v2.1は底面の温度が均一になっている面積が大きくなっています。マウントに熱が逃げることによって、内部温度がS+ Camera Basic v1.1が65.2度だったのに対して、S+ Camera WP v2.1は50.1度に抑えられています。放熱版をRaspberry PiのCPUの真下に動かすと、もう少し冷却効果を高めることができるかもしれません。

Ash:放熱版をCPUの真下に置く案もあったのですが、外部に設置する筐体なので、外気温の変化による筐体自体の伸縮によって、電子部品が圧迫され剥離するリスクがあったので、今回は電子部品の少ない場所にサーマルパットをあてています。

JEISケース1の結果

資延氏:次に計測するのが図10のケースです。

図10:JEISケース1

このケースはRaspberry Piのケース作成で定評のあるエム・コーポレーション様に弊社から要望を伝え、ケースを作成していただきました。111gという軽さが特徴です。このケースにフィルムアンテナを取り付ける加工と、基盤のCPUの下にサーマルパットを置いて、CPUの熱をケースに逃す様にしています。負荷をかけた結果が図11になります。

図11:JEISケース1の冷却性能

今回もCPUの温度は最大でも71.6度となり、偶然にもS+ Camera WP v2.1 と同じ温度となり、CPUクロックのスロットリングは発生しませんでした。

図12:JEISケース1のサーマルカメラの映像

図12のサーマルカメラの映像をみると、ケース全体に熱が広がっていることがわかると思います。防水/防塵筐体のS+ Camera WP v2.1と比べるのは公平ではないですが、これだけ小さい筐体にもかかわらず、内部の温度も54.3度となり、効率的に冷却できていることがわかります。

JEISケース2

次に図13のケースを計測してみます。こちらケースはIoTエンジニアなら必ずお世話になるTAKACHI様のケースをベースにサイネージ向けに、ケーブルの抜け留め防止と、アルミケースに入れることによるアンテナ利得が下がらない様にするために、フィルムアンテナをはめ込むことができる側面の壁を3Dプリンタで自作したものになります。コストや量産化についての問題は置いておくとして、冷却効果は非常に期待できる筐体となります。

図13:JEISケース2

Ash:見た目も相当強そうな筐体ですね。また電源HDMIケーブルの抜け落ち防止などサイネージ利用を考慮した機能的な筐体になっていますね。これは結果も期待できそうです。早速負荷をかけてみましょう。

こちらのケースの結果が図14になります。

図14:JEISケース2の冷却性能
図15:JEISケース2のサーマルカメラの映像

期待通りCPUの最大温度は65.8度となり、最も良い結果となりました。

資延氏:図15のサーマルカメラの底面の画像を見ていただくと、これまでのケースの中で最も温度が均一になっていることがわかると思います。ケースの厚みもあるので、熱がしっかりと底面全体に伝わっているです。ケースの上面にも熱が伝わり、ケース全体から放熱することで、内部の温度も48.8度に抑えることができています。

まとめ

資延氏:アルミなどの筐体の場合には放熱版をつけて筐体に熱を逃すことで、10度以上の冷却効果があることがわかりました。価格や、設置、量産に対する要求は様々とは思いますが、今回の計測ではCPUの温度が80度を超えるとCPUクロックのスロットリングが発生しているので、まずは80度に達することを抑える、もしくは到達するまでの時間を伸ばすことのできるケースを選定することとが一つの目安となりそうです。今回はケースにサーマルパッドを置いただけの設計になっていますが、ケースによってはヒートシンクといった一体方になっているものもあるので、これらを利用するとさらに冷却効果を発揮できると思います。

石原氏:5月26日の〜AI Camera Now~AIカメラの使い方・実践編〜では、このほかS+ Cameraを実際に商用利用して現場で得られたさまざまなTipsを共有させていただきます。

Ash:AI Camera Nowでも興味深いお話をしていただけそうです。みなさまぜひご参加ください。資延さん、石原さん本日はどうもありがとうございました。

最後に告知をさせてください。7月6日〜7月7日にIoTカンファレンス「SORACOM Discovery2022」を開催いたします。今回登場したS+ Cameraだけではなく、IoTの今を知ることのできる2日間のオンラインカンファレンスです。ご参加のほどよろしくお願いいたします。

― ソラコム五十嵐 (ash)