![見出し画像](https://assets.st-note.com/production/uploads/images/12217508/rectangle_large_type_2_8b0a3d6a85c98d96b96f5f656d75d56a.png?width=1200)
jtop コマンドがエラーになる問題を修正
Jetson Nano には GPU の使用状況を確認する tegrastats という標準コマンドがありますが、CLI ベースで直感的に把握できないので、CUI ベースで視覚的に確認できる jetson_stats ( jtop コマンド) が便利です。
$ tegrastats
RAM 1446/3957MB (lfb 458x4MB) IRAM 0/252kB(lfb 252kB) CPU [17%@1428,11%@1428,21%@1428,12%@1428] EMC_FREQ 2%@1600 GR3D_FREQ 0%@76 APE 25 PLL@20.5C CPU@24.5C PMIC@100C GPU@21C AO@29.5C thermal@22.25C POM_5V_IN 2830/1483 POM_5V_GPU 41/31 POM_5V_CPU 943/206
RAM 1462/3957MB (lfb 457x4MB) IRAM 0/252kB(lfb 252kB) CPU [43%@1036,44%@1036,36%@1036,34%@1036] EMC_FREQ 6%@1600 GR3D_FREQ 51%@307 NVDEC 192 APE 25 PLL@20.5C CPU@24.5C PMIC@100C GPU@22C AO@29.5C thermal@22.75C POM_5V_IN 3353/1616 POM_5V_GPU 450/61 POM_5V_CPU 613/235
JetPack4.2 のデモを動かして GPU がどのくらい使用されるかを確認していたところ、VisionWorks の feature tracker デモを動かすとエラーが出力された。
エラーの内容は Python で一般的なリスト (配列) に対して存在しないインデックを指定した際に発生する例外。
volt[‘average’].append(float(value[1])) IndexError: list index out of range
調査していくと feature tracker デモを動かす前後で、tegrastats コマンドの出力内容が変化することに気がつき、具体的には NVDEC というデータが出力される。NVDEC のパラメータ仕様を調べるとビデオハードウェアデコード / エンコードエンジンが使用される時だけ出力されると記載されているので、これが原因だと確信した。
原因が分かればコードを修正して対応完了です。
$ diff jtop.py jtop.py_org
495,501d494
< elif 'NVDEC' in data:
< # NVDEC Y
< # NVDEC is the video hardware decoding engine.
< # Shown only when hardware decoder / encoder engine is used.
< # NDVEC frequency in MHz
< jetsonstats['NVDEC'] = float(other_values[idx+1])
< idx += 1
本家にも Pull Request を送っておきましたので、そのうち Merge されるでしょう。
(追記)
2019/6/10 2:25 (@JST) に Merge されました。(仕事、早っ!
この記事が気に入ったらサポートをしてみませんか?