📖

Vulkan で GPU memory のページングしたいメモ

2023/05/25に公開

VK_EXT_pageable_device_local_memory でいけそうです.

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pageable_device_local_memory.html

サポートされるのは, AMD では Pro(proprietary) driver(少なくとも MESA RADV driver ではサポートされていなかった), NVIDIA では Windows ではサポート

最近(2023/05/25)では, NVIDIA Linux ではようやくベータ対応が始まりました.

https://forums.guru3d.com/threads/nvidia-vulkan-beta-driver-531-98.447912/

ふるまいは?

OS でページング管理されるようになります.
これにより, アプリ側で明示的なページング処理しなくても, OS が行ってくれて, 多少 GPU の実メモリサイズを超えるメモリ確保が行われてても out-of-memory error 出さずにうまくいくと思われます
(サンプルコードが無いので実際の振る舞いはよくわからない)

ただ, CPU での paging と同様に, 頻繁に pagein/pageout するような場合は極端に性能が低下してしまうでしょう. ある程度はアプリ側でメモリアクセスを把握しておいてうまくやる必要があるでしょう.

Discussion