Intel's Open-Source Compute Stack Continues Work Towards Multi-GPU Support
With Intel's Linux graphics driver being designed around their long history of integrated graphics, it has taken a lot of reworking over the past year in getting it ready for the concept of dedicated video memory as well as the prospects of multi-device support where the Intel kernel graphics driver may be dealing with two Intel GPUs on the same system -- an iGPU and dGPU or even multiple dGPUs, a concept never previously relevant to their driver code. Thus there has been some hiccups like currently needing to use virtualization with two kernels like in the instance of making use of Xe MAX graphics. All of that though is being worked through and with a mainline kernel in the hopefully not distant future will gracefully jive with multiple Intel graphics adapters.
When it comes to the user-space Intel compute code working with multiple Intel (graphics) devices, there is recent work going on there as well.
Released today was Intel Compute Runtime 21.04.18912 as their newest open-source compute stack for OpenCL and oneAPI Level Zero. The release notes do make mention of the new multi adapter support for the Level Zero metrics API.
Aside from the metrics API being extended to handle multiple devices, there are other code commits in relation to multiple device work. There has been some code work around handling multiple device SVM (Shared Virtual Memory) arguments, unlocking multiple device setup for shared allocations, etc. During the course of November and December were other "multi device" related patches as well landing in the Compute Runtime stack.
Long story short, by the time the kernel driver is handling multiple Intel graphics devices gracefully on Linux, the compute stack will hopefully be ready as well.
As part of today's Intel Compute Runtime update is also pulling in the recently released IGC 1.0.6083. With this week's Intel Graphics Compilter update are more updates around Alder Lake S and Rocket Lake worth noting as well as many other low-level code improvements.