PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : i686 optimiert - wieviel bringt das?


l-s
2005-01-15, 22:32:02
hallo

macht sich ein i686 optimiertes linux (z.b. arch und gentoo) geschwindigkeitsmässig deutlich bemerkbar?

wieso sind nicht mehr distris, wie z.b. ubuntu auf i686 optimiert. alles wegen der abwärtskompatibilität zu älteren cpus?

wie würde sich ein i686-optimiertes windows anfühlen?

RuteniuM
2005-01-15, 22:53:10
hallo

macht sich ein i686 optimiertes linux (z.b. arch und gentoo) geschwindigkeitsmässig deutlich bemerkbar?Eigentlich ja.

wieso sind nicht mehr distris, wie z.b. ubuntu auf i686 optimiert. alles wegen der abwärtskompatibilität zu älteren cpus?Warscheilich, oder daran, dass sie keine Zeit/Lust haben.

wie würde sich ein i686-optimiertes windows anfühlen?
Ich nehme an, nicht viel anders/schneller, als das jetzige.

BUGFIX
2005-01-15, 23:13:34
hallo

...

wie würde sich ein i686-optimiertes windows anfühlen?

es würde bei AMD Prozessoren entweder richtig schlecht, oder garnicht laufen.

ich selber halte es lieber so:
- Das Betriebsystem (also alle Pakete) plattformneutral
- Den selbstkompilierten Kernel mit -O2 oder auch -O3 (je nach Computer)

Generell würde ich laufzeitkritische Komponenten mit optimierung Übersetzten, bei Biblotheken aber die Optimierung weglassen, da ich nicht weiß wie genau/sauber der Compiler/Linker da arbeitet.

MfG

BUGFIX

Mike
2005-01-16, 00:04:28
es würde bei AMD Prozessoren entweder richtig schlecht, oder garnicht laufen.

Begründung?

DebFan
2005-01-16, 00:27:16
Kommt drauf an.
Was verstehst du denn unter i686 Optimierung ?
Generell sind die libc6 von den meisten Distributionen mit mcpu=i686 compiliert, dh die laufen zwar noch auf i586 (darunter wirds haarig), aber der Code ist mehr auf hin i686 optimiert. Such mal im Netz nach den Unterschieden zwischen i586 und i686 Optimierungen. Die meisten gentoo Benutzer werden darauf schwören, die meisten anderen darüber lachen :) . Generell gilt selber messen ob eine bestimmte compiler optimierung nun schneller ist als eine andere. Alles andere kannst du vergessen.

Grüsse DebFan

ikroy
2005-01-16, 01:16:57
also nutze arch und muss es immer wieder feststellen, wenn neben mir mein kumpel sein debian lappie anschmeißt, was ein optimiertes system so ausmachen kann! ;) bei fetten cpus und so merkst du den unterschied vlei nich so krass, aber wenn es ein p2 366mhz ist, dann ist da ein großer unterschied zwischen arch und deb.

teste es und erfreu dich (eventuell)...

Moscht
2005-01-16, 01:31:40
Eigentlich ja.
.
.
.
Ich nehme an, nicht viel anders/schneller, als das jetzige.logik?

RuteniuM
2005-01-16, 01:56:45
logik?
Was Logik? Wie wäre es denn mit einen vollständigen Satz? :|

Wie dem auch sei, ich sehe da keinenen logischen Fehler, es ist nunmal so, dass ich mir einfach nicht vorstellen kann, dass eine Optimierung bei Windows einen deutlichen Unterschied machen würde.

dirk.loesche
2005-01-16, 08:31:07
Also ich kann bestädigen das bei mir Blender, ein 3D Programm www.blender.org, so um die 40% schneller ist als die originale Linuxversion die nicht optimiert ist. Aber beim Modellieren merkt man davon nichts. Da hilft nur eine schnellere Grafikkarte. Nur beim berechnen der Bilder dann muß man nicht so lange warten.

BUGFIX
2005-01-16, 21:48:21
Begründung?

Also:
Wenn die Optimierung SSE miteinschließt, musst man alle Prozessoren streichen die kein SSE haben.

Generell wird der Compiler versuchen Algorithmen auf spezielle Merkmale der Hardware anzupassen. (wie bei den Optmierungen bei Grafikfiltern usw auch)
Wie auch sonst gilt hier: eine optimierte Funktion muss das gleiche Ergebniss liefern wie die Ausgangsfunktion.

Um meine Aussage von oben etwas zu 'verfeinern'
Wenn der Compiler Instruktionen benutzt die nicht auf allen CPUs vorhanden/unterstützt sind, wird das Programm auf den CPUs garnicht laufen.

Wenn man auf besondere technische Merkamle optimiert (zum Beispiel viel L2-Cache) werden andere Systeme, die dieses Merkmal nicht haben gebremst.

MfG

BUGFIX

MadMan2k
2005-01-16, 22:18:32
bloß, dass i686 nur auf PeniumPro optimiert, sprich nichtmal MMX enthält.

Aber alle Athlons ab AthlonXP können sowieso SSE, die aktuellen sogar SSE2.

Mike
2005-01-17, 00:15:05
Also:
Wenn die Optimierung SSE miteinschließt, musst man alle Prozessoren streichen die kein SSE haben.

Generell wird der Compiler versuchen Algorithmen auf spezielle Merkmale der Hardware anzupassen. (wie bei den Optmierungen bei Grafikfiltern usw auch)
Wie auch sonst gilt hier: eine optimierte Funktion muss das gleiche Ergebniss liefern wie die Ausgangsfunktion.

Um meine Aussage von oben etwas zu 'verfeinern'
Wenn der Compiler Instruktionen benutzt die nicht auf allen CPUs vorhanden/unterstützt sind, wird das Programm auf den CPUs garnicht laufen.

Wenn man auf besondere technische Merkamle optimiert (zum Beispiel viel L2-Cache) werden andere Systeme, die dieses Merkmal nicht haben gebremst.

MfG

BUGFIX


Das i686 optimierte Software auf <i686 Systemen nicht läuft ist klar.
Allerdings sollten i686 Prozessoren von i686 optimierter Software profitieren - und die AMD CPUs ab K6 gehören da genauso zu wie die Intel CPUs ab PPro..

Coda
2005-01-17, 00:29:40
K6 kann kein CMOV, führt also auch keinen i686 optimierten Code aus.

BUGFIX
2005-01-17, 00:48:32
Das i686 optimierte Software auf <i686 Systemen nicht läuft ist klar.
Allerdings sollten i686 Prozessoren von i686 optimierter Software profitieren - und die AMD CPUs ab K6 gehören da genauso zu wie die Intel CPUs ab PPro..

Naja - das liegt wohl mehr daran das 'i686' als Makro nur relativ weinig wirklich spezifische Optimierungen durchführt.
Im Normalfall verhält sich die Optimierung auf Intel CPU viel 'gutmütiger' es Optimierungen auf AMD oder VIA sind.

MfG

BUGFIX

DebFan
2005-01-17, 10:48:00
Das i686 optimierte Software auf <i686 Systemen nicht läuft ist klar.
Allerdings sollten i686 Prozessoren von i686 optimierter Software profitieren - und die AMD CPUs ab K6 gehören da genauso zu wie die Intel CPUs ab PPro..

Falsch, der K6 zählt als i586 (dem fehlt cmov), such mal bei google nach i686 und K6 und cmov :).
Übrigens, der P4 läuft langsamer wenn march=i686 oder mcpu=i686, der braucht march=pentium4.

Grüsse DebFan

Moscht
2005-01-17, 12:01:23
Was Logik? Wie wäre es denn mit einen vollständigen Satz? :|

Wie dem auch sei, ich sehe da keinenen logischen Fehler, es ist nunmal so, dass ich mir einfach nicht vorstellen kann, dass eine Optimierung bei Windows einen deutlichen Unterschied machen würde.bei linux solls was bringen aber bei windows nicht, woraus folgerst du das? da is keine logik (sofern windwos nicht damit compiled wurde -> wovon ich allerdings ausgehen, zumindest bei aktuellen versionen mindestens auf 586)Was Logik? Wie wäre es denn mit einen vollständigen Satz? :|

Wie dem auch sei, ich sehe da keinenen logischen Fehler, es ist nunmal so, dass ich mir einfach nicht vorstellen kann, dass eine Optimierung bei Windows einen deutlichen Unterschied machen würde.

Mike
2005-01-17, 15:02:10
K6 kann kein CMOV, führt also auch keinen i686 optimierten Code aus.
Ich habs geahnt :)

Übrigens, der P4 läuft langsamer wenn march=i686 oder mcpu=i686, der braucht march=pentium4.Grüsse DebFan

Dass er mit march=pentium4 am schnellsten läuft/laufen sollte, dürfte klar sein.
Allerdings sollte er mit march=i686 schneller laufen als mit march=i386

DebFan
2005-01-17, 15:12:29
Ich habs geahnt :)



Dass er mit march=pentium4 am schnellsten läuft/laufen sollte, dürfte klar sein.
Allerdings sollte er mit march=i686 schneller laufen als mit march=i386

Teste es doch (ich glaube es ist anders rum, das er mit march=i386 schneller ist als mit march=i686, aber ich 'abe keinen P4 zur Hand im Moment).
Warum ?
Ganz einfach, die elende Kompatibilitätsgeschichte in der x86 Welt.

Gruesse DebFan

sth
2005-01-17, 19:40:32
Dazu mal eine dumme Frage: Welche Optimierungen bringen die 64Bit-Versionen diverser Distributionen eigentlich standardmäßig mit? Hier kommt es ja nicht groß auf Rückwärts-Kompatibilität an.

Oder anders herum: Wie wird das von Compiler-Seite gehandhabt? Was ist der kleinste gemeinsame Nenner zwischen AMDs und Intels x86-64bit-CPUs?

maximAL
2005-01-17, 21:21:39
K6 kann kein CMOV, führt also auch keinen i686 optimierten Code aus.

hmm, wenn ich -march=pentium2 nehmen, ab welchem AMD (und VIA) prozzi läuft das dann?

sth
2005-01-17, 21:30:14
Athlon

maximAL
2005-01-17, 21:44:47
Athlon

dann ist 686 ja eh reichlich sinnfrei, denn wer hat schon nen ppro? lieber p(-mmx) oder gleich p2...

moscht
2005-01-17, 22:36:38
dann ist 686 ja eh reichlich sinnfrei, denn wer hat schon nen ppro? lieber p(-mmx) oder gleich p2...
pentium 3 ist dem auch noch sehr nahe...der pentium-m ebenso ;)

maximAL
2005-01-18, 01:26:06
pentium 3 ist dem auch noch sehr nahe...der pentium-m ebenso ;)

p3 liefe aber wegen SSE wieder nicht mehr auf athlon (non-XP)

;)
2005-03-19, 09:28:10
wieso werden heute nicht einfach alle distris auf i686 optimiert?

es gibt doch fast niemanden mehr, der i585 oder kleiner nutzt!

nggalai
2005-03-19, 10:31:08
Du wärst erstaunt, wie viele Leute noch 386er und 486er im Einsatz haben, ganz zu schweigen von den Erstgenerations-Pentiums. Sei's als kleiner Fileserver, oder sei's weil's halt in einem 2.- oder 3.-Welt-Land sitzen ... und der Geschwindigkeitsunterschied ist ziemlich vernachläßigbar ... hab' mir von verschiedenen Leuten (lustigerweise vorwiegend Gentoo-Usern) sagen lassen, dass höchstens der Kernel und glibc wirklich von solchen Optimierungen profitieren würden.

Coda
2005-03-19, 11:03:14
hmm, wenn ich -march=pentium2 nehmen, ab welchem AMD (und VIA) prozzi läuft das dann?AMD: Athlon, Via: C3 Nehemiah.

i686 bedeutet nicht das Intel spezifisch optimiert wird, dazu gibt's pentium-4 usw. MMX/SSE/SSE2 Optimierungen bringen beim GCC bisher eh nix, das würde also eher kontraproduktiv sein.

Bei Windows XP bin ich mir eigentlich recht sicher dass es i686 optimiert ist (also Compilerflag /G7). Das läuft dann auch noch auf alten CPUs, nützt also die erweiterten Opcodes nicht.

Gast
2005-08-20, 11:56:16
AFAIR hat jemand im Forum von Archlinux geschrieben, daß er sowohl Debian als auch Arch auf einem älterem Rechner installiert hat. Arch wäre deutlich schneller...

- Wieso gibt es von Debian/Ubuntu keinen i686 Zweig?
- Wie ist das mit den 64Bit Versionen?
- Kann man Ubuntu/Gentoo selber auf i686 optimieren? Müsste doch gehen? Hat mal jemand soetwas probiert? (Gentoo läßt grüssen)

MadMan2k
2005-08-20, 12:37:52
AFAIR hat jemand im Forum von Archlinux geschrieben, daß er sowohl Debian als auch Arch auf einem älterem Rechner installiert hat. Arch wäre deutlich schneller...

- Wieso gibt es von Debian/Ubuntu keinen i686 Zweig?
- Wie ist das mit den 64Bit Versionen?
- Kann man Ubuntu/Gentoo selber auf i686 optimieren? Müsste doch gehen? Hat mal jemand soetwas probiert? (Gentoo läßt grüssen)
i686, oder allgemein alle Optimierungen bringen nur dann was, wenn die Anwendung auch Code benutzt, den man optimieren kann...
Deshalb gibt es bei Ubuntu manche Pakete für mehrere Architekturen optimiert. (Kernel, libc6)
Ansonsten kann man sich die Pakete über apt-get source auch selbst kompilieren.
Wenn das allerdings das ganze System betreffen soll, wäre Gentoo sicherlich besser, da emerge eben darauf ausgerichtet wurde.

Als ich von Debian zu Arch und von dort zu Ubuntu gewechselt bin habe ich jeweils keinerlei Performanceunterschiede bemerkt...

Lokadamus
2005-08-20, 13:14:42
macht sich ein i686 optimiertes linux (z.b. arch und gentoo) geschwindigkeitsmässig deutlich bemerkbar?

wieso sind nicht mehr distris, wie z.b. ubuntu auf i686 optimiert. alles wegen der abwärtskompatibilität zu älteren cpus?

wie würde sich ein i686-optimiertes windows anfühlen?mmm...

Deutlich wohl nur in bestimmten Bereichen. Wenn die komplette Software dafür optimiert ist, dürfte es wohl bemerkbar sein ... vor einiger Zeit wurden hier und da GCC mit Intel- Compiler verglichen. Bei FreeBSD gabs danach ein Geschwindigkeitszuwachs von ca. 20% im Durchschnitt. Frag mich aber nicht, welche Version benutzt wurden ...

Jup, FreeBSD zum Beispiel will den 6er Zweig für i586 optimieren, während die vorherigen Versionen noch für den i386 kompiliert werden. Dadurch erfüllt man die Aussage, dass es auf alter Hardware läuft, während man ansonsten die alten Geräte wegwerfen müsste ;) ...

Auf langsamen System kann ich mir vorstellen, dass es flüssiger läuft, während es auf derzeitigen Standarsystemen nicht direkt bemerkbar sein würde, bzw. nur, wenn resourcenintensive Anwendungen im Fenster laufen. Eventuell auch, wenn die Anwendungen im Vollbildmodus ausgeführt werden ... gab es nicht irgendwo berichte, das man XP auf nem 486 installieren kann? sollte XP mit Optimierungen kompiliert sein, muss es aufjedenfall den Mindestanforderungen entsprechen. Als Mindestanforderung wird ein Intel Pentium mit 233MHz genannt, womit entweder ein P1 oder P2 gemeint ist. Ich tippe auf i586 ...

Gast
2005-08-20, 13:56:06
Aber alle Athlons ab AthlonXP können sowieso SSE, die aktuellen sogar SSE2.
Die aktuellen sogar SSE3 ;) Ich blaub aber nicht, daß man spezielll in einer Distribution mit SSE etwas reissen kann. i686 samt MMX sollte es imho aber schon sein. Das beherrscht der GCC zeimlich ausgezeichnet :)

Gast
2005-08-20, 14:03:21
gab es nicht irgendwo berichte, das man XP auf nem 486 installieren kann? sollte XP mit Optimierungen kompiliert sein, muss es aufjedenfall den Mindestanforderungen entsprechen. Als Mindestanforderung wird ein Intel Pentium mit 233MHz genannt, womit entweder ein P1 oder P2 gemeint ist. Ich tippe auf i586 ...
Naja, wenn man mal SP2 drüberhaut, bekommt man immernoch \Windows\ServicePackFiles\i386\ :D ;) Ich war bis jetzt aber immer der Meinung, daß für XP eine CPU mit MMX notwendig ist :confused: Naja. OT :)

Lokadamus
2005-08-20, 14:36:57
Naja, wenn man mal SP2 drüberhaut, bekommt man immernoch \Windows\ServicePackFiles\i386\ :D ;) Ich war bis jetzt aber immer der Meinung, daß für XP eine CPU mit MMX notwendig ist :confused: Naja. OT :)mmm...

Da haben wir das kleine Dilemma der CPU- Entwicklung:
Die 1. Generation der Pentium 1 hatten kein MMX. Zwischendurch ist der Pentium Pro rausgekommen, welcher die Grundlage für den P2 bildet. Irgendwann im selben Zeitraum (frag mich nicht, wann das genau war), erschien der Pentium 1 mit MMX ;). Bei der CPU- Angabe von 233MHz müsste MMX Standard gewesen sein ... http://de.wikipedia.org/wiki/Pentium ...

Gast
2005-08-20, 14:55:32
Da haben wir das kleine Dilemma der CPU- Entwicklung:
Die 1. Generation der Pentium 1 hatten kein MMX. Zwischendurch ist der Pentium Pro rausgekommen, welcher die Grundlage für den P2 bildet. Irgendwann im selben Zeitraum (frag mich nicht, wann das genau war), erschien der Pentium 1 mit MMX ;). Bei der CPU- Angabe von 233MHz müsste MMX Standard gewesen sein ... http://de.wikipedia.org/wiki/Pentium ...
Imho ab p1/166 gabs MMX und nicht MMX. Darüber nur MMX. Ist aber schon recht lange her...

drdope
2005-08-20, 15:22:08
Imho ab p1/166 gabs MMX und nicht MMX. Darüber nur MMX. Ist aber schon recht lange her...

Yep, da hat es angefangen. nacher kamen aber auch für Notebooks langsamer getaktete MMX Prozessoren auf den Markt.

Back to Topic:
Ich nutze selber seit anfang Juli Gentoo und denke das die Optimierungen in 99% der Fälle keinen signifikannten Performancevorteil bringen.
Afaik gabs auch vor ein paar Monaten in einer c't einen Copmpilervergleich der dies ebenfalls darstellte (idR Performancegewinne in kleinen einstelligen Prozentbereich).
Was viel mehr ausmachen sollte ist mmn die Tatsache, das man bei Gentoo mit einem Minimalsystem beginnt und diese selber customized, was imho dazu führt, das man ein Sys mit sehr wenig unnötigen, überflüssigen, potentiell ressourcenfressenden Kram bekommt.
Ich nenne als Hauptgründe für den Einsatz von Gentoo eigentlich immer die exellente Doku (Handbuch, Forum, Wiki's) sowie das Packetmanagement (Portage).