WindowsでローカルLLMが快適に? 開発中ビルドで見つかった「AI向けメモリ割り当て機能」の正体
Windowsの開発中ビルドに「AI向けメモリ割り当て機能」を発見

Windows Insider ProgramのExperimental Channel(Future Platforms)で配信されている「Build 29648.1000」に、GPUやNPU向けのメモリ割り当てを設定する「Memory for graphics and AI acceleration」という機能が存在することが、X(旧Twitter)ユーザーのXeno氏の報告で明らかになった。この機能は、ローカルLLM(大規模言語モデル)の実行に有効とみられる。

「Unified Memory」設定の詳細

システム設定の詳細にある「Unified memory」の項目で、メモリを画像処理やAIのアクセラレーションに割り当てる設定が可能だ。Xeno氏のスクリーンショットでは、「Don't allow」「Recommended」「High」「Maximum」「Custom」の5つの選択肢があり、通常は「Recommended」がデフォルトになっているようだ。

Windowsでタスクマネージャーを起動してGPUの項目を確認すると、一般にGPUへのメモリ割り当ては「搭載メモリの約50%を上限」としている。外付けGPUかCPU内蔵GPUかによっても異なるが、GPU向けのメモリは最低限を確保しつつ、必要に応じてメインのヒープ領域との間でダイナミックに割り当てが行われる。

Pickt横長バナー — Telegram用の共同買い物リストアプリ

Windowsにおける伝統的な仕様といえるが、ここで50%を上限としているのは、GPUにメモリを割り当てすぎて本体の動作が不安定にならないための工夫だとされる。今回の新機能は、GPU(ならびにNPU)に割り当てられるメモリを事前に予約し、50%の壁を破りつつ、ダイナミックなページングが行われない形で安定動作可能なメモリ領域を確保するものとなる。

ローカルLLM実行への影響

ローカルAIのためにLLMをオンメモリで動作させる場合、まずメモリ帯域が重要となる。次に、高いパラメーターを持つLLMの場合はオンメモリ動作のための大容量メモリが必要だ。特にコーディング支援や自律型AIエージェントを動作させる場合など、過去の対話履歴や巨大なソースコードをプロンプトに取り込むため、コンテキストウィンドウが肥大化する。

この高速処理のためにKVキャッシュと呼ばれる領域が必要となるが、その際に大容量のメモリが使われるので、高速かつ大容量のUnified Memoryが求められるというわけだ。

注意点としては、前述のWindows Centralの記事でも触れられていたように、現状でUnified Memoryを搭載したPC、具体的にはNVIDIA RTX SparkやAMD Ryzen AI MaxなどのSoCやAPUのみがその対象となる。AI処理には高速GPUや大きな処理能力を備えたNPUが必要だが、特にグラフィックスカードでは備え付けの高速メモリ容量が少なく、ある程度の性能を持ったローカルAIを実行するのに最低限の水準と考えられる16GBを確保するのも簡単ではない。

その意味で、現状ではまだ「選ばれた」Windows PCのみが利用できる専用オプションだといえるかもしれない。

開発段階の機能に注意

もう1つの注意点として、今回の「Memory for graphics and AI acceleration」はMicrosoft側で公式には説明していない実験段階の実装であり、該当の「Build 29648」をUnified Memoryに対応したPCに導入したとしても、必ずしも項目が出現するとは限らない。

記事中でも言及されているように、ViVeToolなどでDLL内のAPIを直接呼び出すような仕組みを利用しない限り、機能自体が利用できない可能性がある。

Pickt記事後バナー — 家族イラスト付きの共同買い物リストアプリ