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

電気自動車のTeslaが手掛ける自動運転用システムDojo AIプロセッサーの昨今

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

 今回取り上げるのはTeslaのDojoである。そもそもTeslaの車と言えば電動車であることと、他社に先駆けて自動運転の仕組みを取り入れていることが特徴なのはご存じのとおり。ついでに言えばその自動運転のシステムを自社で構築していることも特徴的である。

 下の画像は2019年に開催されたPytorch DevCon 2019でTeslaのAndrej Karpathy博士(Sr Director of AI:現在はTeslaから離職した模様)が示した、Teslaの自動運転に関わるスタックの様子であるが、ハードウェアとしてTeslaの車に搭載されるのは、上から2つ目の“Inference @ FSD Computer”である。

Karpathy博士の講演そのものはYoutubeで見られる

 FSDは“Full Self Drive”の略で、このチップ自身もなかなか壮絶な代物で、当然Teslaの内製である。このFSDの詳細は別の機会に紹介するとして、右下に謎の“Dojo Cluster”というコンポーネントがあるのがわるだろうか?

 Teslaの自動運転車の場合、走行時にその走行の様子を記録したデータ(含ビデオデータ)を、常にTesla社に送信している。Teslaはそのデータを基に、より良い自動運転のアルゴリズムを常に改良し続けている。この改良を担うのがDojoだ。

 要するにFSDは自動運転のアルゴリズムを使って推論を行ない、それを基に運転操作をする。一方でその際に得られた運転データを利用して学習し、より良い自動運転アルゴリズムを開発する。この学習を行なうためのシステムがDojoである。

 このDojoの詳細が公開されたのは昨年8月に開催されたHotChips 34である。実はこの時点でもまだDojoはフル稼働していない。ではDojoが完成するまでの間はどうしていたか? というと、NVIDIAのA100ベースのスーパーコンピューターを構築し、ここで学習していた。

 下の画像はこのスーパーコンピューターのプレスリリースでの写真だが、A100を5760枚集積したクラスターでこの学習処理をしていた。

これもまたKarpathy博士とのZoom会議で示されたスライド。出典はCVPR'21の“Workshop on Autonomous Driving”だが、スライドの下には“(next up:Dojo)”とあるものの、Dojoの話はここでは出てこない

 ただこのクラスターを利用しても、一部のアルゴリズムでは学習に1か月近くを要するものがあったらしい。Dojoの目的は、これを1日に短縮することである。つまり現在のA100ベースのクラスターよりも30倍高速なシステムを構築するというのがDojoのターゲットとなる。

 さてそのDojoであるが、基本となるタイル(Compute Die+I/O Die)の構成はCelebrasのWSEを連想させる、巨大なウェハーサイズの構造である。

個々のCompute Dieの内部構造は後述。WSEと異なり、Dojoでは良品のダイのみを選別してタイルを構成する

 これだけでも大概であるのだが、このウェハーサイズのタイルは、それぞれ個別にパワーデリバリーと冷却をワンパッケージにした形で構成される。

個々のタイルあたり15KWだから壮絶である。構造的には、昔のIBMのZシリーズのプロセッサーモジュールを思い出す

 こんな構造になるから、当然液冷になるのだろう。ちなみにTeslaによれば、1個のタイルあたりで9PFlops(BF16/CFP8)の演算性能を実現、オンタイルメモリーは11GBのECC付きSRAMで、帯域はオンタイルメモリーのみで10TB/秒、オフタイル(つまりタイル間でのメモリー転送)を含めると平均36TB/秒とされている。

 ただこのコンピュートタイルは純粋に計算をするだけの処理なので、外部とのI/Fがない。これを担うのが、Dojo Interface Processorである。

DIPはDojo Interface Processorの略。1つのコンピュートタイルにDIPカードが5枚接続される

 こちらは外部の共有メモリーと、ネットワーク/ホストとのI/Fを担う格好である。1つのDIPカードにはDIPが2つ搭載され、それぞれのDIPにはHBM2が2つづつ接続されている。

 このDIPの中身は明確にはなっていないが、下の写真を見る限りはArmベースのSoCでイーサネットを内蔵したチップのようだ。

HBM2は8GB積層がDIPあたり2つで16GB、トータル32GBという計算になる

 外部I/FはPCIe Gen4 x16で、これがボード上のPCIe Switch経由につながり、最終的にホストに接続される構成らしい。ちなみにコンピュートタイル自身も相互接続可能になっており、それぞれ9TB/秒で接続される。

要するに各タイルには9TB/秒のリンクが4対用意され、タイル同士を接続することも、DIPカードを接続することも可能というわけだ

 ここで少しおもしろいのが、コンピュートタイル同士の接続とDIP経由の接続の使い分けである。コンピュートタイル同士はけっこうな数の接続が可能であるが、規模が大きいと当然その際の通信の遅延が大きくなる。

縦に30もつなぐ形になるとも思えないのだが。あとHyperCube的に、一番上と一番下のタイルをつないでしまえばHop数の最大値は半分に減る気もするのだが、そういう構成はできないらしい

 その場合、DIP経由で直接Point-to-Pointで通信を行なうことで、Hop数を大幅に減らせることになる。TeslaはこれをZ-Plane Topologyと呼んでいるが、要するに相手との距離次第でコンピュートタイル同士の接続とDIP経由の接続を使いわけすることで、遅延を大幅に減らせるというわけだ。

ただし帯域そのものはコンピュートリンク同士の接続より当然減るので、そのあたりの使い分け方は難しそうだ

 実際のDojoのシステム全体は下の画像のとおりである。複数のコンピュートタイル同士を相互接続し、その外側にDIPが並ぶ構造だ。これを組み合わせて、1EFlopsの演算性能とオンタイルで1.3TBのSRAM、それに13TBのHBMメモリーが用意される格好になる。

Dojoのシステム。CPU+DRAMというのはホストのCPUのことである

Dojo Nodeを縦横に354個集積したD1ダイ ダイサイズは645mm2とかなりの大きさ

 ここからはコンピュートタイルの中身をもう少し説明したい。コンピュートタイルの根幹をなすのは、4-wayのスーパースカラーなコアである。独自命令セットであり、RISC-Vをカスタマイズとかそういうわけでもない。

 DojoはTeslaのみが使うシステムなので、別にRISC-Vでなくても良いということだろう。このコアの特徴であるが、以下のような独特な構成である。

  • フェッチは32Bytes/サイクルで、最大8命令のフェッチが可能。
  • デコードは8-wideで、2スレッド/サイクルの処理が可能(つまり4-way SMTではあるが、1サイクルあたり2スレッド分しか命令は供給されない)
  • ALU×2/AGU×2の4-way SMT構成。ただしフェッチバッファやALUのレジスターファイルなどはスレッドの数だけ用意される。
  • FPUは搭載しない(というか、そもそもデータ型がBF16/CFP8という時点で、ALUがなくFPUのみというべきなのだろうか?)が、ベクトルというかSIMDエンジンは搭載される。こちらは2-wideで、64Bytes幅である。ここで最大8×8×4の行列乗算が可能。
  • 仮想記憶はなし。メモリー保護機能も最小限。スレッド間でのリソース共有(共有メモリーなど)はソフトウェアで制御する。
  • 通常アプリケーションスレッドが1~2個と、コミュニケーションスレッドが1~2個走る。

 このパイプラインに、1.25MBのSRAMが割り当てられる。こちらは図からもわかるように命令とデータの両方を格納する形であるが、キャッシュというよりはスクラッチパッドという方が正確だろう。

 このSRAMはロード400Gbps、ストア270Gbpsの帯域を持っており、またベクトルレジスターにデータを格納するにあたって、並び替えを行なうGather Engineを実装している。

 これは例えば行列乗算では行と列を入れ替えるような操作が必要になるこが多く、これをソフトウェアでなくハードウェアで行なうことで効率化を図るためと考えられる。

 逆にキャッシュにあたるものは存在しない。むしろキャッシュを使わなくても、4-wayスレッドで命令やデータのロード時間を遮蔽できるから、無理にキャッシュを入れて制御を複雑にする必要はない、という判断かと思われる。

 このCPUパイプライン+1.25MB SRAMをDojo Nodeと呼ぶが、実際には複数のノードが2次元構造でつながっている。この接続を担うのがNOCルーターで、東西南北にそれぞれ128Bytes/サイクル(実際は送受信各64Bytes/サイクルと思われる)で接続可能であり、またNOCルーターとSRAMの間もそれぞれ64Bytes/サイクルで接続される。

 このNOCルーターは東西南北にある別のNOCルーターとの間で8パケット/サイクルの転送が可能であり、また各々のルーターはSRAMに対して直接DMAで転送を行なえるので、CPUパイプラインの側に負荷をかけずに転送可能となっている。

 ちなみにCPUパイプラインの命令セットはこんな感じ。確かにあまり一般的な感じはしないし、RISC-Vにするメリットも少なそうだ。

Front-endというのはおそらくルーターに対する命令で、転送と同期がメインであろう。Variantsの数がベクトルで妙に多いのは、ギャザリングへの対応もあるのだと思われる

 さてこのDojo Nodeを縦横に354個集積したのがD1ダイとなる。TSMCのN7ながら動作周波数は2GHzとやや低めで、Low Power Cell Libraryで構築されている可能性もある。

20行×18列で360個分の領域だが、6ヵ所は他の用途に使われているようで、トータル354個となる

 性能はBF16/CFP8では362TFlopsと、ノードの数のわりに少し高めだが、これはベクトルユニットを利用した場合の数字と思われる。ベクトルを使えないFP32では22TFlopsとやや低めに推移している。

 このD1ダイ1つで440MB(正確には442.5MB)のSRAMを実装しているが、それもあってダイサイズは645mm2とかなりの大きさ。これを25個集積し、さらにその外側にI/O用のダイを40個(つまり一辺あたり10個:1つのD1ダイあたり2個接続される計算である)配したのがDojoタイルである。つまり1つのタイルには8850個のノードが含まれ、11GBのSRAMが内蔵される形だ。

ExaPodが今年第1四半期に稼働予定

 ここからは昨年9月末に開催されたTesla AI Dayのスライドからご紹介したい。ちなみに全体では3時間半にもおよんでおり、1時間57分からDojo Introduction、2時間23分あたりからDojo Hardwareの説明が行なわれている。

 まずトレーニングタイルだが、システムにはこれが6つ相互接続する形で1つのトレイに収まる。これがシステムトレイである。

これ1つだけで重さ135Kg、消費電力は52Vで2000Aという、これだけでもう壮絶な数字である

 一方DIPは、そのトレイの下に並ぶ。その20枚のDIPカードがちょうどささるように、ホストCPUのシャーシが用意される。こちらは構成は明らかになっていないが、PCIeスロットの数とかコアの数を考えると、Milanベースの1ソケットEPYCサーバーが4台入っているように思える。

このスライドを見てやっと気が付いたのだが、2つのDIPチップの上にあるコネクターが、トレーニングタイルとの接続用のI/Fになるものと思われる
左右(この図で言えば手前と一番奥)のタイルの真下に、タイルあたり5枚づつDIPカードが並ぶ格好。なるほどZ軸方向での接続になるからZ-Planeなわけだ
“Hardware Video Decoder Support”というあたりは、実はこれ以外にハードウェア・デコーダーのカードも入っている可能性がある

 技術的に言えば、同じくMilanベースの2ソケットEPYCサーバー(これだと最大でPCIe Gen4レーンを162本出せる)を2台という可能性もあるが、そこで2ソケットにする意味があまり見当たらない。

 トータルメモリーは8TBというあたり、EPYCサーバーあたり2TBという計算だ。このDojo Host Interfaceを2つ積み重ねたのがDojo Cabinetであり、そのDojo Cabinetを複数並べたのがExaPODである。

Dojo Cabinetは、中央にDojo Host Interfaceが2つ縦積みされ、さらにその上下に電源ユニットが並ぶ
ExaPodは10キャビネットが標準構成になる模様。ちなみにまだフル構成のExaPodは存在しない

 Dojoの、AI Dayにおける説明では以下の数字が示されている。

  • 24 GPU(A100) vs 25 D1では、バッチ処理のレイテンシーが150μs vs 5μsで30倍高速
  • 自動ラベリングやOccupancy network(境界面を使ったネットワーク分類)などの処理でA100と比較して最大3.2~4.4倍高速
  • 1つのコンピュートタイルでGPU BOXが6つ分以上の性能。そしてコンピュートタイルの価格は1つのGPU BOX未満
  • 4つのDojoキャビネットで、既存の72ラックのGPUサーバーを代替できる。といった数字が示されている。

 最初のExaPodは今年第1四半期(つまり今月だ)中に稼働予定であり、Teslaは将来的にパロアルト(Tesla本社所在地)に7つのExaPodを稼働予定としている。

 なんというか、数は力とでもいうべきソリューションである。とはいえ自動運転のアルゴリズムを改良していくのには、このくらいのパワーが必要なのかもしれない。

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

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

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

記事にリアクションする

次の記事を探す

エラーが発生しました

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