記事検索

検索ワードを入力してください。
Sky Tech Blog
MMDeployを​Jetsonで​ビルドする​ときの​ポイント

MMDeployを​Jetsonで​ビルドする​ときの​ポイント

PyTorchベースのオープンソースプロジェクト「OpenMMLab」のモデルを、MMDeployを用いてJetson Orin Nanoにデプロイする際のビルドエラーの原因と、その解消方法について解説します。

OpenMMLabというPyTorchベースの画像認識モデルをいくつも提供しているオープンソースのプロジェクトがあります。
タスクごとにライブラリが分かれており、物体検出のMMDetection、セグメンテーションのMMSegmentationというようにMMなんとかという名前で提供されています。
生成AIの影響なのか現在(2026年4月)は開発があまり活発ではないようですが、それでも提供されているモデルは今でも実用的なものだと思います。
JetsonなどのエッジAI端末に組み込むAIの検証に、OpenMMLabのライブラリを使用してみるのもよいかと思います。
ただ開発が止まってしまったせいか、新しめのJetsonにAIをデプロイするとき、そう簡単にはいかないこともあります。
そこで今回はJetson Orin Nanoにデプロイするときにつまずいたポイントについて紹介しようと思います。

OpenMMLabのライブラリで学習させたモデルをJetsonにデプロイする際はMMDeployを用います。
行うこととしては、PyTorchのモデルをTensorRTのモデルに変換することです。
プロジェクトにはJetsonでのMMDeployのビルド方法が説明されています。
しかし私の検証時ではこの手順に沿ってモデルをPyTorchからTensorRTへ変換し、TensorRTモデルで試しに推論しようとしたとき、

#assertion/app/mmdeploy/csrc/mmdeploy/backend_ops/tensorrt/batched_nms/trt_batched_nms.cpp,103
Aborted(core dumped)

となってしまいました。

この原因を追っていくと、MMDeployがJetson Orin Nano用にビルドされていなかったことが分かりました。
より詳しく言うと、ビルド時に作成されるsoファイルをcuobjdumpコマンドにて確認すると、

Fatbin elf code:
================
arch = sm_52
code version = [1,7]
host = linux
compile_size = 64bit

Fatbin elf code:
================
arch = sm_53
code version = [1,7]
host = linux
compile_size = 64bit

  ・
  ・
  ・

Fatbin elf code:
================
arch = sm_86
code version = [1,7]
host = linux
compile_size = 64bit

となっていました。
このarchに注目してみると、sm_52からsm_86までしかなく、Jetson Orin Nano用のsm_87がありませんでした。
このsm_XXですが、CUDA GPU Compute Capabilityという値に対応します。
開発が止まったせいか、ちょうどJetson Orin Nano世代以降から対応していませんでした。

このエラーはMMDeployのビルド時のcmakeの引数に

-DCMAKE_CUDA_ARCHITECTURES=87

を追加することで解消されます。
こちらのTensorRTのカスタムオペレーターをビルドするところになります。
最初のアサーションからここまでたどりつくのに時間がかかりましたので、こちらの情報が参考になればと思います。

今回はOpenMMLabのMMDeployをJetson Orin Nanoでビルドする際のつまずきポイントについて紹介しました。
今回のようなエッジAI端末に従来のAIを組み込むことは今後も少しは残っていくのではと思います。
また今はフィジカルAIの基盤としてJetsonの開発が進んでおり、今後は小規模言語モデルをエッジ端末に組み込むような業務が増えてくるかもしれません。
そこに向けてそういった組み込みの技術も磨いておかねばと思いました。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム