<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>電力管理 on Physical AI Hub</title>
    <link>https://physicalaihub.net/tags/%E9%9B%BB%E5%8A%9B%E7%AE%A1%E7%90%86/</link>
    <description>Recent content in 電力管理 on Physical AI Hub</description>
    <generator>Hugo</generator>
    <language>ja-jp</language>
    <lastBuildDate>Sun, 27 Sep 2026 14:06:14 +0900</lastBuildDate>
    <atom:link href="https://physicalaihub.net/tags/%E9%9B%BB%E5%8A%9B%E7%AE%A1%E7%90%86/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ロボットAIの電力・熱設計：長時間運用で推論性能を安定させる監視方法</title>
      <link>https://physicalaihub.net/posts/robot-ai-power-thermal-performance-monitoring/</link>
      <pubDate>Sun, 27 Sep 2026 14:06:14 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-ai-power-thermal-performance-monitoring/</guid>
      <description>&lt;p&gt;短時間のベンチマークで良好に見えるロボットAIが、長時間運用でも同じ応答性を保てるとは限りません。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;Jetsonなどのエッジ計算機を搭載したロボットでは、平均FPSだけで長時間運用の安定性を判断してはいけません。温度、電力、CPU・GPU・メモリ帯域の利用率と周波数、アプリケーション遅延を同じ時系列で記録し、p95・p99遅延、最大遅延、期限超過率、キュー長を重視します。&lt;/p&gt;&#xA;&lt;p&gt;温度上昇や電力制約と実効クロック低下が、p99遅延の増加と同時に起きていれば、熱または電力に起因する性能低下を疑います。温度やクロックが安定しているのにキューだけが伸びる場合は、CPU競合、メモリ帯域、I/O、前処理・後処理などを追加で調べます。状態が悪化したときは、推論レート、処理対象フレーム、入力解像度、モデル品質を段階的に下げる閉ループ制御が有効です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ長時間の監視が必要か&#34;&gt;なぜ長時間の監視が必要か&lt;/h2&gt;&#xA;&lt;p&gt;短時間のベンチマークは、起動直後の温度や一時的な冷却条件を反映します。一方、実際のロボットでは筐体や周囲の温度、電力モード、センサー入力、制御処理などが時間とともに変化します。Jetsonの熱管理機構は温度センサー、thermal zone、冷却デバイス、トリップポイントを使い、条件に応じて周波数制御やスロットリングを行うことがあります。&lt;/p&gt;&#xA;&lt;p&gt;そのため、瞬間的な推論時間やFPSだけでは制御周期を守れるか分かりません。安全制約や周期処理を持つシステムでは、平均値よりも遅延分布の上側を見ます。p99遅延、最大遅延、期限超過率、連続した欠落フレーム数の許容値は、対象ロボットの制御仕様と安全要求から決めます。製品、冷却方式、筐体条件が異なるため、温度や電力の一律な閾値は設定できません。&lt;/p&gt;&#xA;&lt;h2 id=&#34;監視するメトリクス&#34;&gt;監視するメトリクス&lt;/h2&gt;&#xA;&lt;p&gt;Jetsonのシステム状態は、tegrastatsで一定間隔に取得できます。RAM、SWAP、CPU・GPU・EMCなどの利用率と周波数、温度、電力情報が対象です。電力監視ではVDD_INなどの入力・レール単位の値を利用できますが、利用可能なセンサー名や値の意味は、モジュール、キャリアボード、ソフトウェア設定によって異なります。VDD_INがモジュール入力だけを示すのか、キャリアボードや周辺機器を含むのかは、対象機の回路構成とセンサー実装を確認してください。&lt;/p&gt;&#xA;&lt;p&gt;温度の調査では、tegrastatsの温度値に加えてthermal sysfsを確認します。Linuxのthermal frameworkは、thermal zoneの温度、冷却デバイス、トリップポイントをsysfs経由で公開します。これにより、単に温度が高いかだけでなく、温度管理機構の状態を確認できます。&lt;/p&gt;&#xA;&lt;p&gt;推論レイテンシはtegrastatsだけでは測れません。アプリケーション側で、入力受付、キュー待ち、前処理、推論、後処理、出力にタイムスタンプを付け、p50・p95・p99、スループット、期限超過率、キュー長を記録します。NVTXの範囲を付ければ、Nsight SystemsでCPU・CUDA・GPUのタイムラインと処理区間を対応付けられます。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;温度、電力、実効クロック、キュー長、p99遅延などを同じ時系列に置くと、熱・電力制約とソフトウェア要因を切り分けやすくなります。VDD_INなどの電力値は、対象モジュールや回路構成に応じて測定範囲を確認します。&#34;&gt;flowchart TB&#xA;  S[&#34;同じ時刻軸で記録&#34;]&#xA;  S --&gt; T[&#34;温度センサー・thermal zone&#34;]&#xA;  S --&gt; P[&#34;利用可能な電力センサー\n例: VDD_IN&#34;]&#xA;  S --&gt; C[&#34;CPU・GPU・メモリ帯域の利用率と実効クロック&#34;]&#xA;  S --&gt; M[&#34;RAM・SWAP&#34;]&#xA;  S --&gt; A[&#34;入力受付から出力までのアプリケーション区間&#34;]&#xA;  A --&gt; Q[&#34;キュー待ち・前処理・推論・後処理・出力&#34;]&#xA;  Q --&gt; L[&#34;p95・p99・最大遅延\n期限超過率・キュー長・欠落フレーム&#34;]&#xA;  T --&gt; R[&#34;時間相関を確認&#34;]&#xA;  P --&gt; R&#xA;  C --&gt; R&#xA;  L --&gt; R&#xA;  R --&gt; H{&#34;温度上昇・クロック低下・遅延増加が重なるか&#34;}&#xA;  H --&gt;|&#34;はい&#34;| X[&#34;熱または電力制約の候補として調査&#34;]&#xA;  H --&gt;|&#34;いいえ。キューだけ増加&#34;| Y[&#34;CPU競合・メモリ帯域・I/O・前後処理を追加調査&#34;]&lt;/pre&gt;&lt;figcaption&gt;温度、電力、実効クロック、キュー長、p99遅延などを同じ時系列に置くと、熱・電力制約とソフトウェア要因を切り分けやすくなります。VDD_INなどの電力値は、対象モジュールや回路構成に応じて測定範囲を確認します。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;指標と取得手段の比較&#34;&gt;指標と取得手段の比較&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;指標・手段&lt;/th&gt;&#xA;          &lt;th&gt;主な対象&lt;/th&gt;&#xA;          &lt;th&gt;用途&lt;/th&gt;&#xA;          &lt;th&gt;注意点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;tegrastats&lt;/td&gt;&#xA;          &lt;td&gt;温度、利用率、周波数、RAM・SWAP、電力&lt;/td&gt;&#xA;          &lt;td&gt;長時間の状態監視&lt;/td&gt;&#xA;          &lt;td&gt;製品やボードで項目が異なる&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;thermal sysfs&lt;/td&gt;&#xA;          &lt;td&gt;thermal zone、冷却デバイス、トリップポイント&lt;/td&gt;&#xA;          &lt;td&gt;熱制御とスロットリングの調査&lt;/td&gt;&#xA;          &lt;td&gt;対象機でセンサー構成を確認する&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;アプリ計測&lt;/td&gt;&#xA;          &lt;td&gt;キュー、前処理、推論、後処理、出力&lt;/td&gt;&#xA;          &lt;td&gt;エンドツーエンド性能の評価&lt;/td&gt;&#xA;          &lt;td&gt;推論単体の値とは一致しない&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Nsight Systems&lt;/td&gt;&#xA;          &lt;td&gt;CPU・CUDA・GPUのタイムライン&lt;/td&gt;&#xA;          &lt;td&gt;競合や遅延区間の原因分析&lt;/td&gt;&#xA;          &lt;td&gt;常時監視より詳細調査向け&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;p95・p99遅延&lt;/td&gt;&#xA;          &lt;td&gt;遅延分布の上側&lt;/td&gt;&#xA;          &lt;td&gt;制御周期の評価&lt;/td&gt;&#xA;          &lt;td&gt;平均値だけでは見えない遅延を捉える&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;電力モードとクロック設定&#34;&gt;電力モードとクロック設定&lt;/h2&gt;&#xA;&lt;p&gt;nvpmodelはJetsonの電力モードを選択し、jetson_clocksはCPU、GPU、EMCなどのクロックを制御します。性能評価時と実運用時の設定を明示し、異なる条件の結果を混同しないことが必要です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Jetsonの推論性能を決める量子化・メモリ・電力の最適化手順</title>
      <link>https://physicalaihub.net/posts/jetson-on-device-inference-optimization/</link>
      <pubDate>Tue, 05 May 2026 00:55:40 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/jetson-on-device-inference-optimization/</guid>
      <description>&lt;p&gt;量子化や高クロック化は、設定を変えるだけで結果が決まるわけではありません。実機で何を測るかが、最初の分岐になります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;Jetsonの推論最適化は、一般的な速度倍率を当てはめず、実機でモデル単体とエンドツーエンドの両方を計測して決めます。まず入力形状を固定し、FP16・バッチ1を基準にします。その後、INT8の精度とレイテンシ、バッチサイズ、メモリ転送と同期、CUDA Graph、電力モードを一項目ずつ比較します。&lt;/p&gt;&#xA;&lt;p&gt;INT8はメモリ使用量や推論時間を削減できる可能性がありますが、常にFP16より高速になるわけではありません。ロボット制御のように応答時間を優先するなら小さいバッチ、高スループット処理なら大きいバッチを候補にします。最終判断では、レイテンシ、スループット、精度、ピークメモリ、消費電力、温度、連続稼働時の安定性を同時に確認します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ実機計測が必要か&#34;&gt;なぜ実機計測が必要か&lt;/h2&gt;&#xA;&lt;p&gt;TensorRTの性能は、精度モードだけでなく、レイヤー実装、workspace、選択されたtactic、入出力形状、データ変換の組み合わせで決まります。対象Jetsonの世代、JetPack、TensorRT、CUDAの組み合わせによって、INT8演算子の対応やTensor Coreの利用可否も異なります。したがって、モデルの種類だけから最適設定を決めることはできません。&lt;/p&gt;&#xA;&lt;p&gt;JetsonではCPUとGPUが物理メモリを共有します。離散GPUのようなPCIe転送だけでなく、共有DRAMの帯域競合、キャッシュ、バッファの再配置、同期も性能に影響します。モデル単体のベンチマークが良くても、カメラ取得、前処理、後処理を含めると別の場所がボトルネックになる場合があります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;用語と仕組み&#34;&gt;用語と仕組み&lt;/h2&gt;&#xA;&lt;p&gt;FP32、FP16、INT8は、計算やテンソルを表す精度の選択肢です。低精度化によって、条件によっては演算量やテンソルのメモリ使用量を減らせます。INT8では、キャリブレーションでスケールを推定する方式と、モデルにQ/DQノードを含めて量子化を明示する方式があります。いずれも量子化後のモデル精度を評価しなければなりません。&lt;/p&gt;&#xA;&lt;p&gt;バッチサイズは一度に処理する入力数です。大きくするとGPU利用効率やスループットが向上する可能性がある一方、1リクエストあたりの待ち時間、キューイング遅延、メモリ使用量が増えます。リアルタイム制御ではバッチ1または小さいバッチ、まとめ処理では大きいバッチを比較します。&lt;/p&gt;&#xA;&lt;p&gt;入力形状が一定なら固定形状のエンジンを優先します。可変形状が必要な場合は、TensorRTのoptimization profileに最小・最適・最大形状を設定し、実際に使う形状ごとに測定します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;メモリ転送と実行制御&#34;&gt;メモリ転送と実行制御&lt;/h2&gt;&#xA;&lt;p&gt;基本的な流れは、入力取得、前処理、TensorRT推論、後処理、出力受け渡しです。前処理から後処理までのテンソルをGPU側に保持し、バッファを再利用できれば、毎フレームのCPU・GPU間コピーや不要な形式変換を減らせます。ただし、Jetsonではゼロコピーや共有バッファが常に最速とは限りません。アクセスパターンと同期コストを実測します。&lt;/p&gt;&#xA;&lt;p&gt;ホストとデバイス間の移動が必要なら、ページロックされたホストメモリ、非同期コピー、CUDA streamを候補にします。コピーと前処理、またはコピーと推論を重ね合わせられるかを確認します。Nsight Systemsでは、CPU処理、CUDA API、メモリ転送、カーネル、同期を同じタイムラインで確認できます。&lt;/p&gt;&#xA;&lt;p&gt;入力形状、バッファアドレス、実行経路が安定した反復推論では、TensorRTのCUDA Graphも候補です。実行シーケンスを再利用して、カーネル起動や実行制御のオーバーヘッドを削減できる可能性があります。動的形状や実行時に変化するアドレスがある場合は、適用条件を確認します。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;実機で条件を固定し、モデル単体とエンドツーエンドを測定したうえで、量子化、バッチ、メモリ転送、CUDA Graph、電力設定を一項目ずつ評価する流れ。&#34;&gt;flowchart LR&#xA;  A[&#34;条件を固定\nJetson型番・JetPack・TensorRT・CUDA\n入力形状・評価データ・電力設定&#34;] --&gt; B[&#34;FP16・バッチ1を基準測定&#34;]&#xA;  B --&gt; C[&#34;モデル単体を測定&#34;]&#xA;  B --&gt; D[&#34;エンドツーエンドを測定&#34;]&#xA;  C --&gt; E[&#34;INT8を構築・精度検証&#34;]&#xA;  D --&gt; E&#xA;  E --&gt; F[&#34;バッチサイズを比較\nレイテンシ・スループット・キューイング遅延・ピークメモリ&#34;]&#xA;  F --&gt; G[&#34;転送と同期をプロファイリング\nCPU・CUDA API・コピー・カーネル・同期&#34;]&#xA;  G --&gt; H[&#34;バッファ再利用・非同期化・GPU側保持を評価&#34;]&#xA;  H --&gt; I[&#34;条件が合えばCUDA Graphを評価&#34;]&#xA;  I --&gt; J[&#34;電力モードとクロック設定を比較&#34;]&#xA;  J --&gt; K[&#34;総合判断\nレイテンシ・精度・メモリ・電力・温度・連続稼働時の安定性&#34;]&#xA;  K --&gt; L{&#34;目標要件を満たすか&#34;}&#xA;  L -- &#34;いいえ&#34; --&gt; F&#xA;  L -- &#34;はい&#34; --&gt; M[&#34;設定と測定結果を記録&#34;]&lt;/pre&gt;&lt;figcaption&gt;実機で条件を固定し、モデル単体とエンドツーエンドを測定したうえで、量子化、バッチ、メモリ転送、CUDA Graph、電力設定を一項目ずつ評価する流れ。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;再現性のある評価手順&#34;&gt;再現性のある評価手順&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;条件を固定する&lt;/strong&gt;：Jetson型番、JetPack、TensorRT、CUDA、入力形状、評価データ、電力設定を記録します。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;基準を測る&lt;/strong&gt;：FP16・バッチ1を、trtexecなどでモデル単体として測定し、続いて前処理・推論・後処理を含むエンドツーエンドで測ります。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;INT8を検証する&lt;/strong&gt;：キャリブレーションまたはQ/DQ方式で構築し、精度、レイテンシ、変換処理、対応演算子を確認します。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;バッチを比較する&lt;/strong&gt;：バッチ1、小さいバッチ、大きいバッチを、レイテンシ、スループット、キューイング遅延、ピークメモリで比較します。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;転送と同期を調べる&lt;/strong&gt;：GPU側テンソル保持、非同期化、stream、共有バッファ、必要に応じてCUDA Graphを一つずつ比較します。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;電力と連続稼働を測る&lt;/strong&gt;：nvpmodelの電力モードとjetson_clocksのクロック設定を比較し、温度やサーマルスロットリングも確認します。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;選択肢の比較&#34;&gt;選択肢の比較&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;選択肢&lt;/th&gt;&#xA;          &lt;th&gt;向いている要件&lt;/th&gt;&#xA;          &lt;th&gt;利点&lt;/th&gt;&#xA;          &lt;th&gt;注意点&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;FP16&lt;/td&gt;&#xA;          &lt;td&gt;基準測定、低レイテンシ&lt;/td&gt;&#xA;          &lt;td&gt;比較の出発点にしやすい&lt;/td&gt;&#xA;          &lt;td&gt;INT8よりメモリや計算量が大きい場合がある&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;INT8&lt;/td&gt;&#xA;          &lt;td&gt;メモリ制約、速度・省電力の改善&lt;/td&gt;&#xA;          &lt;td&gt;低精度化の効果を期待できる&lt;/td&gt;&#xA;          &lt;td&gt;精度、演算子対応、再量子化を検証する&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;バッチ1・小バッチ&lt;/td&gt;&#xA;          &lt;td&gt;制御、カメラ入力&lt;/td&gt;&#xA;          &lt;td&gt;待ち時間とキューイングを抑えやすい&lt;/td&gt;&#xA;          &lt;td&gt;スループットが伸びない可能性がある&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;大きいバッチ&lt;/td&gt;&#xA;          &lt;td&gt;まとめ処理、分析&lt;/td&gt;&#xA;          &lt;td&gt;GPU利用効率とスループットに有利な可能性&lt;/td&gt;&#xA;          &lt;td&gt;レイテンシとピークメモリが増える&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;固定形状&lt;/td&gt;&#xA;          &lt;td&gt;入力サイズが一定&lt;/td&gt;&#xA;          &lt;td&gt;条件を限定して測定しやすい&lt;/td&gt;&#xA;          &lt;td&gt;可変入力には向かない&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;動的形状&lt;/td&gt;&#xA;          &lt;td&gt;入力サイズが変化&lt;/td&gt;&#xA;          &lt;td&gt;複数形状を扱える&lt;/td&gt;&#xA;          &lt;td&gt;profileごとの性能測定が必要&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;GPU側保持・非同期化&lt;/td&gt;&#xA;          &lt;td&gt;前処理から後処理までGPUを使う構成&lt;/td&gt;&#xA;          &lt;td&gt;コピーや同期を減らせる可能性&lt;/td&gt;&#xA;          &lt;td&gt;共有バッファの同期を確認する&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;低電力モード&lt;/td&gt;&#xA;          &lt;td&gt;バッテリー、温度、連続稼働重視&lt;/td&gt;&#xA;          &lt;td&gt;電力と熱を抑える候補になる&lt;/td&gt;&#xA;          &lt;td&gt;目標レイテンシを満たすか測る&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;制約と判断基準&#34;&gt;制約と判断基準&lt;/h2&gt;&#xA;&lt;p&gt;「INT8なら必ず高速」「バッチを増やせば必ず高性能」と決めつけてはいけません。対象演算子のINT8対応、Tensor Coreの利用可否、再量子化や入出力変換、TensorRT tacticによって結果は変わります。固定形状と動的形状の差、ゼロコピーの効果、CUDA Graphの改善幅も、モデルと実装によって異なります。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
