科学・技術
メモリ内処理: DRAMが演算を行う時代へ
Processing in Memory: DRAM Is About to Do Math (ben3d.ca)
要約
Samsungは、16GB LPDDR5Xメモリパッケージが内部で614GB/sの帯域幅を提供する「Processing in Memory (PIM)」技術を発表しました。これは、DRAMチップ内に演算ユニットを配置することで、外部ピンの帯域幅のボトルネックを回避し、特にAI推論におけるGEMV(行列ベクトル乗算)のようなワークロードで大幅な性能向上をもたらす可能性を示しています。この技術は、従来のDRAMコントローラーとの互換性を保ちつつ、AIチップのコストと電力効率の改善を目指しています。
全文翻訳
Hot Chips 2026で、Samsungは16GB LPDDR5Xメモリパッケージを発表しました。これは、独自の演算ユニットに対して614GB/sの内部帯域幅を提供します。
比較のために言うと、614GB/sは、3,499ドルのMacBook Proの40コアGPU構成における、トップスペックのApple M5 Maxのメモリ帯域幅全体に匹敵します。Samsungは、この数値が1つのメモリパッケージ内から得られるものであり、外部ピンを通じて流出するのは76.8GB/sだと主張しています。Tom's Hardwareは、その結果として生じる8倍の違いを報じました。
この8対1の比率は、Processing in Memoryの根拠となります。DRAMバンクはすでに帯域幅の大部分を提供していますが、外部ピンはその帯域幅をすべて公開できません。
バンク。DRAMは、並列動作可能な独立したアレイであるバンクを含んでいます。最新のLPDDR5Xダイは数十個のバンクを持っています。これらが一体となって巨大な内部スループットを提供しますが、狭い外部インターフェースを共有しています。
GEMV対GEMM。行列ベクトル乗算対行列行列乗算。バッチサイズ1での自己回帰デコーディングはGEMVを使用します:1つのトークンのアクティベーションが、重み行列全体と乗算されます。プリフィルとバッチ処理サービングはGEMMを使用します。PIMはGEMVで最も役立ちます。
PIM。Processing-in-memoryハードウェアは、演算ユニットをバンクの隣、メモリダイの内部に配置し、そこでインターフェース帯域幅ではなくバンクレベルの帯域幅を使用できます。
演算強度。ロードされたバイトあたりのFLOP数。高い演算強度はワークロードを演算バウンドにします。低い演算強度は帯域幅バウンドにし、行列エンジンをアイドル状態にします。
ボトルネックはメモリ帯域幅です。
1つのトークンを生成するには、DRAMからすべてのパラメータを読み込み、それを1回乗算し、破棄する必要があります。各トークンは前のトークンに依存するため、バッチサイズ1のデコーディングではトークン間で重みを再利用できません。演算強度はほぼ最低レベルになります。
一次モデル:トークン/秒 ≈ メモリ帯域幅(GB/秒) ÷ モデルサイズ(GB)
614GB/sで20GBのモデルに対して、ハードシーリングは約30トークン/秒になります。実際の数値は、KVキャッシュがコンテキストとともに成長し、同じ帯域幅を競合するため、これより低くなります。生成中、支払った行列ハードウェアのほとんどはDRAMを待っています。
Appleのローカル推論パフォーマンスはメモリ帯域幅に集中しています。M5 Proは307GB/s、M5 Maxは460または614GB/sを移動し、M5 Ultraは1.2TB/sに達します。これらの数値は、TFLOP数よりもトークン/秒をよく予測します。Appleはより広い外部インターフェースに投資しています。Samsungのデザインは、最大の転送をメモリパッケージ内に保持します。
Samsungが構築したもの。
16個のPIMブロックがDRAMバンクの隣に配置され、MACツリーが並列に実行され、ALUが浮動小数点数と整数型を処理します。このパッケージは、JEDEC標準の561ボール部品で、ランクあたり4つのダイに16GBを含んでいます。Samsungは、通常のLPDDR5Xと同じフットプリントを使用して、サーバー、モバイルデバイス、クライアントをターゲットにしています。
パッケージは4つのステップでデータを処理し、それぞれがソフトウェアに影響を与えます。
アクティベーション書き込み。16個のWRPBコマンドがFP8アクティベーションデータをホストからバンク全体にわたるソースレジスタファイルにブロードキャストします。
重みロード。PIMX_RDは、DRAMセルから32バイトの重み要素を読み込み、それらをMACツリーにマッピングし、ベクターレジスタファイルで出力を結合します。
ベクター書き込み。PIMX_WRは部分的な合計をバンクに移動します。読み込み対書き込みの比率は、1:1の固定ではなく変化させることができます。
読み出し。ホストはシングルバンクモードに切り替え、最大64個の連続した読み出しを発行して1-kbitベクターレジスタファイルをドレインします。重みはパッケージ内に残ります。より小さいアクティベーションのみがバスを横切り、ホストはPIMブロックにコマンドを送信します。Samsungは、設定レジスタのMAC精度フィールドを通じて15の精度組み合わせをサポートしています。SINT4重みは2.4TOPSに達し、FP8は約1.2TFLOPS/パッケージに達します。
従来のメモリコントローラーが使用可能。
Samsungは、その互換性メカニズムをAddress Align Modeと呼んでいます。これはDRAMアドレスをMAC命令にマッピングするため、部品は従来のDRAMコントローラーと連携できます。
システムは、通常のDRAM用のシングルバンクモードと、PIM用のマルチバンクモードを、定義済みの行とPIMレジスタを通じて切り替えます。Samsungによると、このアプローチは、以前のHBM-PIM部品よりも高速かつ確実にモードを切り替えることができます。
すべてのSoCベンダーに新しいメモリコントローラーの構築を要求することは、PIMを研究プロトタイプに留めていた可能性があります。Address Align Modeはその要件を回避し、ソフトウェア統合をより大きな問題として残します。
測定結果。
Samsungは、エッジAIアクセラレータSoCで実際のシリコンを検証しました。Llama 3.1 8Bを320トークンのコンテキストでSINT8アクティベーション、SINT4重み、SINT32出力を使用して実行した際に、LPDDR5XとLPDDR5X-PIMを比較しました。
LPDDR5X | LPDDR5X-PIM | Delta
Run time | 12.3 s | 5.4 s | 2.28x
Throughput | 27 tok/s | 81.3 tok/s | 3.01x
このベンダーベンチマークは、1つのモデル、1つの短いコンテキスト、1つのアクセラレータ、および全体での整数量子化をカバーしています。これは、アーキテクチャがシリコン上で機能することを示しています。すべてのワークロードのパフォーマンスを予測するものではありません。特に320トークンのコンテキストは、KVキャッシュの問題を最小限に抑えます。Samsungはパッケージ価格を開示していないため、より広いメモリインターフェースに対するコスト上の利点は、測定結果ではなく主張のままです。
メモリベンダーが関心を持つ理由。
Samsungは、コストのスライドで講演を開始しました。AIチップのコンポーネント支出において、メモリは2024年第1四半期の52%から2025年第4四半期には63%に増加し、その大部分をHBMが占めています。LPDDR5X-PIMは、顧客にHBMクラスの推論帯域幅への道を提供しますが、HBMの価格、電力消費、またはパッケージングの複雑さはありません。Samsungは、2021年のAquabolt-XL HBM2-PIMの概念実証以来、このアイデアを追求してきました。LPDDR5X-PIMは、製品化に達した最初のLPDDRベースのPIM設計です。
ソフトウェアの問題。
llama.cpp、vLLM、またはその他の主流のランタイムにはPIMバックエンドが存在しません。Samsungは、シミュレーター、要求に応じたデータシート、およびリファレンスツールを備えたSDKを提供しています。そのベンダーのスタックと「--pim」フラグの間には3つの障害があります。
1. K-クォンツはハードウェアにマッピングされない。
lama.cppは、GGUFのk-クォンツ(例:Q4_K_M)から多くの品質/ビットの利点を得ています。これらのフォーマットは、ブロックごとのスケールとスーパーブロックのスケールを持つブロックごとの量子化を使用します。CPUとGPUは、近くの汎用ALUでブロックごとの少数の逆量子化操作を実行できます。DRAMダイには汎用ロジックはほとんどありません。PIM MACユニットは、DRAM製造プロセスが論理トランジスタよりもストレージコンデンサを最適化するため、小さく保たれており、追加されるトランジスタごとにストレージ密度が低下します。メモリ内アクティベーション量子化の研究では、主流の量子化スキームにはMACユニットの上に余分なスケーリングと制御ハードウェアが必要であることがわかりました。引用された設計の1つは、FP16およびINT32サポートで約126%のエリアオーバーヘッドを発生させました。メモリ階層全体での処理と効率的なスパースPIMに関する他の研究も、ダイエリアオーバーヘッドに対する同様の感度を示しています。Samsungの最小限のMACユニットは、k-クォンツのスケーリング操作を実行できません。その15の精度モードは、ベンチマークのSINT4とSINT8のペアリングを含む均一なフォーマットを使用します。それらはQ4_K_Mを実装していません。既存のGGUFファイルは、PIMネイティブレイアウトに再量子化する必要があり、k-クォンツの品質上の利点のどれだけが生き残るかはまだわかりません。
2. 物理メモリレイアウト。
mmapにより、カーネルは物理DRAM全体にページを分散させることができます。PIMは、重み行列が連続して配置され、それを乗算するMACツリーを持つバンクにアラインされることを必要とします。SamsungのPIMX_RDは、セルから32バイトの重み要素を読み込み、MACツリーにマッピングしますが、これはデータが期待される場所に配置されている場合にのみ機能します。オペレーティングシステムは、ユーザー空間に公開された、巨大ページバックされた、バンクを意識したアロケーターを必要とするでしょう。macOS、Linux、Windowsは現在、そのようなものを提供していません。llama.cppのメモリマップされたモデルローディングは、使用しやすくしている機能の1つですが、この要件と競合します。
3. バンクレベルPIMはGEMVを優先する。
現在のバンク近傍設計(SamsungのHBM2-PIM、SK HynixのGDDR6-PIM、LPDDR5X-PIMを含む)はGEMVをターゲットにしています。これは、帯域幅の壁が最も痛いバッチサイズ1のデコーディングに適しています。最新の推論は、クリーンなGEMVと密なGEMMの間にも時間を費やします。バッチ処理は、クエリ間のGEMV操作を組み合わせます。