Technology

高速センサーデータをGPUへ直接渡す収集ソフト「DAQIRI」

この記事のポイント

  1. 実現したこと

    データ取得ライブラリDAQIRIは、高速な検出器やセンサーの出力をGPUで処理する経路へ接続する。

  2. 実現の仕組み

    DPDKでLinuxカーネルのネットワーク処理を迂回し、対応機器ではネットワークカードからGPUへコピーを挟まずに転送する。

  3. 得られた結果

    A-GHOSTの研究開発では、通常の選別で捨てられる検出器データ流をAIで調べる用途にDAQIRIを使用する。

  4. 従来との違い

    データ取得の構成を、固定的なハードウェア中心から設定可能なソフトウェア中心へ切り替えた。

検出器データがネットワークカードを経由してGPUへ直接流れる構成
AI生成画像

高速な検出器やセンサーの出力を、保存前にGPUで処理するためのデータ取得経路がソフトウェアで構成できるようになった。NVIDIAのDAQIRIは、対応機器ではネットワークカードからGPUへコピーを挟まずにデータを渡す。

センサーの出力をソフトウェアで処理経路へつなぐ

NVIDIAのデータ取得ライブラリDAQIRIは、Holoscan Platformの一部として、高帯域の検出器やセンサーのデータ流をソフトウェアの処理環境へ接続する。データ取得には、固定的なハードウェア中心の設計に代わり、用途に応じて変更できるソフトウェア中心の構成を採る。

この構成では、機器から届くデータをまず保存して後から解析する経路に限られない。入力が流れている間に処理を加えるため、次に必要になるのはネットワークカードから計算装置へデータを運ぶ経路だ。

カーネルを迂回してGPUの受信領域へ送る

DAQIRIはDPDKを使い、Linuxカーネルの通常のネットワーク処理を迂回する。対応する経路では、ネットワークカードからGPUのDMAバッファーへデータをコピーせずに渡し、CPU側でのデータ移動を減らす。

このGPUDirect経路を使うには、ConnectX-6 Dx以降の対応ネットワークカードとGPUDirect対応GPUが必要となる。対応機器という条件の下で、センサーから届くデータをGPU側の処理へ直接つなげる構成だ。

受信パケットをGPUで扱うテンソルに整える

GPUへの受信方法には二つの構成がある。一つはパケットのヘッダーをCPUへ、データ本体をGPUへ送る方式で、もう一つはパケット全体をGPUへ送る方式だ。受信したパケットはまとめられ、GPUで扱うテンソルになる。

開発者はYAMLファイルとC++またはPythonのAPIでデータ取得経路を設定できる。パケットの受信からテンソルへの受け渡しまでをこの経路に組み込むことで、後段の処理は機器の出力を入力として受け取れる。

選別で捨てられる検出器データにも処理を加える

NVIDIAによると、DAQIRIを使うデータ流には、機器を改造せずにフィルタリング、推論、圧縮、イベント選別などを組み込める。データが流れている間に処理を行う構成は、保存対象を決める前の入力にも計算を加える用途につながる。

A-GHOSTの研究開発では、通常の選別経路で捨てられる検出器データ流をAIで調べるためにDAQIRIを使用する。対象は従来の保存経路から外れるデータであり、GPUへ運ぶ経路がその検索処理の入力を担う。