Intel GPU @ Linux

Dark Kaeser

Bom após a criação dos "novos driver" Iris (OpenGL) e Neo (OpenCL), a Intel agora divulgou o estado da nação relativamente aos drivers Linux para GPU e para os GPU para o mercado de servidores.

Lisa Pearce as Intel's Graphics Software Engineering Director presented during the briefings on their Linux graphics driver and preparing for them for the data center. She noted how just two years ago only around ~10% of their driver code was re-used across platforms (namely Windows and Linux) and their Linux driver delivered roughly 60% the performance of Windows. They also officially only supported one distribution.


But now as we approach 2021, there is around ~60% code re-use and the Linux performance is at 90~100% that of Windows and are validating on all three major enterprise Linux distributions. The relative performance for 3D is at roughly 90% depending upon quality of the Linux game port or if native, among other factors, while the compute performance is roughly on par between Windows and Linux.


Linux Is Riding High For Intel Graphics
Afterwards I was able to talk more with Lisa about the company's current trajectory around their open-source/Linux driver efforts. Of the ~60% driver code in common between platforms, it boils down to the Intel Graphics Compiler (IGC) and Media/Compute components being shared now across Windows and Linux. The OpenGL and Vulkan drivers and the kernel mode drivers remain separate code-bases. This recent push around ramping up their Linux driver efforts come down squarely on their data center ambitions. Since ~2018 when forming their GPU plans for the data center they began integrating their formerly separate Linux graphics driver team and making other fundamental changes to bolster their Linux support.

A few months ago I reported on Intel's Windows driver beginning to use IGC and there was even an internal prototype for Mesa. In speaking with Lisa, that IGC work for Mesa is advancing. In adapting their ANV Vulkan driver to use IGC rather than their internal Intel Mesa compiler is yielding promising performance results that appear to be measurably faster than the current compiler. Intel is also looking at using IGC for their Iris Gallium3D OpenGL driver too but the Vulkan driver is understandably the immediate focus. Right now on Linux the Intel Graphics Compiler is just used by their OpenCL/Level-Zero compute stack.

While providing faster performance and more code re-use across platforms, there are implications though on Intel's Mesa drivers using IGC: the Intel Graphics Compiler would be a new build dependency for Mesa and Linux distributions would need to begin packaging it, adding to additional size on the image. The Intel IGC core binary comes in at roughly an additional 30MB to be squeezed on Linux desktop ISOs.
GUI Control Panel For Linux?
Also notable on the Intel Linux graphics driver radar for 2021 is possibly having an Intel Command Center / graphics driver control panel. Right now Intel's Linux driver stack already exposes most of the tunables that can be found within Intel's Windows driver area, but not GUI driven. Much of the tunables and monitoring interfaces for the Intel Linux driver are only accessible via command-line interfaces, setting not always well documented environment variables or module parameters, etc.
Linux 5.12 Bringing VRR / Adaptive-Sync For Intel TIger Lake / Xe Graphics

The VRR/Adaptive-Sync support for the latest-generation Intel graphics with Tiger Lake and the likes of the forthcoming Rocket Lake, Alder Lake, and discrete DG1 graphics is now in order for the mainline kernel. The VRR enabling for Tiger Lake and newer was sent in this morning to DRM-Next ahead of the Linux 5.12 kernel. This effort has been going on for many months while now has reached the stage that it's ready for merging.

This support is exposed only for DisplayPort / eDP connections. The lack of HDMI interface support appears to be due to the same reason AMD can only provide open-source VRR/Adaptive-Sync over DisplayPort and not HDMI: the HDMI Forum preventing so in closing up the public specification access and in turn preventing open-source GPU drivers from divulging any non-public portions of the spec.
Intel Linux Driver Patches Yield 10~63% Faster Performance For Select Gen12/TGL GPUs
It turns out there is a sizable performance bottleneck right now in the Intel Gen12 graphics driver support on Linux when using hardware with less than 96 execution units. In turn with patches to address this shortcoming, OpenGL/Vulkan performance improvements can be north of 10% to 63% faster compared to the current state.
The improvement hasn't yet been merged into Mesa as it's awaiting more widespread testing first on different Intel graphics hardware in other EU configurations. Those with Gen12 graphics wanting to test (or Gen11 Ice Lake to ensure no regressions) can find these exciting patches via this MR.
Intel's Linux Compute Stack Now Boasts Production-Ready OpenCL 3.0, Integrates IGSC FU

Even in the months of the "beta" support, OpenCL 3.0 with the Intel Compute-Runtime has been working well for me from Gen9 Skylake graphics through Gen12 Tiger Lake.
The Intel Compute Runtime stack for Linux systems also exposes oneAPI Level Zero 1.1, which continues to be advertised as "pre-release" support.
Intel Lands 20~40% Performance Optimization For Arc Graphics In Mesa 22.0

This optimization work has been found to improve the performance in non-trivial workloads by 20~40% on all DG2 platforms tested, both for OpenGL and Vulkan. The Mesa driver optimization work amounts to just about 200 lines of new code.

Besides Mesa 22.0+, the Intel Linux kernel graphics driver changes for DG2/Alchemist continue to land and will necessitate a very bleeding edge kernel...

Bom o lançamento ainda deve demorar mais uns tempos, pelo que possivelmente já haverá o kernel 5.17 com suporte no lançamento.

Intel Arc Graphics vs. AMD Radeon vs. NVIDIA GeForce For 1080p Linux Graphics In Late 2023​

Today's article is offering a fresh look at the Linux gaming/graphics performance in the mid-range space with a focus on 1080p. For this fresh comparison was Ubuntu 23.10 with the Linux 6.6-rc5 kernel in use. The Intel and AMD Radeon graphics were running on Mesa 23.3-devel via the Oibaf PPA as of 14 October. On the NVIDIA side was the same system hardware/software but using the NVIDIA 545.23.06 Linux driver as the latest at the time.
The graphics cards tested for this 1080p-focused Linux gaming comparison included:

- Intel Arc Graphics A380
- Intel Arc Graphics A580
- Intel Arc Graphics A750
- Intel Arc Graphics A770
- AMD Radeon RX 6600
- AMD Radeon RX 6700 XT
- AMD Radeon RX 6750 XT
- AMD Radeon RX 6800
- AMD Radeon RX 6800 XT
- AMD Radeon RX 7600
- AMD Radeon RX 7700 XT
- AMD Radeon RX 7800 XT
- NVIDIA GeForce RTX 3060
- NVIDIA GeForce RTX 3060 Ti
- NVIDIA GeForce RTX 3070
- NVIDIA GeForce RTX 3070 Ti
- NVIDIA GeForce RTX 3080
- NVIDIA GeForce RTX 4060

For 1080p Linux gaming the Intel Arc A580/A750/A770 often delivered playable frame-rates but tended to lag behind the AMD and NVIDIA competition. The gaming/graphics performance wasn't nearly as competitive as the recent OpenCL GPU compute benchmarks between Intel and NVIDIA. In some of the graphics benchmarks though the Arc Graphics did compete quite well giving to hope that the new Xe DRM kernel driver and further Iris/ANV Mesa driver tuning may help to chip away some of the results with much wider differences between Intel and the competition. In any event especially the Arc Graphics A580 it proved to be quite interesting in not being too far behind the A750/A770 series while retailing for less than $200 USD and being backed by fully open-source and upstream Linux graphics driver support.
Só por ser menos de $200 parece que estão a fazer um favor aos consumidores. Acho que deviam incluir gráficos integrados e placas de gama de entrada mesmo de gerações anteriores nessa tabela para se ter uma visão realista do que são "só $200".
Tem resultados OK em OpenCL, mas qual a utilidade disso? Continua a anos luz do CUDA em termos de aplicações disponíveis.