NVIDIA GPUのVRAMをLinuxのスワップ領域として利用する方法
Use your Nvidia GPU's VRAM as swap space on Linux
Linux上でNVIDIA GPUのVRAMをスワップスペースとして活用する技術が紹介されている。この技術は、特にアップグレードパスのないノートPCで有効であり、8GBのVRAMを持つRTXカードなどをSSDへのスワップよりも活用する。RTX 3070 Laptop (8GB VRAM)でテストされ、7GBをスワップに割り当てた結果、zramとSSDスワップと合わせてアドレス可能なメモリを3倍に増やした。この仕組みは、CUDAドライバーAPI経由でVRAMを確保し、NBDプロトコルでブロックデバイスとして提供することで実現される。これにより、カーネルモジュールの必要がなく、カーネルやドライバーのアップデートにも対応可能。従来の直接VRAMをCPUからアクセスさせるアプローチは、GeForce GPUではNVIDIAドライバーの制限により実現できなかったが、NBDアプローチはこの制限を回避する。利用にはCUDA対応のNVIDIA GPU、libcuda.so.1を含むNVIDIAドライバー、Linuxカーネル3.0以上、nbd-clientパッケージが必要。インストールはgit cloneしたリポジトリのinstall.shスクリプトで行い、systemctlでサービスを起動・管理する。VRAMスワップのサイズや優先度は設定ファイルで調整可能で、電源管理機能も備わっている。テストスクリプトも提供されており、シーケンシャルスループットは約1.3GB/sを記録している。
- Linux上でNVIDIA GPUのVRAMをスワップ領域として活用する手法が公開された
Linux上でNVIDIA GPUのVRAMをスワップ領域として利用する手法が公開された点に注目。特に、ノートPCユーザーがハードウェアアップグレードなしでメモリ容量を実質的に拡大できる点は、CUDA対応GPUを搭載したマシンの延命策として有力。従来のカーネルモジュール方式と異なりNBDプロトコルを採用することでカーネルやドライバ更新の影響を受けにくく、実用性が高い。ただし、本技術はコミュニティ駆動のオープンソースプロジェクトであり、企業による正式サポートや製品化は伴っていない点に留意が必要。