Upgrade to Pro — share decks privately, control downloads, hide ads and more …

車載エッジデバイスにおけるAI実装

 車載エッジデバイスにおけるAI実装

TURINGではEdgeplanT1(JetsonTX2)を用いた自動運転システムの実装を行いました。その過程で推論周りのボトルネックを解消した話をしました。
https://www.youtube.com/watch?v=nMcfN-JH048

Yuto Nakamura

December 14, 2022
Tweet

More Decks by Yuto Nakamura

Other Decks in Programming

Transcript

  1. 車載エッジデバイス
    におけるAI実装
    Section 00
    中村 優斗
    TURING 株式会社インターン
    東京大学工学部電子情報工学科 B3

    View Slide

  2. 発表者
    - 中村優斗 (@yutyan_ut)
    - 東大電子情報工学科 B3
    - TURINGではCAN(車載ネットワーク)の解析・カメラ周りのプログラムなど
    - インターン中です
    - 低レイヤが好き
    Section 00 - 00
    COMPANY PROFILE

    View Slide

  3. TURINGについて
    - 自動運転EVの完成車を製造・販売 することを目的として創業
    - 創業1年で公道実験
    - 自動運転車で日本初の北海道一周
    - 2022年度内に改造車を販売
    - スローガン「We Overtake Tesla」
    Section 00 - 00
    COMPANY PROFILE

    View Slide

  4. 製品に搭載するシステムの
    AIへの最適化について話します
    Section 00 - 00
    作ったモデル、本番環境で使える?

    View Slide

  5. Section 00 - 01
    現在の自動運転の概要
    JPEGが大量に送られてくる

    View Slide

  6. Section 00 - 01
    推論部分を詳しく見る
    色ごとのデータに
    デコード
    model
    推論結果
    (経路等)
    画像をmodelの入力に適した
    アングルに変形 jpeg画像

    View Slide

  7. Section 00 - 01
    実際に起こった問題
    - デコードが遅い
    - 画像変形が遅い
    - 推論速度が遅い
    要するに…全部ダメ。FPSが5しか出ない😨
     実験しているときのホワイトボード ↑
    FPS5と出ている

    View Slide

  8. Section 00 - 01
    何が原因か?
    - 使用しているデバイス (Jetson TX2を搭載した車載用デバイス Edgeplant T1)
    - そもそもTX2が古くて性能が低い (2017年発表)
    - GPUはGTX1080世代でコア数10分の1, CPUはラズパイ以下
    - もちろんメリットもあった
    - 入手性が良い(Amazonでポチればすぐ届く)
    - 車載グレードを満たしたデバイス
    - 消費電力が小さい(充電をほぼ気にしないで良い)

    View Slide

  9. Section 00 - 01
    CPUから徹底的にタスクを奪った!
    - JPEGのデコード → NvJPEG (ハードウェアアクセラレータ)
    - 画像の変形 → NPP (GPU)
    - 推論 → TensorRT (GPU)

    View Slide

  10. Section 00 - 01
    JPEGデコード
    - JPEGのデコードはめっちゃ計算が多い
    - ランレングス・ハフマンの解凍
    - DCT(離散コサイン変換)の逆変換
    - 並列化が出来る計算ではある
    - Jetson系にはNvJPEGという名の専用ハードウェアが搭載
    - Jetson multimedia APIを使用することで圧倒的高速化

    View Slide

  11. Section 00 - 01
    画像の変換
    - 画像の座標の変換 = 行列の計算
    - 機械学習と同様にGPUで高速に計算が可能
    - NPP (NVIDIA 2D Image And Signal Performance Primitives) を使用して高速化

    View Slide

  12. Section 00 - 01
    推論
    - TensorRTを使用することでモデルを最適化
    - onnx to TensorRT Engine
    - ハードウェアの使用も効率的になって嬉しい

    View Slide

  13. Section 00 - 01
    結果

    View Slide

  14. Section 00 - 01
    結果

    View Slide

  15. - 画像が絡む処理は基本めちゃくちゃ重い ! + 推論だけがボトルネックじゃないこともある
    - 家のデスクトップ(Ryzen7 + RTX3080など) で出来ても、実運用出来るか?は場合による
    - 特に入手性・耐久性などの観点から性能が低くなりがちなエッジデバイスへの適用には工夫が必
    要になる
    - TensorRTはもちろんnvjpegやNPPは通常のNVIDIA GPUでも使用可能
    - 開発段階からアクセラレートしてイテレーションを早く回せる!
    - ※移植性やCUDAのバージョン問題もあるので適用するかは要検討
    Section 00 - 01
    教訓

    View Slide

  16. - 今日お話した内容は、 1月以降にTURING Tech Blogにて詳しく紹介される予定です!
    - https://zenn.dev/p/turing_motors
    - 走行データベース構築の話なども掲載予定
    Section 00 - 01
    Appendix

    View Slide

  17. View Slide