bircoph / kernel_gcc_patch

Kernel patch enables gcc optimizations for additional CPUs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#Kernel_gcc_patch Kernel patch adds additional CPU options to the Linux kernel accessible under: Processor type and features ---> Processor family --->

Why a specific patch? The kernel uses its own set of CFLAGS, KCFLAGS. For exmaple, see:

  • arch/x86/Makefile
  • arch/x86/Makefile_32.cpu
  • arch/x86/Kconfig.cpu
CPU Family GCC Optimization
Native optimizations autodetected by GCC -march=native
AMD K10-family -march=amdfam10
AMD Family 10h (Barcelona) -march=barcelona
AMD Family 14h (Bobcat) -march=brver1
AMD Family 15h (Bulldozer) -march=bdver1
Piledriver Family 15h (Piledriver) -march=bdver2
Intel 1st Gen Core i3/i5/i7-family (Nehalem) -march=corei7
Intel 2nd Gen Core i3/i5/i7-family (Sandybridge) -march=corei7-avx
Intel 3rd Gen Core i3/i5/i7-family (Ivybridge) -march=core-avx-i
Intel 4th Gen Core i3/i5/i7-family (Haswell) -march=core-avx2

#Benchmarks ##Intro Three different machines running a generic x86-64 kernel and an otherwise identical kernel running with the optimized gcc options were tested using a make based endpoint.

##Conclusion There are small but real speed increases to running with this patch as judged by a make endpoint. The increases are on par with the speed increase that the upstream sanctioned core2 option gives users, so not including additional options seems somewhat arbitrary to me.

##Details

  1. Three test machines: Intel Xeon X3360, Intel i7-2620M, Intel Core i7-3660K.
  2. All ran the make benchmark (linked below) 35 times while booted into a 'generic' kernel. Then all ran the same make benchmark 35 times after booting into an optimized kernel. Below are the optimizations chosen for each machine.
    • X3360 = core2
    • i7-2620M = corei7-avx
    • i7-3660K = core-avx-i
  3. Results were analyzed for statistical significance via ANOVA plots that clearly show statistically significant albeit small differences.

##Discussion

  1. All the assumptions for ANOVA are met:
    • Data are normally distributed as show in the normal quantile plots.
    • The population variances are fairly equal (Levene and Barlett tests).
  2. The ANOVA plots clearly show significance.
    • Pair-wise analysis by Tukey-Kramer shows significance at the 0.05 level for all CPUs compared.

Below are the differences in median values:

CPU Difference in median value
core2 +87.5 ms
core7-avx +79.7 ms
core-avx-i +257.2 ms

##References

##Credit

##Data ###Corei7-avx vs. Generic corei7avx

###Core-avx-i vs. Generic coreavxi

###Core2 vs. Generic core2

About

Kernel patch enables gcc optimizations for additional CPUs.