# Skylake vs Sandy bridge compililation speed [Solved]

## 341438

Hello,

I have recently changed my laptop with a Sandy Bridge cpu for a new Skylake. At the beginning, my Skylake seemed to be much faster,

but with the time, I have some doubts. For example I tried to compile ffmpeg. On my Skylake laptop I needed 9 minutes and 7 minutes on my Sandy

Bridge. When I did the comparison I had more flags set on my computer with Sandy Bridge. 

Both computer have a SSD, my computer with Skylake has 8Gb Ram, the computer with Sandy Brigde 4Gb Ram. My make .conf for Skylake:

```
$ cat /etc/portage/make.conf

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-march=native -O2 -pipe"

CXXFLAGS="${CFLAGS}"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="x86_64-pc-linux-gnu"

# These are the USE flags that were used in addition to what is provided by the

# profile used for building.

USE="bindist mmx sse sse2 alsa"

PORTDIR="/usr/portage"

DISTDIR="${PORTDIR}/distfiles"

PKGDIR="${PORTDIR}/packages"

MAKEOPTS="-j4"

ACCEPT_KEYWORDS="~amd64"

INPUT_DEVICES="synaptics evdev"

CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

```

When I compiled on my Skylake laptop, almost 100% of Cpu was used for the compilation. At the same time firefox was running, but I didn't surf a lot. The processor of the Skylake:

```
$ cat /proc/cpuinfo 

processor   : 0

vendor_id   : GenuineIntel

cpu family   : 6

model      : 78

model name   : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

stepping   : 3

microcode   : 0x5c

cpu MHz      : 400.000

cache size   : 4096 KB

physical id   : 0

siblings   : 4

core id      : 0

cpu cores   : 2

apicid      : 0

initial apicid   : 0

fpu      : yes

fpu_exception   : yes

cpuid level   : 22

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1

bugs      :

bogomips   : 5615.64

clflush size   : 64

cache_alignment   : 64

address sizes   : 39 bits physical, 48 bits virtual

power management:

processor   : 1

vendor_id   : GenuineIntel

cpu family   : 6

model      : 78

model name   : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

stepping   : 3

microcode   : 0x5c

cpu MHz      : 400.000

cache size   : 4096 KB

physical id   : 0

siblings   : 4

core id      : 1

cpu cores   : 2

apicid      : 2

initial apicid   : 2

fpu      : yes

fpu_exception   : yes

cpuid level   : 22

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1

bugs      :

bogomips   : 5615.64

clflush size   : 64

cache_alignment   : 64

address sizes   : 39 bits physical, 48 bits virtual

power management:

processor   : 2

vendor_id   : GenuineIntel

cpu family   : 6

model      : 78

model name   : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

stepping   : 3

microcode   : 0x5c

cpu MHz      : 400.000

cache size   : 4096 KB

physical id   : 0

siblings   : 4

core id      : 0

cpu cores   : 2

apicid      : 1

initial apicid   : 1

fpu      : yes

fpu_exception   : yes

cpuid level   : 22

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1

bugs      :

bogomips   : 5615.64

clflush size   : 64

cache_alignment   : 64

address sizes   : 39 bits physical, 48 bits virtual

power management:

processor   : 3

vendor_id   : GenuineIntel

cpu family   : 6

model      : 78

model name   : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

stepping   : 3

microcode   : 0x5c

cpu MHz      : 400.000

cache size   : 4096 KB

physical id   : 0

siblings   : 4

core id      : 1

cpu cores   : 2

apicid      : 3

initial apicid   : 3

fpu      : yes

fpu_exception   : yes

cpuid level   : 22

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_noitfy hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1

bugs      :

bogomips   : 5615.64

clflush size   : 64

cache_alignment   : 64

address sizes   : 39 bits physical, 48 bits virtual

power management:

```

Is it possible, that Skylake is not much faster ? Or is perhaps something wrong on my configuration ? I tried to recompile my kernel without improvement. 

Even if I compile with tmpfs, it's not better.Last edited by 341438 on Wed Apr 06, 2016 9:54 am; edited 1 time in total

----------

## Roman_Gruber

well

 *Quote:*   

> Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

 

Powersave cpu, does not have many cores or speed.

When you want a decent laptop regarding computation power never buy those cpus with ends with U (power save ones)

some even have only 2 coes and 4 threads. i suspect your cpu is also such one (notebookcheck or intel has a page about your cpu when you are interested)

---

 *Quote:*   

> Intel Skylake-S CPU
> 
> Processor Name	Frequency (GHz)	Cache
> 
> i7-6700K	4.00	8 MB
> ...

 

https://en.wikipedia.org/wiki/List_of_Intel_Core_i7_microprocessors#Skylake_microarchitecture_.286th_generation.29_2

 *Quote:*   

> 2.7 Skylake microarchitecture (6th generation)
> 
>     2.7.1 "Skylake-H" (MCP, quad-core, 14 nm)
> 
>     2.7.2 "Skylake-U" (dual-core, 14 nm)
> ...

 

some laptops use desctop cpus as listed above, some use both types as in section 2.7 above

I would not expect much of dual cores, and especially skylake. previous generation of i7 / i5 has higher benchmarks with a bit more power consumption, cpus which start with 5xxx from intel.  reference userbenchmarks (check google)

---

i suggested my brother this hardware msi-gp72-2qei7161

we got it for ~900 euros a few weeks ago, specs in german, but i am sure you understand the raw facts anyway.

Intel® Core™ i7-5700HQ Prozessor (bis zu 3,70 GHz mit Intel Turbo-Boost-Technik 2.0, 6 MB Intel® Smart-Cache)

• 43,9 cm (17,3") entspiegeltes 1920 x 1080 Full HD LED TFT

• NVIDIA® GeForce® GTX 950M mit 2 GB Grafikspeicher

• 16 GB RAM, 1000 GB Festplatte, DVD Brenner

• HDMI, Mini DisplayPort 1.2, USB 3.0, WLAN 802.11ac/a/b/g/n, Bluetooth 4.0

• 2,3 kg, Microsoft® Windows® 10 Home (64 Bit)

the only drawback is a bit too less lumen for the screen.

--

summary, you bought a dual core cpu with powersaving features.

----------

## Roman_Gruber

you may go ~amd64 wiht gcc 5.3 + a special set up kernel (experimental flag for gentoo-sources + optimization turned on in kernel for skylake)

do not expect too much but it had some impact on ivybridge, i switched last september from penryn to ivybridge notebook cpus.

----------

## 341438

I was convinced there is something wrong. I think it's a cpu with U (6600U), because it's a notebook. The problem was: I was

compiling and the battery of the laptop was used. when I plugged the cable in my computer, everything were fine and my Skylake is between 40-50% faster.

With the battery the CPU was at 400 Mhz..... not so much! I think because the battery was used, it was in a powersave mode. 

I'll have a look at your advices, perhaps I can get more from my cpu with those experimental flags. 

Thank you!

----------

## Roman_Gruber

there is a tool called i7z to monitor the cpu

=> optimizations for ivybridge unlocked with experimental flags on the gentoo-sources. I have an ivybridge cpu 3610qm. Reduced a few minutes on libreoffice compiling

```
 grep IVYBRIDGE /usr/src/linux/.config

CONFIG_MIVYBRIDGE=y
```

----------

## albright

 *Quote:*   

> I think because the battery was used, it was in a powersave mode

 

usually, in the BIOS there is setting for how aggressive the cpu works on battery

(on my thinkpad e.g. the choice is either "max performance" or "balanced" - the

latter tries to save power

My cpu is Intel Core i5-4300U and, when plugged in to AC, is not bad.

But if you have another computer distcc really helps.

----------

## 341438

 *Quote:*   

> there is a tool called i7z to monitor the cpu
> 
> => optimizations for ivybridge unlocked with experimental flags on the gentoo-sources. I have an ivybridge cpu 3610qm. Reduced a few minutes on libreoffice compiling 
> 
> 

 

Thank you for your suggestion. I'll have a look at i7z and gentoo-sources. 

 *Quote:*   

> usually, in the BIOS there is setting for how aggressive the cpu works on battery
> 
> (on my thinkpad e.g. the choice is either "max performance" or "balanced" - the
> 
> latter tries to save power
> ...

 

I didn't know. I had a look and for me when my notebook is on battery, it's a powersave mode

or something like that. Now I know I can change it there. 

I have another computer and a raspberry pi. Perhaps I can use them with distcc. I'll have a look at every possibility,

first I'll try to compile with tmpfs.

----------

