# Optimalen USE Flags für PIV Dualcore

## Tinitus

Hallo,

wie sind die optimalen Einstellungen in der make.conf für den Intel Dual Core PIV?

G. R.

----------

## Hilefoks

Moin,

die CFLAGS solltest du auf -march=prescott oder aber auf -march=nocona setzen, je nachdem ob deine CPU eine 64Bit Erweiterung besitzt.

Aus der man-Page des GCC:

 *Quote:*   

> prescott
> 
>  Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2 and SSE3 instruction set support. 
> 
> nocona
> ...

 

Spezielle Flags für die Dual-Cores gibt es nicht - im Kern sind es ja weiterhin normale P4 - nur das es jetzt eben zwei davon sind. Wichtig ist noch das du SMB im Kernel aktivierst und in der make.conf die Variable MAKEOPTS auf -j3 setzt.

MfG Hilefoks

----------

## Tinitus

 *Hilefoks wrote:*   

> Moin,
> 
> die CFLAGS solltest du auf -march=prescott oder aber auf -march=nocona setzen, je nachdem ob deine CPU eine 64Bit Erweiterung besitzt.
> 
> Aus der man-Page des GCC:
> ...

 

Aha

also CFLAGS="-0s -march=nocona -pipe"

CHOST="i686-pc-linux-gnu"

MAKEOPTS=-j3"

steht jetzt da....korrekt

Danke Dir schon mal

G. R.

----------

## platinumviper

 *Hilefoks wrote:*   

> Wichtig ist noch das du SMB im Kernel aktivierst und in der make.conf die Variable MAKEOPTS auf -j3 setzt.

 

Den Wert von MAKEOPTS sollte man höher setzen, mindestens Anzahl_CPUs x 2. Ich habe im November einige Tests mit dem damals aktuellen Kernel 2.6.14 durchgeführt, dabei wurden die kürzesten Kompilierzeiten bei höheren Werten erziehlt. Die Ergebnisse in Kürze, jeweils nur die Werte für CPUs+1 und bestes Ergebnis (Durschnitt aus drei Kompilerläufen in Minuten:Sekunden):

```
Dual P4 Xeon ohne HT (zwei CPUs), 2400 MHz, 1 GB RAM:

make -j3   4:23

make -j8   4:04

Dual P4 Xeon mit HT (vier virtuelle CPUs), 2400 MHz, 1 GB RAM:

make -j5   3:34

make -j64  3:18

Athlon64 3000+ (eine CPU), 2000 MHz, 1 GB RAM:

make -j2   4:43

make -j16  4:41

Quad Dual Core Opteron 875 (acht CPUs), 2400 MHz, 8 GB RAM:

make -j9   0:28

make -j[jeder höhere Wert bis 128]  0:27
```

Das relativ schlechte Abschneiden des Opteron Systems ist auf die Festplatte und meine Dummheit zurück zu führen, durch den ständigen Wechsel zwischen "Source-Code lesen" und "Object-Code schreiben" war sie mit Bewegungen des Schreib-/Lese-Kopfes beschäftigt, statt mit Datenübertragung. Der Source-Code kam einfach nicht so schnell, wie die CPUs es gerne gehabt hätten. Ich hätte in eine RAM-Disk kompilieren oder die sync Abstände auf >30 Sekunden setzen sollen. Hinterher ist man immer schlauer.

platinumviper

----------

## Anarcho

Es gibt noch das USE-Flag "smp" was von wenigen Anwendungen verwendet wird.

----------

## gerry

```

wget www.pixelbeat.org/scripts/gcccpuopt

chmod +x gcccpuopt

./gcccpuopt

```

----------

## Tinitus

 *Hilefoks wrote:*   

> Moin,
> 
> die CFLAGS solltest du auf -march=prescott oder aber auf -march=nocona setzen, je nachdem ob deine CPU eine 64Bit Erweiterung besitzt.
> 
> Aus der man-Page des GCC:
> ...

 

Hallo,

habe mal in die man Page geschaut. ABer ich finde das nicht. Muß noch einen normalen PIV betücken. aber kein Prescott, sondern der Vorgänger.

kannst Du helfen?

G. R.

----------

## Hilefoks

Moin,

wenn du einen alten Pentium4 hast, also einer der sich noch nicht auf SSE3 versteht, dann verwende "pentium4" als CFlag.

Tipp: Man-Pages lesen ist mit Hilfe des Konquerors noch einfacher/angenehmer. Einfach #gcc in die Adressleiste eingeben und schon öffnet sich die man-page zum gcc.

MfG Hilefoks

----------

## Tinitus

 *Hilefoks wrote:*   

> Moin,
> 
> wenn du einen alten Pentium4 hast, also einer der sich noch nicht auf SSE3 versteht, dann verwende "pentium4" als CFlag.
> 
> Tipp: Man-Pages lesen ist mit Hilfe des Konquerors noch einfacher/angenehmer. Einfach #gcc in die Adressleiste eingeben und schon öffnet sich die man-page zum gcc.
> ...

 

Hallo nochmal,

wie kann man sich das anzeigen lassen? Was passiert, wenn man die falschen Flags hat? Startet dann der Rechner nicht mehr? Wie merkt man das?

G. R.

----------

## Hilefoks

Moin,

```
cat /proc/cpuinfo
```

Dort kann man sehen welchen Prozessor man besitzt und welche Funktionen er unterstützt. Leider ist es aber nicht immer ganz einfach durch ablesen der Werte getan. Meistens reicht aber die Zeile "model_name" mit einem zusätzlichen Blick auf "flags".

Wenn man ein falsches Flag setzt, z.B. sse3 obwohl man nur sse2 besitzt dann laufen alle Programme nicht mehr die SSE3-Befehle verwenden. Welche das sind ist allerdings nicht ganz einfach zu sagen.

MfG Hilefoks

----------

## firefly

naja nur manche einträge in der flags-zeile in /proc/cpuinfo sind drinn obwohl diese funktion entweder deaktiviert oder nicht vorhanden ist. Z.B. bei mir steht da ht (habe einen Pentium4-M im laptop) aber ht ist in der cpu nicht aktiv/vorhanden.

----------

