DCC: Data-Centric Compilation of Machine Learning Kernels for Processing-In-Memory Architectures
本論文は、メモリアクセスの不一致を克服するためにデータ再配置と計算コードを共同最適化する処理内メモリ(PIM)システム向け初のデータ中心コンパイラである DCC を提案し、多様な PIM アーキテクチャにおいて機械学習カーネルおよび大規模言語モデル推論で大幅な高速化を実現する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたが特定の質問に答えるために特定の書籍(データ)を見つける必要がある巨大な図書館(機械学習モデル)を運営していると想像してください。
問題:2 種類の異なる司書スタイル
従来のコンピュータでは、巨大な中央事務所で働く超高速な司書(GPU)がいます。この司書が高速に作業するためには、書籍が特定の方法で配置されている必要があります。つまり、Book 1、Book 2、Book 3 は異なる棚に置かれていなければなりません。そうすれば、司書は異なる通路からそれらを同時に取り出すことができるからです。
しかし、あなたには本棚のすぐ隣で働く、新しい超効率的なアシスタント(PIM 装置)もいます。このアシスタントは読み取りにおいて驚くほど速いですが、自分専用の特定の棚にある本にしか手が届きません。もし本が異なる通路に散らばっていれば、アシスタントは行き来しなければならず、それは遅くなります。
この新しいアシスタントを使うためには、本を取り出して、Book 1、2、3 をすべてアシスタントのために同じ棚に並べ替え、彼に作業を行わせ、その後、本を再び中央事務所の形式に戻すために並べ替える必要があります。
従来の方法:手作業による処理
以前は、プログラマーがこれらの本を並べ替える最善の方法を手動で見つける必要がありました。彼らは推測しなければなりませんでした。「この棚に 10 冊置くべきか?それとも 20 冊か?」もし推測が間違っていれば、アシスタントは実際に本を読む時間よりも、並べ替える時間の方が長くなってしまいます。これは、時計の針が刻む中で手作業で図書館を整理しようとするようなものでした。それは遅く、ミスが起こりやすく、異なる図書館(異なるハードウェア)には完全に異なる並べ替えルールが必要でした。
解決策:DCC(賢い司書のアシスタント)
この論文は、この図書館のための「マスタープランナー」として機能する新しい「スマートシステム」であるDCCを紹介しています。DCC は、アシスタントに何を読むかを指示するだけでなく、本を並べる最善の方法と、アシスタントに読ませる最善の方法を同時にすべて計算します。
以下は、単純な比喩を用いた DCC の仕組みです。
万能翻訳機(マルチレイヤー抽象化):
異なる図書館には異なるレイアウトがあります(通路が 4 本あるものもあれば、8 本あるものもあります)。DCC は万能言語を話します。サムスン製の図書館を使っているのか、SK ハイニックス製の図書館を使っているのかは関係ありません。DCC は「本の並べ替えルール」を理解できる形式に変換するため、あらゆるハードウェアと連携して動作できます。「もしも」シミュレーター(データ中心のスケジューラ生成):
推測する代わりに、DCC は頭の中で何千ものシミュレーションを実行します。「もし A 棚に 4 冊置いたらどうなる?8 冊ならどうなる?」と問いかけます。並べ替え時間と読み取り時間の全体のプロセスを見ます。- 従来の方法: 「読み取りを超高速にしよう!」(並べ替えに永遠がかかることを無視する)。
- DCC の方法: 「読み取り計画を少し変えれば、並べ替え時間を半分に減らせる。それが真の勝者だ」。本を移動させる時間と読む時間の完璧なバランスを見つけます。
速度予測器(結合パフォーマンス予測器):
DCC は、何千もの試合を見てきたベテランのコーチのようです。どの計画が勝つのかを知るために、すべてのシミュレーションを実行する必要はありません。それは「学習モデル」を使用して、最速の計画を瞬時に予測します。つまり、悪いアイデアをテストする時間を無駄にしません。交通管理者(コード最適化器):
DCC が最善の計画を選んだら、交通を整理します。アシスタントが本を取り出す際、完璧なバッチ(一度に本を山のように取り出すような)で取り出されるように保証し、次の本を待つ時間が無駄にならないようにします。
結果:どれほど速くなったか
この論文は、テキストを記述したり質問に答えたりする AI(大規模言語モデル)を実行するなど、実世界のタスクでこのシステムをテストしました。
- 速度向上: ある種類のハードウェア(AttAcc)では、DCC はメインのコンピュータ(GPU)のみを使用する場合と比較して、AI を13 倍高速化しました。別の種類(HBM-PIM)では、7.7 倍高速でした。
- 実世界テスト: AI との完全な会話(GPT-3 や LLaMA-2 のようなもの)を実行する場合、DCC は平均してプロセス全体を4.5 倍高速化しました。
- 「魔法」のトリック: 最大の驚きは、従来の手法が「読み取り」部分だけを高速化することに焦点を当てていたことです。DCC は、「並べ替え」部分が実際にはボトルネックであると認識しました。並べ替えと読み取りを同時に修正することで、莫大な速度向上を可能にしました。
まとめ
DCC を、混雑する都市の究極の交通管理者だと考えてください。以前は、信号機は車がどれほど速く走れるかだけに基づいて設定され、交差点での渋滞は無視されていました。DCC は地図全体を見渡し、渋滞が問題であることを認識し、信号機のタイミングと道路のレイアウトを同時に変更することで、都市全体をはるかに速く動かします。
この論文は、これらの新しいメモリデバイスにおける AI タスクに対して、この「結合最適化」を行う最初のシステムであると主張しており、AI の未来にとってこれらを実用的かつ驚異的に高速なものにすると述べています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。