📖
Vulkan で GPU memory のページングしたいメモ
VK_EXT_pageable_device_local_memory
でいけそうです.
サポートされるのは, AMD では Pro(proprietary) driver(少なくとも MESA RADV driver ではサポートされていなかった), NVIDIA では Windows ではサポート
最近(2023/05/25)では, NVIDIA Linux ではようやくベータ対応が始まりました.
ふるまいは?
OS でページング管理されるようになります.
これにより, アプリ側で明示的なページング処理しなくても, OS が行ってくれて, 多少 GPU の実メモリサイズを超えるメモリ確保が行われてても out-of-memory error 出さずにうまくいくと思われます
(サンプルコードが無いので実際の振る舞いはよくわからない)
ただ, CPU での paging と同様に, 頻繁に pagein/pageout するような場合は極端に性能が低下してしまうでしょう. ある程度はアプリ側でメモリアクセスを把握しておいてうまくやる必要があるでしょう.
Discussion