1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Teslaの自動運転に欠かせない車載AI「FSD」 AIプロセッサーの昨今

ASCII.jp / 2023年3月20日 12時0分

 連載709回でTeslaのDojoを紹介したが、これは自動運転のアルゴリズムを開発するための、学習側のシステムである。

 対して、実際にTeslaの車に搭載されて自動運転をつかさどる方のものがFSD(Full Self Drive)である。FSDの詳細は2019年のHotChips 31で発表されているので、今回はこれを紹介しよう。

 FSDは、連載709回で示した下の画像に出てくる、上から2段目の右側の部分に相当するものだ。

2019年に開催されたPytorch DevCon 2019でTeslaのAndrej Karpathy博士が示した、自動運転に関わるスタックの様子。上から2段目の右側の部分がFSDとなる

レベル1から5まである自動運転の定義

 FSDの話をする前に、自動運転の定義の話を説明したい。自動運転の話は鈴木ケンイチ氏の連載があるので、この分野に興味がある方はすでにご存じかもしれない。

 下の画像は(やや古いが)国交省の考える自動運転の定義である。ちなみに元の定義はアメリカのSAE(Society of Automotive Engineers) Internationalという自動車業界の標準団体が策定したJ3016というもので、これを日本語化してわかりやすく説明したのがこの画像と考えればいい。

国交省の考える自動運転の定義。出典は国土交通省自動運転戦略本部第4回会合(2018年3月22日)の参考資料だが、この定義そのものは今も更新されていないので、特に問題はないだろう

 自動運転のレベル1は「アクセル/ブレーキ操作」か「ステアリング操作」のどちらかだけを自動で行なうものだ。例えばオートクルーズ(ACC)なら前走車と一定の距離を保つ、あるいは一定の速度を保つ形でアクセル/ブレーキ操作を行なってくれるが、ステアリングは操作してくれない。

 逆にLKAS(Lane Keep Assist Steering:車線維持機能)は、高速道路などで車線を維持するようにステアリング操作をしてくれるもので、こちらはアクセル/ブレーキ操作は行なってくれない。ちなみに車線逸脱警報(車線を踏むとブザーがなって警告してくれる)は、自動運転の範疇には入っていない。

 レベル2は「アクセル/ブレーキ操作」と「ステアリング操作」の両方を自動で行なうもの。レベル1のACCとLKASを同時に利用できる車というのは、レベル2相当になる。このレベル2はTeslaのAutoPilot、トヨタのToyota Safety Sense、日産のProPILOT、ホンダのHonda SENSING、スバルのアイサイトなど、結構最近増えてきている。

 ただこのレベル2は、「なにかあった場合の責任は運転者」にあり、また運転者は常に自動運転が正常かを監視し、問題があったらすぐさまマニュアル操作に戻れるようにしている必要がある。これを担保するために、運転手監視のシステムが必要になっている。

 Tesla Autopilotの場合、運転手がステアリングにかけている力を検出することで、ちゃんとステアリングを握っているかどうかを判断するという仕組みを実装した。これを逆手にとって、「ステアリングに重りを取り付けることでAutopilotをだまして自動運転させる」という裏技(?)がアメリカでは流行した。

 例えば下の動画の場合、5分29秒付近からステアリングに重りを付け、6分54秒付近からは完全手放し運転をしている。もちろんこれはメーカーが想定した使い方ではないし、これで事故になると(実際頻繁に事故が起きた)、責任はドライバーにある。

 レベル2.5は、国交省の定義にはないがレベル2+「手放し可能」を実現したものだ。ただしまだ責任はドライバーにあるので、ドライバーの監視機構が供えられ、ドライバーが運転に集中してないと判断するとACCやLKASなどはキャンセルされる。

 具体的には、カメラでドライバーの顔の向きや視線の向きを検出して運転に集中しているか否かを検出したり、60GHz帯のレーダーを使いドライバーの操作状況を検出したり、タッチセンサーで物理的にステアリングに手をかけているかどうかを検出したりする手法が利用される。

 これもすでに実装例は多く、トヨタのToyota Teammate Advanced Drive、日産のProPILOT 2.0、ホンダのHonda SENSING Elite、スバルのアイサイトXなどが該当する。もちろん海外でもGMのSuper Cruise、フォードのBlueCruise、RivianのRivianDriver+、BMWのハンズオフ機能付き渋滞運転支援機能、メルセデスのDRIVE PILOTなどがこの2.5相当にあたる。

 レベル3は、国連のWP29で具体的なガイドラインが定まった。時速60km/h以下の渋滞の時だけ、完全に自動で運転するというものだ。しかも、この自動運転の事故はドライバーの責任とならない。

自動運行装置の国際基準。出典は国土交通省の“自動運行装置(レベル3)に係る国際基準が初めて成立しました”

 これに関しては、ホンダが2021年3月にTraffic Jam Pilotで世界最初の型式認定を取得。次いでメルセデスがDRIVE PILOTの有償オプションでこのレベル3の機能を実装した。

 ちなみにTeslaは今年2月にFSDのβ版ソフトウェアでこのレベル3に対応したものの、事故が多発。2月15日にβ版の配布を受けた36万2758台のTesla車に対してリコールを出すに至っている。ので、Teslaはまだ現状レベル2相当、と考えればいい。

 ちなみにレベル4は限定された領域での完全自動運転で、具体的には特定の都市部や高速道路網「だけ」などになるわけだが、こちらはDynamic Mapと呼ばれる精密な3次元地図を併用する方式が有力視されているものの、世界中の道どころか国内に限ってもそんなものを車に搭載するのは不可能(データセンタークラスのストレージが要る)だし、そもそもまだDynamic Map自体がごく一部のエリアを試験的に構築してみました程度の話なので、実用化には遠い。

 それもあって、ターゲットはタクシーやバスなどの公共交通機関向けが主眼で、自家用車向けはその先という扱い。その先にはレベル5の完全自動運転があるが、なにしろTeslaですら前述のようにレベル3の構築に失敗しているレベルなので、まだまだ先は遠いだろう。

可能な限り市販のIPを利用して作られたFSD

 ということで長い枕になってしまったが、現状車載の自動運転向けプロセッサーはレベル2~3あたりをターゲットにしたものとなっている。まずFSDの設計目標が下の画像となる。

FSDの設計目標。当然ながらHW 2.x台よりも高い性能が求められる

 ここで“Retrofit existing HW2.x vehicles”というのは説明が必要だろう。Teslaは2008年から自動車の発売を開始しており、2014年には最初の自動運転用のハードウェア(HW 1.0)を搭載した。これが利用できるようになったのは2015年10月だ。

 2016年にはHW 2.0がリリースされている。このHW 1.0/2.0はNVIDIAのプロセッサーを利用していたのだが、今回発表されたFSDを搭載するHW 3.0から自社設計/自社生産に切り替わった。ここの互換性というのは、まだHW 2.x台を搭載している旧来のTesla車を、HW 3.0にアップグレードすることを想定しているという話である。

 そんなFSDは下にある画像の基板で、2つのFSDチップが搭載されている。

FSD。車にはむき出しではなく、液冷のユニットに囲まれる形で実装される

 ただこの2のチップは冗長構成を取っており、電源やカメラからの入力もやはり冗長構成になっているので、片方のユニットや電源などがダウンしても問題なく処理を継続できるように配慮されているあたりはさすがに自動車向けである。

水色と青色の2系統で動く格好。左端の上下のコネクターが冗長電源のものである

 パッケージは37.5×37.5mmで、2116ボールのBGAと説明されている。

ダイは14nm FinFETプロセスで60億トランジスタ/2億5000万ゲート。ダイサイズは260mm2と発表されている

 開発期間を短縮するためか、可能な限り市販のIPを利用しており、CPUは2.2GHz駆動のCortex-A72×12、GPUは16コア構成のもの、他にISPやビデオエンコーダー、PHYなども全部市販のIPを利用しており、Teslaが自前で設計したのはNNA(Neural Network Accelerator)とSafety&Securityのユニットのみと言ってもいい。

FSDの内部構成

 GPUは公表されていないが、時期および構成を考えるとMali-G71 MP16あたりではないかという気がする。ただ1GHz駆動で600GFlopsと発表されており、微妙に数字が合わない(G71だとスペック上は543.4GFlops)ので、もう少し動作周波数が上なのか、キャッシュなどの関係で性能が上がってるかのどちらかかと思われる。

 ちなみにSafetyは2つのFSDを冗長構成(Lockstep動作)させるための制御回路であり、Securityは文字通りセキュリティ対策の部分である。

HW 2.5から性能が21倍向上

 肝となるのがNNA(Neural Network Accelerator)であるが、2つのNNAが独立して配される。NNAの中枢は96×96のMACユニットで、これが単体で36.8TOPSの演算性能を持つ。このMACユニットは周囲に配された32MBのSRAMとだけデータ交換することで、効率よく計算できるようになっている。

 もっともこれに関しては2019年7月にハンガリーのAIMotiveがFSDの分析をしており、それほど効率が良くないとしている。下の画像を見ると、SRAMセルからMACユニットに配線が集中しており、実際にはここがボトルネックになってしまいやすく、MACユニットの効率はかなり低いのではないか? と推察している。

2つのNNAユニットの中央上部にMACユニットが配され、左右と中央下部はSRAM領域になっている

 AIMotiveによれば、MACユニットとSRAMセルを混在させるような構成にすれば、90%以上の効率を実現することも可能とするが、ただし設計が複雑化する関係で、設計完了が半年~1年程度伸びることになる。

 Teslaはこの設計期間が延びることを嫌って、不効率を覚悟のうえであえて単純な構成でFSDチップを設計したのではないか? というものだ。

 Teslaクラスの資金力があれば、例えばHW3.0はこの単純なFSDチップで実現しておいて、これとは別により最適化を進めたチップを並行して開発することも不可能ではないだろうし、とりあえずNVIDIAから自前にチップ設計を切り替える第一歩としては、確実に動くものを作る方が重要だったという判断もあり得るわけで、その意味でもAIMotiveの分析は間違っていないように思える。

 NNAの内部構造は以下の画像のとおり。MACアレイでひたすら乗算を行ない、その結果をSIMDエンジンで受けるという格好になっている。

MAC出力はかならずSIMD Laneで受けてその結果をSRAM Bankに戻す形になる。SRAMと外部のデータ交換はDMA Read/Writeなどの命令で行なう

 SIMDエンジンの内部構造が下の画像だ。SIMDといっても乗算そのものはMACユニットで済ませた後になるので、加算とアクティベーションが主な作業であり、それもあって対応する命令は多いものの、実装そのものは比較的簡単なようだ。

INT 8/16/32とFP32だけ、というのは2019年と言う時期を考えればわからなくもない。今だとFP16/BF16/FP8やInt 1/2/4もサポートに入りそうだ

 さてこのFSD、HotChipsでの発表によれば従来のHW 2.5と比較して21倍の性能向上を実現しているとする、消費電力の絶対値は25%増えているものの、性能/消費電力比は大幅に向上しているわけだ。

縦軸の数字の意味は処理フレームレートだそうで、HW 2.5では110fpsでの処理が可能なタスクが、FSDを使うと2300fpsで実行できるという。具体的にどんなタスクか? というのは不明だ
消費電力の絶対値は25%増えている。FSDをフルに使うと72Wと1.25倍に増えるが、このうちNNAは15Wしか使っていないとする

 またコストは2割削減できたとしている。ちなみにNVIDIAのDrive Xavierと比較した場合、6.9倍の性能になるとのこと。

コストを2割削減。どのあたりがこのコストダウンに貢献したのか? はよくわからない
NVIDIAのDrive Xavierとの比較。ただこの144TOPSという数字はLockstep動作を無視した場合の話で、実際はこの半分という気もするし、先のAIMotiveの分析が正しければ実効性能差はさらに縮まりそうではある

 TeslaはいつまでこのHW 3.0、つまり現バージョンのFSDを使い続けるつもりなのかはよくわらない。あるいはそろそろ内部的にはHW 3.5が登場しつつあるのかもしれない。なんにせよ、レベル2の自動運転を実行し、レベル3にトライするためにはこの程度の演算処理性能が必要、という1つの目安になることは間違いない。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください