きっかけ
2026年5月4日現在,私はセキュリティ・キャンプ2026ネクストへの出場に向け,応募課題を進めています.その,応募課題の中に「MN-Core」に関する調査を行うものがありました.そこで調査結果を自分の中で整理するために,この記事を書かせていただきました.
恥ずかしながらにプロセッサーに関しては初めて触れるので,正確性に自信はありません.適宜,引用元を掲載させていただきながら,可能な限り正確な情報でお届けしたいと思います.間違い等あれば,ぜひ指摘してください.学習の励みになります.
MN-COREとは
まず,MN-Coreとは何かから説明します.MN-Coreとは,Preferred Networks(PFN)が開発した,深層学習(AI)の演算に特化したプロセッサです1.一般的な汎用プロセッサ(CPU)や深層学習に用いられることが多い画像処理向けプロセッサ(GPU)とは異なり,「Fully Deterministic Architecture(完全決定論的アーキテクチャ)」としてソフトウェアによって資源を管理できるように設計されました(p92).
MN-Coreの持つアーキテクチャの最大の特徴は分散メモリ型SIMD(Single Instruction, Multiple Data)です3.これは,一つの命令で大量の演算器(PE: Processing Element,後ほど開設)を同時に動かすことで,これまでのCPUやGPUと比較し圧倒的な演算密度と電力効率を実現します.
MN-Coreの設計
MN-Coreの設計の特徴として,単純化によって面積あたりの演算器割合を高める設計,ツリー階層構造を採用の2つがある.
まず,面積あたりの演算器割合を高める設計では,電力を喰う原因である「キャッシュメモリ」や「命令デコーダ」及び「プログラムカウンタ」といった設計を排除し,これらの動作をすべてソフトウェアで行う.また,本来これらが存在した場所に演算器を置く.このアプローチによって面積当たりの省電力性,計算効率を高める狙いがある.
次に,MN-Coreの構造では,MN-Core>L2B>L1B>MAB>PEといった具合に改装がツリー階層構造を採用している.ツリーの葉にあたる多数の行列ベクトル積専用回路付き演算ユニットでVLIW形式の命令により並列動作させることで、高い実効性能・電力性能を実現しています4.
ここからは課題の設問に沿って,MN-Coreの良い点・得意な計算,悪い点・不得意な計算,面白い点について説明していきます.
MNCOREの良い点・得意な計算
良い点
電力効率と演算密度
冒頭でも説明したようにMN-Coreの良い点として,圧倒的な電力効率が挙げられます.これは,通常CPUやGPうが多くのトランジスタを割いている「キャッシュメモリ」や「命令デコーダ」及び「プログラムカウンタ」といった複雑なハードウェア制御回路を排除しています(p163, 4p4, 2p5).これによって,空いた面積に純粋な「演算器」と「高速なローカルメモリ(SRAM)」を配置します.このとき,MN-Coreでは,演算器の傍にメモリを配置することで,通信にかかる時間も削減しています.面積当たり,電力辺りの演算性能を高めています.
決定論的な実行時間(Predictability)
直前の電力効率と演算密度 でも説明したように,MN-Coreでは,「キャッシュメモリ」や「命令デコーダ」,「プログラムカウンタ」といった制御回路を排除しています.そのため,CPUやGPUが持つハードウェアによる「キャッシュヒット・ミス」や「ワープスケジューリング」,「投機実行・アウトオブオーダー実行」といった動的な制御が存在しません.
そのため,キャッシュ利用による実行時間の不確定性やワープスケジューリングの同期コストなどといった実行性能を不確定にする要素が存在しないため(p44),プログラムの実行サイクル数が完全に予測可能です.これにより,コンパイラが事前に最適なスケジューリングを計算し,データの移動(DMA転送)や演算のタイミングといった資源をソフトウェアによってサイクル単位で制御が出来れば,ハードウェアのアイドル時間を最小に抑えることを可能になります.
実行効率
既存のCPUやCPUでは,「演算がうまくはまらない」,「通信律速」の2つの理由で実行効率が悪くなっていました(p123).「演算がうまくはまらない」というのは,演算内容に適さない命令を使ってしまうことで効率が下がることです.例えば,理論最高性能を評価するとき通常FMA命令を使っているが、積和にならない演算をすれば,その時点で理論値最高性能は出せなくなってしまう.このように,FAM命令が使えないものにFAM命令をはめてしまうと実行効率は下がる.
「通信律速」とは,処理速度より通信速度が遅い時,通信速度が全体のパフォーマンスを制限してしまうことである.多くの場合,通常のアプリケーションでは,処理速度より通信速度の方が遅い.そのため,演算と通信を同時にしたり,そもそも演算のほうが通信より時間が掛かるケースでない限りは通信速度の分だけ実行効率が下がる.
これらの問題に対して,MN-Coreでは,先にも説明したようにツリーの葉の部分で並列して計算を行います.計算に使うメモリと演算装置を近くに配置することで通信時間を減らし,ソフトウェアによって通信と命令を制御することで事前に通信を削減を可能にし,命令の効率化を図っています.
得意な計算
深層学習の根幹となる行列積や畳み込み演算において,分散メモリ型SIMDアーキテクチャによって,各サイクルで異なるデータに対してPEが一斉に同じ演算を行うため(p93),得意な演算となっています.
MN-Coreを搭載したスーパーコンピュータは様々HPC/AIベンチマークにおいて,NVIDIA製GPUを搭載したスーパーコンピュータと比較し3~6倍の高速化を実現しています(p82).
MNCOREの悪い点・苦手な計算
悪い点
プログラミングの難易度
一言でいうと,AI用途以外のプログラミングが想定されていません.
まず,ここまで説明したようにMN-Coreでは,今までハードウェアで行っていた「投機実行」や「アウトオブオーダー実行」の制御をしないため,ソフトウェアの性能がそのままプロセッサの性能に直結します.したがって,ソフトウェアがポンコツであればMN-Coreの強みを最大限発揮できません.
ソフトウェアはプログラミングによって構築しますが,現状コンパイラはPyTorchから直接アンセンブラを生成している(p273).(通常のコンパイラは,一度C言語が挟まっていることが多い.)
したがって,AI用途以外にはVLIW(Very Long Instruction Word)命令といった複数命令を一つにまとめた命令やメモリ管理,通信待ちを厳密に行う必要がありますが,これらをアンセンブラで書かないといけない.
これは常人にできることではないので,汎用言語向けのコンパイラ開発が課題となっている(p273).
苦手な計算
複雑な条件分岐を含むアルゴリズム
ここで話すことは一般的なSIMDの仕組みと弱点から私が考察したものです.私が調べる限りでは言及がなかったので,おそらく一般的な弱点を踏襲していると思いますが,賢い設計によりこの弱点を克服している可能性があります.
通常SIMDでは,命令が条件によって分かれていると双方の条件を探索してしまいます6.そのため,MIMDと比べて,分岐が増えれば増えるほど無駄な探索が増加し,それに伴い実行時間も増加します.したがって,物理シミュレーション判定や衝突判定,実行時にポインタをたどるような動的なデータ構造の操作が苦手な可能性があります.
面白い点
MN-Coreの設計思想は,スーパーコンピュータという巨大なシステムでありながら,専用化によって不要なリソースを排除していく様子は,「組込みシステム」に近いものを感じます.
まとめ
今回はセキュリティ・キャンプ2026ネクストに向けてMN-Coreを調査する課題を実施しました.
MN-Coreは,汎用性を犠牲にすることで,特定の計算領域(AI・行列演算)においてはNVIDIA製プロセッサを搭載したスーパーコンピュータを凌ぐ世界最高水準の性能を持っています.また,省電力性についても世界トップクラスを誇ります.その一方で,専用化に伴い苦手な計算も存在し,またPytorchから直接変換を行うもの以外のコンパイラが存在しないため(おそらく),AI用途以外のプログラミングが非常に難しいです.