Closed Sheep9341 closed 1 month ago
多 GPU 支持在 #549 讨论过。这里再深入讨论一下:
不可行,问题在于效果是串行执行的,前一个效果的输出作为后一个效果的输入,因此即使让不同的效果在不同的 GPU 上渲染,同步问题也会强迫 GPU 串行执行。
这取决于通道的组织方式。有些效果的通道是串行的,出于和 1 同样的理由,多 GPU 没有意义。有些基于机器学习的效果确实可以部分并行执行。
理论上可行。
实现上考虑,D3D11 不支持在 GPU 间共享纹理,必须以内存作为中介,因此 GPU 同步相当慢,甚至抹平并行渲染得到的性能提升;考虑到能并行的粒度很小(因为只有部分通道可以并行执行),同步会经常发生,可能反而会导致性能下降。
D3D12 对多 GPU 的支持更好,但它的开发难度很高。
出于以下理由,无法实现多 GPU 支持:
虽然 Magpie 无法提供多 GPU 支持,使用 Sli/Crossfire 是可行的,但这两个技术好像不再支持消费级显卡了。
Expected behavior 预期的功能
对于超分辨率的高性能需求, 希望可以探索「多gpu协同」功能的可能性。 例如加入为每个缩放效果分配gpu的选项, 或者分配先后调用顺序。 这样对于(特别是Galgame)玩家而言, 就可以充分利用到多个gpu的性能。
以1280x720的画面为例子: 先让核显跑较简单的Anime4K_Upscale_S > Bicubic, 再让独显跑较复杂的Anime4K_Upscale_Denoice_UL等等。 利用多GPU分担部分负载,实现渣机更高超分辨率配置。
同时,考虑到某些玩家是远端游戏、 笔记本没有独显直连、 使用无输出接口的矿卡(例如p106)、 笔记本外接显卡回传输内屏显示 等等不从独显输出画面的情况, 期望可以自由选择gpu输出顺序, 以便做到可选让核显输出画面。
由于缺乏相关知识,我提出的想法可能不切实际或者难以实现, 但仍然想知道实现的可能性,如有不便敬请原谅
Alternative behavior (optional) 近似的功能(可选)
No response