我制作了一个游戏(使用 Unity),它由两个开源机器学习模型 VQGAN-CLIP 和 GPT-NEO(通过 pyinstaller 转换为 exe)提供支持,同时运行。
VQGAN-CLIP 在后台生成图像,而 GPT-NEO 需要定期生成文本。当 GPT-NEO 在 VQGAN-CLIP 生成某些东西时被调用时,MSI Afterburner 显示 VRAM 使用量超过最大值,或者已经达到最大值,并且我在 VRAM 交换时整个系统冻结了大约 1 秒(我确认它仅当两者同时运行时才会发生,而不是仅在其中一个运行时发生)。我正在使用具有 8GB VRAM 的 RTX 2060S。
此外,我有 64 GB 内存,而且使用量远不及那里,所以它只交换到 RAM 而不是 SSD。
在 VQGAN-CLIP 完成生成图像之前阻止 GPT-NEO 是不可行的,因为生成 1 张图像可能需要 30-60 秒,这在轮次之间等待的时间太长。
我的问题是:这绝对是不可避免的,还是有一种解决方法可以在不冻结整个系统的情况下交换 VRAM,或者更好的是游戏本身?