Atom N/270

kosovafan

Well-Known Member
Hallo,


da sich meine Netbook Festplatte gestern aufgeraucht hat muss ich heute die Neuinstalaltion machen. Meine Frage lautet der make.conf, welche Flags sollte man für Atom Prozessoren nutzen.

MFG
Silvio
 
Hallo,


da sich meine Netbook Festplatte gestern aufgeraucht hat muss ich heute die Neuinstalaltion machen. Meine Frage lautet der make.conf, welche Flags sollte man für Atom Prozessoren nutzen.

Ich denke, dass man heutzutage march auf native setzen kann bei gcc [0]:
Code:
CPUTYPE?=native
CFLAGS=-O2 -pipe -fno-strict-aliasing

Das sollte tun. Hoehere Werte fuer "O" sollte man wohl eher lassen.

Was -march=native genau setzt, kannst Du so rausfinden:

Code:
cc -march=native -E -v - </dev/null 2>&1 | grep cc1

[0]:http://lists.freebsd.org/pipermail/freebsd-questions/2010-February/212850.html
 
Hallo,

wow vielen Dank für die schnelle Antwort. Ist ja fast das gleiche wie bei Gentoo, fehlt nur sse.

Vielen Dank.

Silvio
 
Oje... Will man das wirklich haben?

Auf einem Atom ja. Afaik erwartet der Compiler bei einem generischen CPU-Typ eine Out-Of-Order CPU und sortiert die Befehle auch nicht sonderlich gut.

Der Atom ist aber In-Order. Als Beispiel. Auf meinem Netbook mit N450 kann ich mit dem GameBoy-Emulator "VisualBoy Advance M" keine GBA-Spiele spielen, sie laufen dann einfach nicht schnell genug. Mit march=native geht's wiederum.

Probleme sollte mans ich mit march=native eigentlich auch nicht einfangen, da es afaik keine Optimierungen macht, die irgendwo was kaputtoptimieren, sondern sie sagen dem Compiler nur wie die CPU intern arbeitet und so kann er den Code besser sortieren usw.
 
Oje... Will man das wirklich haben?

Warum nicht?

Code:
       -march=name
	   This specifies the name of the target ARM architecture.  GCC uses
	   this name to determine what kind of instructions it can emit when
	   generating assembly code.  This option can be used in conjunction
	   with or instead of the -mcpu= option.

Ich kann da nichts nachteiliges erkennen. Ich behaupte aber auch nicht, dass dadurch nennenswert die Performance gesteigert wird (da ist Nuke's Erfahrung wohl eher die Ausnahme).
 
das steht in den mk.files groß beschrieben und auf gcc ist auch eine ganze Seite was Mutti brauch.
Gruß
 
Man muss unterscheiden, wie -Nuke- ja bereits sagte:

- Die meisten modernen Prozessoren sind in "out of order Prozessoren", d.h. sie sortieren die eingegebenen Befehle vor der Verarbeitung um. Außerdem führen sie eine Menge weiterer Dinge zur Codeaufbereitung durch. Entsprechend profitiert der meiste "Wald und Wiesencode" nicht oder nur unwesentlich von Compileroptimierungen, Außnahmen ist stark "algorithemlastiger" Code wie zum Beispiel x264. Oder anders gesagt ist der Ärger durch die Optimierungen meist größer als die Vorteile, man sollte daher dem Programmautor vertrauen und die von ihm ausgewählten CFLAGS übernehmen.

- Der Atom ist aber eine "in order CPU", er sortiert Befehle also nicht um und bereitet den aufgegebenen Code auch nicht groß auf. Entsprechend profitiert er sehr davon, wenn der Compiler die Befehle so weit es ihm möglich ist für das Rechenwerk vorsortiert. Hier kann man durchaus mal 20% Mehrleistung rauskitzeln, was bei einer Low-End-CPU nicht zu verachten ist. Daher ist es imo das Risiko sich anderen Ärger einzuhandeln wert.

Davon einmal abgesehen sollte man sich wirklich fragen, was Intel sich dabei gedacht hat. Außerdem geht die Atom-Ära aus gutem Grund zu Ende, Anfang 2013 wird Intel einen Nachfolger auf komplett neuer Architektur bringen. Allerdings wahrscheinlich mit dem Fokus auf Smartphones und Tablets, wo sie mit ihrem Medfield (oder so ähnlich) nach etlichen milliardenschweren Firmen- und damit Know-How-Zukäufen mit ARM konkurrenzfähig geworden sind.
 
Hallo,

vielen Dank Yamagi für die tolle Erklärung. Wieder was gelernt, Hardware verstehe ich noch weniger als den Geist der Anwendungen.


MFG

Silvio
 
Zurück
Oben