Data-Parallel Inference — データ並列リアルタイム推論フレームワーク

AI/ML

概要

Data-parallel Real-Time Perception System with Partial GPU Acceleration(ML4AD 2023)を実装したリポジトリです。C言語ベースで書かれており、リアルタイムの知覚(主に物体検出などの推論)を高スループットで処理することを目的としています。設計の核は「データ並列化」によるフレーム処理の並列実行と、計算負荷の高い部分のみをGPUへ部分的にオフロードすることで、CPUとGPUの両方を有効活用して低レイテンシかつ高スループットを実現する点です。READMEにはDarknet/YOLO 系の参照があり、既存の物体検出実装(YOLOv2/3/4 等)と組み合わせることを想定した構成になっています。

GitHub

リポジトリの統計情報

  • スター数: 9
  • フォーク数: 0
  • ウォッチャー数: 9
  • コミット数: 30
  • ファイル数: 40
  • メインの言語: C

主な特徴

  • データ並列(フレーム並列)アーキテクチャにより複数フレームを同時処理してスループット向上
  • 部分的なGPU加速により重い演算(畳み込み等)だけをオフロードしてCPU/GPUを協調利用
  • Darknet/YOLO 系の物体検出実装との連携を想定したインターフェースと3rdparty管理
  • CMakeによるクロスプラットフォームなビルド構成とCI設定(.circleci/.github)

技術的なポイント

本リポジトリは「リアルタイム性」と「高スループット」を両立するために、複数の工夫を取り入れた実装が特徴です。まずデータ並列化では、入力フレームをバッチ化するのではなくフレーム単位でパイプラインに投入し、各ステージ(前処理 → 推論(CPU/GPU)→ 後処理)を並列実行することでレイテンシとスループットのバランスをとっています。重い演算のみをGPUへオフロードする「部分GPU加速」を採用しており、完全なGPU依存にしないことでデータ転送コストとGPUメモリ制約を軽減します。C言語で実装されているため、低オーバーヘッドのスレッド管理やメモリ制御が可能で、リアルタイム組込み環境にも適用しやすい点が利点です。

また、既存の物体検出ライブラリ(Darknet/YOLO)との互換性を想定しており、モデル読み込みや推論呼び出しのラッパーを通じて既存資産を活用できます。ビルド周りはCMakeで管理され、3rdpartyディレクトリに外部ライブラリや依存コードをまとめる構成になっています。CI/CDの設定(.circleci、.github)やテスト/デプロイのためのスクリプトが含まれており、開発から検証までのワークフローが整備されています。ドメインは自動運転やエッジ推論などリアルタイム知覚が重要な領域を想定しており、論文(ML4AD 2023)に基づく工夫が実装に反映されている点も興味深いポイントです。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .circleci: dir
  • .github: dir
  • .gitignore: file
  • 3rdparty: dir
  • CMakeLists.txt: file

…他 35 ファイル

まとめ

リアルタイム推論をCベースで効率的に行うためのデータ並列/部分GPUオフロード実装。実装と運用をつなぐ構成が整備されています(50字)。

リポジトリ情報:

READMEの抜粋:

Yolo v4, v3 and v2 for Windows and Linux

(neural networks for object detection)