1 ポイント 投稿者 GN⁺ 2025-05-06 | 1件のコメント | WhatsAppで共有
  • MVDRAMは、無改造のDRAMを使用して低ビットLLM推論向けのGeMV演算を高速化するシステム
  • DRAMをGeMVエンジンとして活用し、高いスループットを提供
  • 従来のPUDアプローチにおける入力の事前配列と出力ビット変換のコストを排除
  • 実験の結果、低ビットLLMでプロセッサベース実装より優れた性能を示した
  • AIハードウェアの新たな可能性を提示

MVDRAM: 無改造DRAMを活用した低ビットLLM高速化

  • GeMV演算は、大規模言語モデル(LLM)推論における重要なレイテンシボトルネックとして依然残っている
  • Processing-Using-DRAM (PUD) は、DRAMをGeMVエンジンとして再利用できる可能性を持つ
  • しかし、PUDをLLM推論パイプラインに適用すると大きなオーバーヘッドが発生する

MVDRAMの革新的アプローチ

  • MVDRAMは、データ共有パターン数学的線形性を活用して、プロセッサとDRAMを協調動作させる
  • 従来のPUDアプローチのコストを排除し、GeMV演算を高速化する

実験結果

  • 4つのDDR4 DRAMモジュールを用いた実験で、MVDRAMは低ビット(4ビット以下)LLMにおいてプロセッサベース実装より優れた性能を示した
  • 最大7.29倍の高速化と30.5倍のエネルギー効率を達成した

LLM推論全体の改善

  • 2ビットおよび4ビット量子化の低ビットモデルで、それぞれ2.18倍および1.31倍のスループット向上を示した
  • エネルギー効率もそれぞれ3.04倍および2.35倍向上した

AIハードウェアの新たな可能性

  • MVDRAMは、標準DRAMをLLMアクセラレータとして活用できる可能性を実証した
  • AIハードウェアの新たな地平を開く潜在力を持つ

1件のコメント

 
GN⁺ 2025-05-06
Hacker News のコメント
  • 背景資料としては、in-DRAM compute の初期提案の一つである https://users.ece.cmu.edu/~omutlu/pub/in-DRAM-bulk-AND-OR-ie...、既製部品で行った最初のデモ https://parallel.princeton.edu/papers/micro19-gao.pdf、実装ツールである DRAM Bender https://github.com/CMU-SAFARI/DRAM-Bender、そして最近の processing-in-DRAM のサーベイ論文 https://arxiv.org/abs/2412.19275 がある

    • DRAM 内処理は古くからあるアイデアで、90年代にも DRAM バンクを SIMD マシンに変えようとする論文がいくつもあった
      今のアイデアほど巧妙でも発展した形でもなかったが、結局これらの論文は古い発想の最新版に近い
  • 参考文献1番と3番の著者リストが信じられないほど長いのが目につく
    2016年の記事 https://news.ycombinator.com/item?id=12469270 も入っているかと思ったし、2019年の記事 https://news.ycombinator.com/item?id=22712811 は実際に見える
    もちろん DRAM のこうした規格外の動作、特にコピー能力は、悪名高いバグ https://news.ycombinator.com/item?id=5314959 とも関係がある
    複数の人が独立にこの現象を見て、「役に立つ動作かもしれない」と考えたようだ

    • いつかはうちの部署全体、デリの店員、午後2時に公園にいた人たちまで全員を貢献者として載せてみるつもり
    • これは書式のエラーのように見える
      こういうふうに著者リストが巨大な場合、普通は最初の名前だけを書いて残りは “et al.” にする
  • 「メーカーが指定したタイミングパラメータを意図的に破る DRAM コマンドを出して、最大65,536個のビット演算を並列に得る」とは、DRAM トレーニング用バイナリ blob に一泡吹かせている感じだ

  • これは本当に頭がねじ曲がるほど奇妙で、同時に見事に創造的だ
    細部の底の底まで掘り下げることが報われる時がある。素晴らしい

    • こうした動作は、行/列アドレスを多重化した初期の DRAM のころから存在していた
      1973年の Mostek MK4096 でもおそらく可能だったはずで、誰かが見つけるまで半世紀ほどかかったということだ
  • DRAM 自体で行列演算をするということ? 狂っているけど面白い

    • その通りで、驚くことにタイミングパラメータを意図的に破ることで標準 RAM でもこれを実現している
      DRAM 利用処理(PUD)は、DRAM 固有のアナログ的な動作特性を利用し、メモリアレイ内部で高度に並列なビットシリアル計算を可能にする
      既存研究は、市販の既製 DRAM でもハードウェア変更なしにタイミングパラメータを意図的に破れば PUD 機能を実現できることを示している
      中核となる演算は RowCopy と majority-of-X(MAJX)の2つだ。RowCopy はビットラインのプリチャージが終わる前に PRE の直後へ ACT コマンドを出し、同じサブアレイ内の別の行へデータを移すもので、1行のすべてのセルに同時に影響するため、プロセッサが仲介するデータ移動より約100倍速い
      MAJX は同じビットラインを共有する X 個のセルを同時に活性化して多数決を行うもので、市販 DRAM では遅延なしに ACT、PRE、ACT を素早く連続発行することで実装する。これにより2〜32行を同時に活性化でき、65,536列を持つサブアレイ並列性を活用する PUD の基本計算単位になる
    • 何であれLLM 推論を動かすことが、次の「Doom が動く」になりそうだ
  • ハードウェアの世界でも、メーカーがいつか直せるバグを利用するリスクはあるのだろうか?
    ソフトウェアでは、何かの機能を作ったり別のバグを直したりするためにプラットフォームのバグに依存するのは悪い考えだ
    15年後にそのバグが修正されるかもしれず、そうなるとシステムが吹き飛ぶのに、誰も理由が分からないかもしれない
    最近も似たような議論があった気がするが、たぶん何らかの C 関数の未定義動作に関するものだったと思う

    • 低遅延の高頻度取引では、特にネットワークカードでこういうことが起きる
      特定のネットワークカードにバグがあったり、機能の組み合わせが興味深い動作をして、取引会社に有利になる場合がある
      こうしたバグや機能は、バグ修正、あるいはより大きな市場では不要だと判断されるといった理由で消えることもある。そのため企業が特定モデルの残り在庫をすべて買い占めようとすることもある
    • こういうものは通常相互運用性テストの範囲に入るが、たいていはハードウェアではなくファームウェアで緩和する
      最悪の場合、15年前に消えた有名ベンダーのハードウェアとも動くようにしなければならない。大口顧客がその機器を15年間問題なく使ってきて、新しい機器を挿したときに動かなければ、あなたのハードウェアが問題だと見なすからだ
      通信機器では特に重要で、規格に従っていないベンダー向けのあらゆる特殊処理が入る。そして他人のシステムを壊さないよう、そうした特殊処理をファームウェアに残し続けなければならない
      古い機器、すでに消えた会社の機器、現在の競合他社の機器が壁一面を埋め、ロボットアームがケーブルを差しまくっている様子を想像すれば、一部のハードウェア検証ラボがどんなものか感じがつかめる
      マザーボードメーカーのファームウェアも、特定の CPU やチップセットなど向けの特殊処理でいっぱいだ
    • C/C++ の未定義動作は、かなり昔から議論されてきた
      最適化コンパイラと組み合わさったときの影響がより広い一般層に知られるようになったのは2010年ごろ、あるいは2013年ごろと思われ、もう12年以上になる
      この論文はバグに依存しようという内容というより、DRAM で何が可能かを示し、その機能が標準化されることを期待する側に近い
  • 一般行列ベクトル積(GeMV)とは。数学が得意なほうではありません
    3D数学の授業でクォータニオンを学んだとき、グラフィックス開発における行列計算の歴史を少し扱いました。その授業は最初に落としたので、本当に数学向きの人間ではありません
    私の理解では、クォータニオンは行列とほぼ同じくらい正確でありながら計算複雑度がずっと低いので人気を得たようです
    行列の代わりにクォータニオンでLLMを作ろうとした試みはあるのでしょうか? それともクォータニオン最適化はリアルタイムグラフィックスでより有用なのでしょうか?

    • 行列は線形関数を表現する方法です。たとえば、加法やスカラー倍とうまく整合する関数です
      そのうち特定の部分集合は3次元空間の回転を説明するのに使え、議論の余地はありますが、クォータニオンはこれをよりうまく扱えます
      しかしクォータニオンで任意の線形関数を説明することはできないので、LLMには合わないように見えます
    • クォータニオンは固定された4次元しか持ちません
      ニューラルネットワークにははるかに多くの次元が必要です
    • いくつかの概念を混同しているように思います。クォータニオンは複素数と同じカテゴリにあります
      行列で表現でき、実数ではなくクォータニオンを要素として使う行列には、QDNNのような有望な用途もおそらくあるでしょう
      私の経験では、LLMのような大規模構造では、物理学や3Dグラフィックスのように、より精巧なスカラー型で表現する本当の利点がない限り、より単純な形のほうが成功しやすいです
    • コンピュータグラフィックスにおけるクォータニオンの主な利点は、ジンバルロックが発生しない形で回転を表現できる点にあると理解しています
      それ以外にも、そのような回転表現は次元を増やすほどクォータニオンがあまりうまく拡張できません
      複素数は2次元空間の複素表現で、クォータニオンは3次元空間の複素表現であり、4次元に行くには8つの要素を持つオクトニオンが必要です
  • 1997年の元の**Intelligent RAM(IRAM)**資料を引用していないのは、少し非科学的に見えます
    https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=iram...

    • もっと古い資料もある可能性が高いと思います
      ただしIRAMは、メモリチップにALUを追加するニアメモリコンピューティングに近いように見え、インメモリコンピューティングはメモリアレイそのものを使う方向です
      公平に言えば、非常に長いベクトル長を使うディープラーニングが登場する前は、インメモリコンピューティングの魅力はずっと小さかったです。だから人々は、演算をより細かく制御できる方式を作ろうとしていたのだと思います
  • 行列乗算や、もしかすると他の演算も、従来のCPUからDRAMへ移り、意図的なハードウェア支援まで付くことを期待できるのでしょうか?
    こうした処理位置の移動はSamsungのような企業に利点をもたらすのでしょうか? NVIDIAのような企業はどこに位置することになるのでしょうか?

  • 面白いハックです。論文は読んでいませんが、こうした演算は熱的に不安定になりそうです
    そうすると、LLMの推論結果が周囲温度によって変わることもあり得そうです :-)

    • その通りですが、影響はわずかです
      詳しくは論文を読むか、“temperature”で検索してみるとよいです