MN-Core SDK × LLM推論/MTC25

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Preferred Networks Preferred Networks PRO
January 15, 2026
37

MN-Core SDK × LLM推論/MTC25

2025年12月16日に東京ミッドタウンホール&カンファレンスで開催された『MN-Core Technology Conference 25』の講演スライドです。本スライドは、以下のスケジュールで行われたセッションの発表資料です。

A会場
1. MN-Coreの展望 的矢 知樹(AIコンピューティング事業本部 事業戦略・プロダクトマーケティング部 部長)
2. MN-Coreの設計思想 牧野 淳一郎(コンピュータアーキテクチャ担当CTO)
3. MN-Core Arch deep dive 真島 優輔(AIコンピューティング事業本部 MN-Core 開発部 Engineering Manager)
4. 誰もがMN-Coreを利用できるAIクラウドサービス: Preferred Computing Platform 照屋 大地(AIコンピューティング事業本部 基盤技術部 部長)

B会場
1. MN-Coreの性能を引き出す技術 HPL/姫野ベンチマーク編 安達 知也(AIコンピューティング事業本部 ソフトウェア開発部 エンジニア)
2. MN-Core SDK × LLM推論  樋口 兼一(AIコンピューティング事業本部 ソフトウェア開発部) /坂本 亮(AIコンピューティング事業本部 ソフトウェア開発部 部長)

Avatar for Preferred Networks

Preferred Networks PRO

January 15, 2026
Tweet

More Decks by Preferred Networks

Transcript

  1. MN-Core SDK × LLM推論 樋口 兼一 AIコンピューティング事業本部 ソフトウェア開発部 エンジニア 坂本

    亮 AIコンピューティング事業本部 ソフトウェア開発部 部長 株式会社Preferred Networks
  2. 2 2020/04- 株式会社 Preferred Networks • Green500 ランキング向けのベンチマークチューニング (安達さんと!) ◦

    スケジュールを手書きした紙、持ってきています • MN-Core SDK のうち、MLSDK (後述) の開発 • (一応) エンジニアリングマネージャー 2年生 自己紹介 - 樋口 兼一 (Tomokazu Higuchi) 最近、人から褒められるのが好きになった
  3. 3 • MN-Core シリーズ上で開発を行うためのソフトウェアパッケージ ◦ MLSDK: Machine Learning (ML) 向けの開発環境

    ◦ HPCSDK: High Performance Computing (HPC) 向けの開発環境 • PFN 社員が開発・運用していたコンパイラ及びランタイムを、外部提供 用にパッケージングしたもの • PFCP (後述) などの環境で利用可能 MN-Core Software Development Kit (SDK) とは
  4. 4 MN-Core SDK: MLSDK vs. HPCSDK MLSDK HPCSDK 対象タスク 深層学習

    HPC 等 入力 interface Python, PyTorch, ONNX(計算グラフ) C/ C++等 タスク例 画像識別モデルの学習、画像生成、 LLM 流体計算、画像処理(特徴量抽出)等 特徴 深層学習タスクを比較的高レイヤー からコ ンパイルして実行する 利用に MN-Core の専門知識は不要 比較的低レイヤー で記述された計算を、 コンパイルして実行する ある程度の MN-Core の専門知識が必要
  5. 5 • PFN が構築、運用する AI・ML ワークロード向けのクラウドサービス ◦ https://pfcomputing.com/ ◦ ユーザガイド:

    https://docs.pfcomputing.com/ • PFN のエンジニア・リサーチャが使用する環境と同じものを提供 ◦ これまで社内向けに計算基盤を開発運用してきた経験を元に開発 • 強力な計算ボードと高速なネットワーク ◦ 独自開発したアクセラレータ MN-Core™ シリーズを提供 ◦ 深層学習に最適化された高速なネットワークで相互に接続 誰もが MN-Core™ シリーズを利用できる AI クラウドサービス Preferred Computing Platform (PFCP)
  6. 7 MN-Core SDK のソフトウェアスタック MN-Core Runtime PFVM Runtime codegen (emit)

    PFVM FX2ONNX MNCL Host Runtime MNCL Device Translator MNACC codegen (sched.)
  7. 8 MLSDK: 機械学習向け開発環境 MN-Core Runtime PFVM Runtime codegen (emit) PFVM

    FX2ONNX MNCL Host Runtime MNCL Device Translator MNACC codegen (sched.)
  8. 9 • PyTorch プログラムを MN-Core シリーズ上で動かすことが目的 • 各種ソフトウェアスタックをまとめ、Docker イメージとして提供 構成要素

    • Python インターフェース (MLSDK API) • グラフコンパイラ / ランタイム • codegen dashboard • ドキュメント / 使用例 MLSDK について
  9. 10 • PyTorch のエコシステム (Module, dataloader など) を活かしつつ、 計算のコア部分を MN-Core

    シリーズで高速化 MLSDK API の利用手順 • 計算のコア部分を定義 (関数化) • 関数を MLSDK API に渡してコンパイル • コンパイル済み関数は Python から呼び出し可能で、内部的に MN-Core 上で実行される Python インターフェース (MLSDK API)
  10. 11 • 計算グラフとして出力するため、入出力ノード名の指定が必要 • 定義する関数は Callable[[Dict[str, Tensor]], Dict[str, Tensor]] の型

    元の add 関数 コンパイル用に書き換えた add 関数 MLSDK API: 計算のコア部分を定義 (関数化)
  11. 12 • コンパイルに必須な引数は以下の3つ ◦ コンパイル対象の関数 ◦ 入力値のサンプル ◦ コンパイル結果の出力先ディレクトリのパス •

    入力値のサンプルは、関数から静的な計算グラフを出力するために必要 • add() 関数に対する入力値のサンプルの例 MLSDK API: 関数のコンパイル
  12. 13 • context.compile() に指定可能なオプション (一部) ◦ options: コンパイラへの各種指定など ▪ float_dtype:

    計算精度の指定 ◦ cache_options: コンパイル結果のキャッシュ先の指定など • add() 関数をコンパイルする例 MLSDK API: 関数のコンパイル
  13. 14 • コンパイル結果 (compiled_add()) はそのまま呼び出し可能 ◦ 入力する Tensor の shape,

    dtype は、コンパイル時に指定したサン プルと合わせる • デバイス上の出力結果は、同期後にホストからアクセス可能になる • 関数呼び出しの例 MLSDK API: コンパイルした関数の呼び出し
  14. 16 • プログラムカウンタや仮想アドレスの仕組みがないため、GPFNApp 中 の情報によってアセンブリを補完する • GPFNApp に含まれる重要な要素 ◦ アセンブリコード

    ◦ モデルのパラメータなどのデータ (登録されていた場合) ◦ 入出力 Tensor の shape, dtype 等のデータ • GPFNApp の担当する他の機能 ◦ アセンブリの DRAM へのマッピングを動的に行う仕組み ◦ 断片化したアセンブリを関数のように呼び出す仕組み ランタイム: GPFNApp を MN-Core 上で動作させる
  15. 20 • 実際に MLSDK を利用する場合、以下の手順を想定 ◦ ワークスペースの構築と、PyTorch プログラムの動作確認 ◦ デバイス上で処理したい計算を関数化

    ◦ 関数が正しく計算グラフとして出力出来るかをチェック ▪ codegen dashboard による計算グラフの確認 ▪ PFVM による計算グラフの実行 ◦ 計算グラフのコンパイル結果のチェック MLSDK を利用する
  16. 21 • 内部的には以下の順番で PyTorch から機械語まで変換している ◦ PyTorch プログラム ◦ FX2ONNX

    で計算グラフを ONNX フォーマットで出力 ◦ PFVM で計算グラフを最適化 ▪ ここで計算グラフを直接実行することも可能 (後述) ◦ codegen で計算グラフを MN-Core シリーズ上で動作させるのに必 要な処理を追加 (schedule) ▪ その後、各オペレータから機械語を出力し (emit)、それらをリ ンクすることで最終的なバイナリ (GPFNApp) を得る グラフコンパイラ: MLSDK API のバックエンド
  17. 23 • 関数化する過程で、静的な計算グラフとして扱う為の前提を整える ◦ 計算対象の Tensor の shape, dtype は呼び出し毎に変化しないか

    ◦ Tensor 以外の変数が副作用を起こしていないか ◦ model や optimizer が MLSDK に正しく登録されているか • 例: 機械学習モデルの学習処理部分を関数化したもの MLSDK を利用する: 計算処理の関数化
  18. 26 • 関数から出力した計算グラフを対象に、PFVM で処理することが可能 • 利用可能なバックエンド ◦ “pfvm:cpu” : LibTorch

    の CPU 実装を利用 ◦ “pfvm:cuda” : LibTorch の CUDA 実装を利用 ▪ デバッグ目的以外にも、MLSDK 導入後のコードを CUDA 環境 で運用することも可能 • 使用するデバイスを指定する API に、上記バックエンドを指定する MLSDK を利用する: PFVM による計算グラフの実行 “pfvm:cpu” もしくは “pfvm:cuda” を指定
  19. 27 • 関数化が完了すれば、後の工程は MLSDK バックエンドが自動的に行う • ただし、コンパイル自体に失敗することもあり、その場合はエラー箇所 の修正が必要になる ◦ 例えば、バッチサイズが大きすぎることが原因の

    OOM など ◦ ユーザー側では対処出来ないケースの場合、PFN 側で対応します • 無事にコンパイル結果 (CompiledFunction) が得られ、その呼び出し結 果 (計算結果) にも問題がなければ、MLSDK API の導入は完了 MLSDK を利用する: コンパイル結果のチェック
  20. 28 • Diffusion Policy を MN-Core 2 上で学習させた社内の事例を紹介 • Diffusion

    Policy (https://diffusion-policy.cs.columbia.edu/) とは ◦ 拡散モデルを応用し、ロボットの行動方策を学習するモデル ◦ 1D-CNN をベースとした U-Net アーキテクチャを採用 • ターゲットとしたベンチマークは Push-T ◦ ロボットアームを制御し、T 字のブロックをガイドに合わせる MLSDK の利用例: Diffusion Policy https://diffusion-policy.cs.columbia.edu/#pusht
  21. 29 • MLSDK API 導入時に必要だった変更 ◦ 活性化関数 Mish を SiLU

    へ変更 ◦ Indexing 処理をマスクと where で置き換え ◦ 1D-CNN の追加実装 • GPU (A30) との学習スループットの比較 MLSDK の利用例: Diffusion Policy MN-Core 2 で学習したモデル のシミュレーション結果 batch size 64 iter/sec MN-Core 2 14.42 A30 6.61
  22. 31 • MLSDK を MN-Core Playground のバックエンドに採用 • 内部では Qwen

    2.5 1.5B をベースに継続追加学習したもの ◦ MN-Core 2 上での実行効率は約 17.2 % (67.45 TFLOPS) MLSDK の利用例: SFT 中の Training Loss をグラフにしたもの 学習の完了したモデルは量子化され、ブラウザ上 で動作する他、手元にダウンロードして試すこと も可能
  23. 32 HPCSDK: HPC 向け開発環境 MN-Core Runtime PFVM Runtime codegen (emit)

    PFVM FX2ONNX MNCL Host Runtime MNCL Device Translator MNACC codegen (sched.)
  24. 33 • MN-Core シリーズ上で、HPC 的な計算を行うための SDK • HPCSDK の構成要素 ◦

    MNCL ▪ MN-Core シリーズ向け Low-level なプログラミング環境 ▪ OpenCL のサブセットとして提供 ◦ MNACC (提供予定) ▪ #pragma ディレクティブで指示できる並列プログラミング環境 ▪ OpenACC のサブセットとして提供 HPCSDK とは
  25. 36 • #pragma で記述したソースコードから、MN-Core 向けのデータの配 置、及び各種命令をコンパイラが自動で生成する HPCSDK: MNACC #pragma goose

    parallel for loopcounter(i,j) result(c[i]) for(i=0;i<ni;i++) { c[i] = 0.0; for(j=0;j<nj;j++) { c[i]+=a[i][j]*b[j]; } } MN-Core 2ボード L1 64K x 64 = 4MB 演算器 384MF x 1024 = 計393TF/s 144MBローカルメモ リ L2 1MB x 8 = 8MB DRAM (16GB) SRAM (156MB)
  26. 37 MN-Core SDK: まとめ MLSDK HPCSDK 対象タスク 深層学習 HPC 等

    入力 interface Python, PyTorch, ONNX(計算グラフ) C/ C++等 タスク例 画像識別モデルの学習、画像生成、 LLM 流体計算、画像処理(特徴量抽出)等 特徴 深層学習タスクを比較的高レイヤー からコ ンパイルして実行する 利用に MN-Core の専門知識は不要 比較的低レイヤー で記述された計算を、 コンパイルして実行する ある程度の MN-Core の専門知識が必要
  27. 38 2026/01 に向けたスローガンは、「MN-Core を実際に試せる SDK」 MLSDK v0.4 • GPU からプログラムを移植するための資料を充実

    • MLSDK の利用例をまとめた Model Zoo を開園 HPCSDK v0.2 • MNCL 上でカーネルを C/C++ で記述できるように改良 • MNACC のベータ版の提供開始 MN-Core SDK: 今後の展望 開発に役立てるため、皆様のご意見をお待ちしております。 興味のある方はぜひお試しください。
  28. 39 MN-Core SDK: Inference SDK を提供予定 対象タスク 深層学習 MLSDK HPC

    等 入力 interface PyTorch 等 C/C++等 タスク例 … … 特徴 … … HPCSDK LLM 推論 OpenAI 互換API LLM 推論 OpenAI 互換 API サーバーにより、高速な LLM 推論が可能 Inference SDK
  29. 40 2012/04-2016/08 株式会社 Fixstars • GPU, x86, Armといった様々なアーキテクチャでの最適化を経験 2016/09-2023/08 株式会社PEZY

    Computing • 独自アクセラレータを開発する会社での開発業務に従事 • Green500 三連覇を達成したり 2023/09-現在 株式会社Preferred Networks • MN-CoreでHPCをやる仕事 • 2025/08よりAICD ソフトウェア開発部 部長 自己紹介 - 坂本亮(Ryo Sakamoto)
  30. 42 MN-Core L1000 Series ✓ 10x better cost performance to

    GPUs ✓ up to 4x memory bandwidth to HBMs ✓ Fast inference of 70B+ LLMs on a workstation
  31. 46 L シリーズソフトウェアスタック User Application OpenAI Compatible Inference Engine Model

    Zoo (PFN selected) Tools for Fine-Tuned Models SDK LLM API SoTA LLM Models Customized Sota LLM Models in-house model
  32. 47 L シリーズソフトウェアスタック User Application OpenAI Compatible Inference Engine Model

    Zoo (PFN selected) Tools for Fine-Tuned Models SDK LLM API SoTA LLM Models Customized Sota LLM Models in-house model • PFNから3つ扱い方を提供し ます ◦ 一般公開されているモデ ルをそのまま使う方法 ◦ 一般公開されているモデ ルをFineTuneして使う方 法 ◦ 自分たちで作ったモデル or 未提供のモデルを自 分たちで対応させる方
  33. 48 L シリーズソフトウェアスタック User Application OpenAI Compatible Inference Engine Model

    Zoo (PFN selected) Fine Tuning Tools for Customize SDK LLM API SoTA LLM Models Customized Sota LLM Models in-house model HuggingFaceからモデルをダウンロードしてくる ようなイメージでデプロイ可能です
  34. 49 L シリーズソフトウェアスタック User Application OpenAI Compatible Inference Engine Model

    Zoo (PFN selected) Tools for Fine-tuned models SDK LLM API SoTA LLM Models Customized Sota LLM Models in-house model Fine-tuneしたモデルは同様に OpenAI CompatibleなAPIでデプロイ可能です
  35. 50 L シリーズソフトウェアスタック User Application OpenAI Compatible Inference Engine Model

    Zoo (PFN selected) Fine Tuning Tools for Customize SDK LLM API SoTA LLM Models Customized Sota LLM Models in-house model 新規モデルに対応するための仕組みを提供予定 各オペレータの実装を新しく追加するなどの工程を 提供することで、ユーザーの皆様が完全新規モデ ルに対応することも可能にする予定です