Submission + - Animation Explains Multi-GPU Load-Balancing Tasks and Memory
Scott Michaud writes: While DirectX 12, Mantle, and Vulkan allow developers to list all GPUs in a system, and communicate with them individually, Crossfire and SLI accomplished that task in DirectX 11 and OpenGL. Apart from the very early implementations, which interleaved monitor scanlines (or otherwise cut up a single frame) between devices, these systems used the Alternate Frame Rendering (AFR) algorithm to divide work. Because neighbouring frames require roughly the same amount of work, and old APIs submit work through restrictive interfaces, memory was mirrored across GPUs and, except for AMD's Hybrid Crossfire and LucidLogix HYDRA Engine, GPUs needed to be roughly identical. The new APIs open the dialogue between software and hardware, but the load balancing algorithms, themselves, have their own limitations.