# Quad Intel(R) Core(TM) i5-3330 optimieren

## flammenflitzer

Hallo,

ich bin von einem Dualcore auf einen Quadcore umgestiegen.

Was kann man da optimieren. Ich habe in der make.conf

```
CHOST="x86_64-pc-linux-gnu"

CFLAGS="-march=corei7 -O2 -pipe"

CXXFLAGS="${CFLAGS}"

Makeopts="-j5 -s"

```

-j5 oder -j8 ? Da gibt es wiedersprüchliche Aussagen.

Bleibt -s ?

```
USE="64bit rtc sse2 sse3 ssse3 "

```

Ist das optimal ?

Ist sonst noch etwas möglich?

gcc-4.6.3

http://www.gentooforum.de/artikel/20937/quad-intel-r-core-tm-i5-3330-optimieren.html#post147256

CFLAGS="-march=core2 -mcx16 -msahf -msse4.1 -mtune=core2 -O2 -pipe" ?

CFLAGS="-march=native" ?

----------

## Christian99

wenn du nicht crosskompilierst kannst du auf jeden fall march=native nehmen.

----------

## flammenflitzer

Und wenn ich crosskompiliere?

----------

## Christian99

dann kannst du, soweit ich mich da auskenne, kein march=native verwenden, sondern musst die jeweilige march= für den jeweiligen Prozessor. Ist aber schon ne Weile her, dass ich mich damit beschäftigt habe, wie das genau geht...

----------

## Max Steel

 *Christian99 wrote:*   

> dann kannst du, soweit ich mich da auskenne, kein march=native verwenden, sondern musst die jeweilige march= für den jeweiligen Prozessor. Ist aber schon ne Weile her, dass ich mich damit beschäftigt habe, wie das genau geht...

 

Ich glaube ja du meinst das richtige sagst es aber etwas widersprüchlich:

Wenn du distcc oder icecream verwendest, wird -march=native nicht funktionieren (die andern Hosts bauen bei -march=native entsprechend ihres eigenen Prozessors)

Fürs Crosscompilen auf der eigenen Maschine (ohne distcc) kann dein Rechner ruhig mit -march=native gebaut sein, außer du erzeugst Binaries für ein anderes TARGET dann muss -march natürlich entsprechend des TARGETs gesetzt werden. (aus gleichem Grunde wie mit distcc)

----------

## Molniya

Ich benütze USE="mmx mmxext sse sse2 sse3 ssse3 sse4_1 -3dnow"

----------

## Oerpi

Vlt hilft dir das weiter aus dem englischen Teil hier:

https://forums.gentoo.org/viewtopic-p-6473349.html#6473349

----------

## musv

Mit 

```
gcc -### -march=native -E /usr/include/stdlib.h 2>&1 | grep "/usr/libexec/gcc/.*cc1"
```

bekommst du raus, welche CFLAGS der gcc mit native verwendet. 

Das kannst du dann noch zusätzlich mit den Flags von 

```
cat /proc/cpuinfo
```

abgleichen. 

Da ich cross-compile verwende - also manchmal, hab ich das bei meiner Kiste so gemacht. Ist 'n Xeon X5650. Rausgekommen ist bei mir:

```
CFLAGS="-march=corei7 -O2 -pipe -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mno-avx -msse4.2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=12288"
```

----------

