Queued Linux Patches To Better Track AVX-512, Allowing For More Optimal Task Placement
After going through several rounds of patch review in recent months, a patch series providing for tracking AVX-512 usage of tasks and exporting it to user-space is poised to be part of the upcoming Linux 5.1 kernel.
As using complex AVX-512 operations can lead to lower turbo frequencies for those cores, the Linux kernel will be providing better tracking of AVX-512 usage of tasks that is readable by user-space for programs doing their own task placement. If keeping AVX-512 usage to particular core(s) and not intermixing them with non-AVX tasks, better performance can be achievable due to the differing turbo frequencies of CPUs when running Advanced Vector Extensions.
This patch to track AVX-512 usage of tasks is now queued in the x86/fpu Git branch ahead of the Linux 5.1 cycle.
Separately there are also patches pending to expose the AVX-512 usage elapsed time via the /proc/pid/status with a new AVX512_elapsed_ms metric that provides a hint whether AVX-512 was ever used by that process and if so roughly how long ago.
This AVX-512 usage tracking is said to be useful for real-world workloads like TensorFlow and Linpack but no performance details were shared to quantify the impact.
With expanded AVX-512 rolling out to more processors with Icelake later this year, the timing is good for getting these additional bits into the kernel. AVX-512 is supported by current Skylake-X and Xeon Scalable processors as well as Xeon Phi and friends.
As using complex AVX-512 operations can lead to lower turbo frequencies for those cores, the Linux kernel will be providing better tracking of AVX-512 usage of tasks that is readable by user-space for programs doing their own task placement. If keeping AVX-512 usage to particular core(s) and not intermixing them with non-AVX tasks, better performance can be achievable due to the differing turbo frequencies of CPUs when running Advanced Vector Extensions.
This patch to track AVX-512 usage of tasks is now queued in the x86/fpu Git branch ahead of the Linux 5.1 cycle.
Separately there are also patches pending to expose the AVX-512 usage elapsed time via the /proc/pid/status with a new AVX512_elapsed_ms metric that provides a hint whether AVX-512 was ever used by that process and if so roughly how long ago.
This AVX-512 usage tracking is said to be useful for real-world workloads like TensorFlow and Linpack but no performance details were shared to quantify the impact.
With expanded AVX-512 rolling out to more processors with Icelake later this year, the timing is good for getting these additional bits into the kernel. AVX-512 is supported by current Skylake-X and Xeon Scalable processors as well as Xeon Phi and friends.
9 Comments