NVIDIAのオープンソースアクセラレータ「NDVLA」

NVIDIAはVolta、TuringなどのGPUとは別に、「NVDLA(NVIDIA Deep Learning Accelerator)」というものを発表した。NVDLAはディープラーニング用のアクセラレータで、GitHubでソースが公開されており、NVIDIAのOpen NVDLAライセンスでローヤリティーフリーで利用できるようになっている。

なお、NVIDIAの自動車向けのディープラーニング用のXavierチップにはNVDLAが組み込まれている。

次の図に示すように、NVDLAはFP16とINT16では1024個のMAC、INT8では2048個のMACを持ち、それにデータの入力とデータの出力のDMA、メモリインタフェースがついている。さらに、疎な重みの伸長回路、入力のWinograd変換回路などがついたディープラーニング用のアクセラレータである。

  • NVDLA

    NVDLAは1024FP16 MAC、あるいは2048 INT8 MACを持ち、疎な重みの伸長やWinoglad変換などを持ち、それに入出力のDMAとメモリインタフェースを持つディープラーニング用のオープンソースのアクセラレータである

NVIDAのXavierチップは、NVDLAに加えて、GPUやPVAによるComputer Vision処理などを行う各種のエンジンを搭載している。Volta GPUは512個のCUDAコアを搭載し、 Tensorコアによる20TOPSのディープラーニング性能を持つ。DLAはFP16で5TFlops、ビデオプロセサはエンコードでは1.2GPIX/s、デコードでは1.8GPIX/s、PVAは1.6TOPSでステレオ表示やイメージ処理ができる。さらに、8コアのArm64 CPUを搭載している。

自動運転に必要な信頼度を実現するため、Arm64 CPUは2重化されており、メモリにはECC/Parityがつけられており、診断回路やBISTでエラーを検出を行っている。

  • Xavier

    NVIDIAの自動運転用のXavierチップ。この図はアーティストの描いたものではなく、本物のチップの写真のようである。Xavierチップは自動運転に必要な信頼度を確保する設計になっている

NVIDIAはDrive AGXという自動運転用のプラットフォームを作っている。Drive AGX XavierはXavierチップ1個を使うもので、Level2+からLevel3の自動運転用である。Drive AGX PegasusはXavierチップを2個使い、Level4やRobo Taxiの自動運転用の製品である。

  • Drive AGX Xavier

    Drive AGX XavierはXavierチップを1個のLevel2+、Level3車両向けの製品で、Xavierチップを2個使用するDrive AGX PegasusはLevel4やRobo Taxi向けの製品である

自動運転車では、周囲の認識だけでなく、次にどこに進めるかというフリースペースの認識、前の車までの距離の認識、天候の認識、LiDARでの周囲の認識、カメラに基づくマッピング、カメラに基づくHDマップでの位置認識、LiDARを使うHDマップでの位置認識、進路の認識、景色の認識など、この例では10種類の認識を行っている。

  • 自動運転

    自動運転で必要となる10種類の認識の例。周囲の状況や自車の位置をカメラ情報やLiDAR情報とマップ情報を照合して認識する

しかし、実車で公道を走って学習したり、安全性を確認したりするのは容易ではない。また、事故につながるような危険な状況は、ほとんど出てこず、安全性の確認という観点では実走行は効率が悪い。

そのため、NVIDIAではシミュレーションで車を走らせるということを行っている。たくさんの実走行データを集め、モデルの学習を行う。そして、実走行で集めたLiDARやカメラなどのセンサからの情報を再生し、それを入力として自動運転システムを使って走行させる。このようにすれば、安全な状況での走行は減らし、危険がある状況での走行を重点的に実行することも可能であり、検証の効率が上がる。

  • DRIVE CONSTELLATION

    走行シミュレーションでは、多くの実走行データを集め、それで走行モデルの学習を行う。そして得られたモデルと走行データでバーチャル走行を行って、安全性を確認していく。なお、上の2枚の図に見られるDRIVE CONSTELLATIONはアーティストの描いた偽物

米国では1Billionマイルの車の走行あたり770回(おおよそ200万kmに1回)の事故が発生している。実車で1B(10億)マイル走るには20台の車で(50年間にわたって)年間100万マイル走る必要がある。これは時間が掛かるし、費用も膨大にかかる。

  • 自動運転

    1Billionマイルの走行には、20台のテスト車が年間100万マイル走る必要がある

NVIDIA DRIVE SIMは8台のカメラとRadarとLiDARのシグナルを再生して、まれな運転の難しいケースをシミュレートする。そして、1万台のDGX-1を使うCONSTELLATIONでシミュレーションを行えば年間3Bマイルの走行をシミュレーションすることができる。

  • NVIDIA DRIVE SIM

    NVIDIA DRIVE SIMはVRで自動運転車を走行させてテストを行う。1万台のCONSTELLATIONを使えば年間3Bマイルの仮想走行テストができる

DGX-1を並べたCONSTELLATIONはBit精度のセンサ入力を再現し、ハードウェアをループ内に含むシミュレーションを実施する。そして、コーナーケースや稀なケースを再現して検証を行うことができる。

  • 自動運転

    DGX-1を並べたDRIVE CONSTELLATIONは、クラウド環境ですでに使えるようになっている。DRIVE SIMはビット精度で走行時のカメラ、Radar、LiDAR信号を再生して仮想のテスト走行を行わせる

次の図は一例で、DRIVE CONSTELLATIONを使えば、周囲の明るさや天候が違う場合の環境を作り出して、走行を検証することができる。つまり、仮想的なテスト環境とテスト車群をクラウドの中に作り出して走らせることができる。

  • 自動運転

    DRIVE CONSTELLATIONは、実車のデータをベースに、仮想的に天候などが異なる場合の入力を作り出してシミュレーションを行うこともできる

このような環境が整備されていけば、実車での走行を減らして経済的、かつ、効率的に自動運転車のテストが行なえるようになると期待される。