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

日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU

ASCII.jp / 2024年11月18日 12時0分

 Hot Chipsの最後の講演が、Preferred NetworksのMN-Core 2である。Preferred Networksそのものは日本の会社であり、連載670回でも触れたことがある。ASCII.jpでは同社のニュースはいろいろ掲載されているので、ご存じの方もおられるかと思う。

MN-Core 2

Preferred Networksの西川社長に牧野淳一郎教授から声がかかる

 Preferred Networksは2006年創業となるPreferred Infrastructure(PFI)という企業から2014年に独立した企業である。設立当初のニュースを読むと、「IoTにフォーカスしたリアルタイム機械学習技術のビジネス活用を目的とし、自然言語処理技術、機械学習技術分野で事業を行なう」という話になっていた。ところが同社は2017年に神戸大学と共同開発体制を取り、新しいプロセッサーを開発することを決める。

 もともとの動機は、理化学研究所とPreferred Networksが2016~2017年に共同で行なったNEDO(新エネルギー・産業技術総合開発機構)向けのプロジェクトである。目的は、行列演算を効率的に実行するためのプロセッサー研究で、TSMCの40nmプロセスを利用して試作した。この時理研で開発の指揮を取っていたのが牧野淳一郎教授であった。2012~2022年に理研の計算科学研究機構 粒子系シミュレータ研究チームのチームリーダーだった人物だ。

 Preferred Networksの西川徹社長が、学生時代に牧野教授が手がけていたGRAPE-DRという専用計算機の開発に関わっていたということで、牧野教授から西川氏に声がかかったらしい。プロジェクトそのものは、主にAI推論向けのチップ開発を目指したわけだが、これと並行してAI学習向けのチップを開発するプランが立ち上がることになった。

 2017年から牧野教授は神戸大学の大学院理学研究科教授となったことで、この学習向けのチップは神戸大学とPreferred Networksの共同開発になった。

 この共同開発の結果として2020年に生まれた最初の製品がMN-Coreであり、これを利用したシステムがMN-3である。製造プロセスはTSMCの12nmで、スペックは、ピーク性能が32.8/131/524TFlops(FP64/FP32/FP16)、TDPが500Wである。

MN-Core。4つのダイを一つのパッケージに収めた構造である

 同時代の製品としてはNVIDIA A100がやはり2020年5月の発売であるが、こちらはピーク性能が9.7/19.5/19.5/78TFlops(FP64/FP64 Tensor/FP32/FP16)、TDPが400Wであることを考えると、いかに性能と効率の両面でMN-Coreが高いかがわかるだろう。

 先に連載670回に言及したが、MN-Coreを搭載したMN-3は、初参加となる2020年6月のGreen 500で21.108GFlops/Wを達成して見事1位に輝いている。チップ単体の性能で比較すると、FP64の場合でMN-Coreは65.6GFlops/W、A100は24.25GFlops/Wと倍以上も効率がいい。実際にはシステム全体での消費電力での比較なので、こちらで足を引っ張られている感はあるのだが。

 なぜそれが可能になったか? それはMN-Coreの特異なハードウェア構造に依存する。このあたりは牧野教授の知見というか経験がものすごく色濃く反映された格好だ。MN-Coreと一般的なプロセッサーの基本的な考え方の違いが下の画像だ。

このあたりの発想は、牧野教授が開発したGRAPEシリーズのアクセラレーターとまったく一緒である

 Command scheduler/Cache controller/Network controllerといった実行制御やメモリー制御、複数コアの制御などがすべてソフトウェアで実行されるようになっている。MN-Coreシリーズ(MN-CoreとMN-Core 2の両方)の説明を見ると「従来のプロセッサーとは異なり、アクセラレーター上の各processing element (以下PE)がそれぞれのプログラムカウンターや命令デコーダーを持ちません。すべてのPEは完全に同期的に動作し、ホストCPUで生成された命令列をホストから直接受け取って動作します。」とある。

 要するに、連載298回で紹介したQCDSPに採用されたTI TMS320C31や、連載307回で紹介したCM-2に搭載されたWeitek WTL3132など、そういったアクセラレーターに限りなく近い。ただし単純な浮動小数点演算をターゲットにしているのではなく、行列演算をターゲットにしているのが従来との違いというあたりだろうか?

レジスターやメモリーのほとんどがシングルポート ソフトウェア制御だからこそできた珍しい構成

 MN-Coreのチップ構造が下の画像である。基本になるのはMAB(Matrix Arithmetic Block)である。こちらはPE(Processing Element)×4とMAU(Matrix Arithmetic Unit)から構成される。

MAB×16にL1 Block RAMを合わせたものがL1Bで、そのL1B×8+L2 Block Memoryを組み合わせたものがL2Bとなる。1つのダイにL2Bが4個あり、4つのダイが相互接続されており、結果としてチップ全体ではMABが2048個、PEは8192個ある計算となる

 MAUは行列専用のアクセラレーターであり、PEからデータを受け取って行列演算をして、その結果を再びPEに戻す仕組みである。ではPEの中身は? というのがこの下の画像。

これはMN-Core 2のホワイトペーパーからの抜粋なのでMN-Coreではないのだが、大きくは変わらない。強いて言えば、2nd GRF(GRF1)はMN-Core 2で追加されたようだ

 ALUに汎用レジスター(GRF)とローカルメモリー(LM)、それと一時データ保持用のTレジスター、演算結果のフラグを保持するフラグレジスターなども搭載される。LMはそれぞれ36KBの容量を持つが、特徴的なのはこれらのレジスターやメモリーのほとんどがシングルポート構成ということだ。

 通常レジスターやキャッシュ、ローカルメモリーはマルチポート構成になっていることが多い。複数のユニットから同時に読み出したり、あるいは書き込みと読み出しを同時に行なったり、といったことが可能な構成になっている。ただこれは当然その分回路が複雑になるし、レイテンシーと消費電力も増える。

 MN-CoreではGRF0/1のみR/Wが同時に可能だが、その他のSRAMはすべてシングルポート構成である。これは、通常のコアだとしばしばメモリーアクセスの競合が発生して性能低下の要因になりえるが、MN-Coreの場合はそもそもそうしたメモリーアクセスすらもソフトウェアから制御するので、競合が起きないようにプログラミングすることで無駄なトランジスタ数を減らし、効率を引き上げられる。

 ここまででわかるように、PEもMAUも独立して動作する。したがってプログラミング次第であるが、SIMDのようにPEとMAUを並行して同時に動かすことも可能だし、その際の性能予測も容易である。なにしろハードウェア側がなにもしないから、正確に性能を推定できるわけだ。

 データ移動も同様にプログラムで管理できるため、きちんとプログラミングできれば非常に効率的に動作する。逆に言えば、プログラミングの難易度は高い。そもそもMN-Core、設計段階でのコード名はGRAPE-PFN2(初代のGRAPE-PFNは冒頭で触れた、NEDO向けの開発プロジェクトのチップの模様)という名前からもわかるように、GRAPEシリーズとかなり似通った命令構成になっている。GRAPEシリーズのプログラミングの経験者であれば、それほど難しくはないという割り切りがあって、こうしたスタイルになったものと考えられる。

NVIDIA A100より高性能で 価格は約半分のMN-Core 2

 前置きが長くなったが、ここまでは初代MN-Coreの話で、ここからがHot Chipsで説明のあったMN-Core 2の話である。下の画像が初代MN-Coreのまとめであるが、MN-Core 2の次には推論向けと学習向けで異なるラインナップを用意するという話が出ている。

考えてみれば4ダイで500Wなので、1ダイあたりでは125Wであり、法外なほど高い消費電力とは言えないかもしれない。それでも大きめだが

 第2世代のMN-Core 2であるが、目標は高い性能/消費電力比を維持しながらコストを下げることにあるとする。

MN-Core 2はダイの数が1つになっており、トータルのL2Bの数は半減している。ただし動作周波数を引き上げているので、性能はそこまで落ちない

 MN-CoreとMN-Core 2の違いは下の画像のとおりで、MN-Core2ではダイあたりのL2Bの数が8つに増えている。とはいえMN-Coreでは4ダイで16個だったから演算器そのもので言えば半減である。

MN-CoreとMN-Core 2の違い

 しかしMN-Coreでは500MHz駆動だったのが、MN-Core 2では750MHzと1.5倍になっている関係で、性能はMN-Coreの75%ほどに落ち着いている。実際性能が393TFlops vs 532TFlopsで73.9%ほどに収束しているから、ほぼ計算通りと言える。

 細かいところでは、例えばメモリーの搭載量は半減しているが、演算器の数も半分なので実質変わりはないし、むしろLPDDR4→GDDR6Xで高速化されているから、メモリーアクセスのレイテンシーを減らせて性能を上げやすくなっているともいえる。

 性能として示されたものが下の画像である。アプリケーションによって差の開き方がだいぶ変わるのだが、ResNet-50の学習で2倍、推論で4倍というのはわりと大きな差だし、姫野ベンチマークでは14倍以上の差がついているのがわかる。姫野ベンチマークについては理研のウェブサイトを参照してもらいたい。メモリー依存度が非常に高いベンチマークである。

MN-Core 2の性能。比較がA100のままでいいのか? というのはやや疑問ではある

 問題はLLMに利用するにはあまりにメモリーが足りなさすぎることだ。今年9月にCloud Operator Days 2024というイベントがあり、そのクロージングでPreferred Networksが「自社開発した大規模言語モデルをどうプロダクションに乗せて運用していくか~インフラ編~」という発表をしているのだが、この中でモデルが巨大すぎ、かつCUDAが必須なので現実問題としてNVIDIAのGPUを使うしかなく、しかもH100/H200は全然入手できないのでA100の利用が現実的、という話をされている。

 その意味ではMN-Core 2の性能をA100と比較するのは間違っていないのかもしれない。ただ現実問題として16GBのMN-Core 2では大規模LLMが乗り切らないので、ホストメモリーを併用することになるが、こんなことをしたらまともに性能が出るはずもない。

 またCUDAで書かれたコードをMN-Core向けに書き直すのも猛烈に大変である。したがって、今のところMN-Core 2をLLMに使うという話が見あたらないのが、現時点での最大の問題かもしれない。

 などと考えていたら、11月15日にPreferred NetworksよりMN-Core L1000の開発に関する発表があった。DRAMをチップの上に3次元実装することで、LLMに必要となる大量のメモリーをHBMよりも安価かつ高速に実現できる、という目論見だそうだ。登場時期は2026年の予定となっている。

MN-Core L1000。実はSamsungが一時期、HBMを直接チップの上に積層する技術を開発していたはずなのだが、その後話がどこかに行ってしまった。このDRAM積層がそれと同じものなのか、あるいは別のものかは不明だが、いったいメモリーは誰が主体となって開発しているのだろうか?

 話を戻すと、すでにMN-Core 2は発売されており、MN-Core 2を8枚搭載するMN-Server 2 V1が2000万円、1枚搭載のMN-Core 2 Devkitが200万円となっている。おそらくMN-Core 2のカード単価で言えば150万~160万円程度。昨今の為替レートを考えると1万ドル前後というあたりで、ラフに言ってA100の半額、インテルのGAUDI 2よりややお高めといったところだろう。

MN-Server 2 V1はXeon Platinum 8480+×2に1TBメモリーを組み合わせたラックサーバー構成、MN-Core 2 DevkitはCore i5-14500に64GBメモリーという構成だ

 次世代製品については、学習向けではピーク性能10倍とアプリケーション性能30倍、推論向けは性能20倍としている。それはいいのだが、学習向けがSamsungのSF2というあたりに一抹の不安を覚えざるを得ない。ちゃんと製品が作れるのだろうか?

推論向けはLLM Inferenceとあるのに、学習向けにLLMの文字がないあたりも気になる。LLMの学習はとにかくメモリーが鬼のように必要なので、あるいはマーケットとして捨てている可能性もある

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

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

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

記事にリアクションする

次の記事を探す

エラーが発生しました

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