世界を動かす技術を、日本語で。

サムスンのメモリ内処理(PIM)

概要

  • SamsungLPDDR5X-PIM をHot Chips 2026で発表
  • DRAM内蔵MAC で内部帯域幅を最大限活用
  • 標準メモリコントローラ 互換性を維持しつつ独自計算機能を実現
  • ソフトウェア・OS側の対応課題 が依然大きい
  • PIMの普及にはメモリサブシステム全体の刷新が必要

SamsungのLPDDR5X-PIM技術概要

  • PIM(Processing-in-Memory) の推進により、DRAMチップ内で計算処理を実現
  • LPDDR5X-9600 規格準拠の16バンク構成DRAMに、各バンクごとにPIMブロック(MACユニット)を搭載
  • 内部帯域幅 は全バンク合計で最大 614GB/s (従来のDRAM外部帯域幅 76.8GB/s と比較して大幅増)
  • PIMブロック はMACツリー、レジスタファイル、制御ロジックから構成
    • 1024ビット命令レジスタファイル(最大64命令格納)
    • 4kbitソースレジスタ(アクティベーションベクトル用)
    • 2kbitスケールレジスタ(重み係数のスケーリング用)

PIMブロックの計算性能

  • INT8/FP8 フォーマットで各PIMブロックが毎クロック4回のMAC演算を実行
  • パッケージ全体で 2.4TOPS (4ビット重みなら倍増)
  • 8チップ構成 の場合、合計 9.6TOPS でIntel Meteor LakeのNPU並み性能
    • ただし 128GBメモリ 必要でコスト高

標準プロトコルとの互換性・動作モード

  • LPDDR5X標準プロトコル を維持しつつ、特定の行アドレスでPIMモード切り替え
    • シングルバンクモード:通常動作
    • マルチバンクモード:全バンク同時制御で内部帯域を最大活用
  • 特殊行アドレス でPIMレジスタアクセスモードに移行
    • 通常DRAMアクセスとPIMレジスタアクセスを切り替え

ソフトウェア運用フローと制約

  • モデル重み を通常DRAMにロード→PIMモード切替→アクティベーション値等をPIMレジスタに書き込み
  • マルチバンクモード でPIMレジスタ書き込みを全バンク同時に実施(SIMD的動作)
  • PIMレジスタ初期化後、演算命令投入→結果をベクトルレジスタに格納→DRAMに書き戻し
  • アドレス並び替え問題 に対し、Address Align Mode(AAM)で対処
  • PIM/非PIM操作の同時実行不可
    • 複数スレッドやプロセスが同時にDRAMへアクセスすると、誤動作やデータ破壊のリスク

マルチタスク・OS対応の課題

  • PIM領域の分離運用 が必要
    • メモリチャネル単位でPIM専用領域を割当て、他用途と帯域を分離
    • これによりPIM/非PIM双方の帯域効率が低下
  • マルチスレッド/マルチプロセス 環境ではPIM領域アクセスにロックが必須
    • OS側でPIM動作中は他スレッド/プロセスをブロックし割り込みも禁止する必要
    • プリエンプト時はPIMの全レジスタ状態を退避・復元
    • 結果として マルチスレッド性能やシステム応答性が低下

キャッシュ・投機実行との非互換性

  • PIMメモリ領域はuncacheable(キャッシュ不可) 指定が推奨
    • CPU/GPUのDRAM待ち時間増大で性能低下
  • PIMリードはMMIO的動作 (演算副作用あり)
    • 投機的ロードやプリフェッチが誤動作を誘発
    • 非投機的・キャッシュ不可アクセス が必須となり、CPU性能大幅低下

PIMアーキテクチャの本質的限界

  • 各PIMブロックは 自身のバンクにしか高速アクセス不可
    • 他バンクとのデータ交換は外部バス経由でボトルネック
  • メモリサブシステム全体の設計変更 が普及には不可欠
    • 例:DRAMインターフェースに専用計算コマンド追加、キャッシュコヒーレンシ対応
    • CPU命令セット拡張(例:「rep macb」命令)などが必要

今後の展望と課題

  • LPDDR5X-PIM は標準コントローラ互換で汎用性が高いが、現状ではソフトウェア・OSの対応が困難
  • マルチタスク・キャッシュ・投機実行環境 との非互換が普及の壁
  • メモリサブシステム全体の刷新・業界標準化 がソフトウェア側の普及促進に不可欠

Hackerたちの意見

サムスンがまだPIMを追求しているのは面白いね。確かISCA21か22で、PIMを使ったHBM2モジュールの論文を発表してたけど、その時はかなり感心したんだ。ただ、これがどんな killer アプリケーションに繋がるのかは分からないし、そんなアプリがないと普及は難しいよね。

俺の理解では、killer アプリは llms だと思う。RAM内で直接MACを実行できるから、CPUの負担がかなり減るし、必要な外部メモリ帯域幅も削減できる。想像してみてよ(これはちょっと夢物語だけど、いくつかのユースケースでは実現可能かも)。もっと大きなllmを動かしたい時、必要なのはRAMを追加で買うことだけなんだ。

ただ、これがどんな killer アプリケーションに繋がるのかは分からない… 作れば、みんな来るよ ;)

アイデアはこうだよ:96のメモリスロットを持つ8ソケットサーバーがあって、そこに96個のPIMメモリを追加する(楽観的に)。LLMのパラメータやKVキャッシュをRAMに読み込んで、GEMVを専用に実行させる。614 GB/s × 96 = 58,944 GB/sになる。あるいは、メモリは組み込み推論タスクに使われる。これで、限られた単桁または二桁MBのSRAMアクセラレーターから、合理的に速い単桁ギガバイトモデルにアップグレードできる。MoEなしで、8B fp8モデルを使えば、1秒あたり100トークンに達することができる。MoEを使えば、500トークン/秒を超えるかもしれない。

つまり、使うメモリ領域のキャッシュを捨てるってこと?実際にキャッシュミスのオフセットがどうなるのか気になるな(記事では触れられてるけど、サムスンからは解決策や影響が示されてないし)。

そのやり方だと、めっちゃ高い帯域幅も得られるんじゃない?でも、それがタダで手に入るとは思えないけど。

作業セットがキャッシュに収まるなら、PIMは関係ないよね。

計算をRAMバンクに移すのが面白いのは、1980年代のISAベースの拡張RAMにいた時期にちょっと似てるところだね。一部のカードには、システム全体を支配するCPUが搭載されていたり、アップグレードのように機能していたりした。他のカードは「カード上のコンピュータ」で、別の機能を提供していた。これを見ると、技術が循環することを示していると思う。だから、サムスンの発明みたいなのが注目を集めるかもしれない。遅いPCのISAバスを克服することが大きな加速剤になったんだよね、今の状況に似ている。

もしかしたら、複数のSamsungのRAMをつなげて「RAMsputer」って呼べるかもね。

メモリ内処理が明らかに未来だとは思うけど、この実装には納得できないな。行列の掛け算は、入力と出力の行列のすべてのエントリが同時に同じ乗数にある必要があるから(つまりN^2)。それを実現するには、かなりのデータ移動が必要なんだ。移動がメインで、掛け算や足し算はエネルギーやシリコンスペースの観点からはサイドショーみたいなもんだよ。片方の行列のすべての要素を、もう片方のすべての要素の前を通過させるためには、チップ周りのリングシフトレジスタが必要なんだ。

「動きが一番大事」ってのが、RAM内計算を追求する意味がある理由なんだよね。でも、DRAMの製造プロセスはかなり専門的で、純粋な計算ロジックには向いてないんだ。全体的には、かなり弱いNPUに似たプロファイルになると思うけど、メモリ帯域幅はずっと良いんだよね。NPUと同じように、特注のプログラミングモデルや最新の圧縮/量子化された数値フォーマットへのサポートがないのが大きな制限で、メモリに直接アクセスできるのがあまり役に立たないんだ。GPU、たとえ弱いiGPUでも、パラメータをその場でデクオンタイズしたりパディングしたりできるから、柔軟性がすごく高いんだよね。そして、CUDAやMetal、Vulkanを通じて標準的で理解しやすい計算能力を提供してる。残念ながら、これはあまり比較できないね。

固定パラメータが大量にある行列の掛け算がますます重要になってきてるから、こういうシンプルな計算をメモリと一緒に配置する、もっと効率的なアーキテクチャを設計するインセンティブがすごく大きいんだ。推論コストはかなり下がるだろうね。

Hacker Newsで議論の続きを見る