PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GCC 4.0 erschienen


Seraf
2005-04-22, 12:34:18
GCC 4.0 ist erschienen.

http://gcc.gnu.org/

Changelog (http://gcc.gnu.org/gcc-4.0/changes.html)

Ganon
2005-04-22, 13:25:32
Autovectorization, juhu. ;)

HellHorse
2005-04-22, 13:52:01
Autovectorization, juhu. ;)
Alles Marketing. Schau mal ins gentoo Forum. GCC 4 produziert langsameren Code als GCC 3.

Aber Tail recursion by accumulation tönt interessant.

Ganon
2005-04-22, 14:01:52
Naja, sie haben das gesamte Optimierungsmodell geändert.

Kann ich mir schon vorstellen, das dabei auch was auf der Strecke bleiben kann.

Jetzt "soll" es ja leichter sein Optimierungen einzubinden.

Müsste man mal mit allen Optimierungen durchtesten. Das z.B. Autovectorization schwer einzubinden ist, dürfte klar sein. Am Anfang braucht man da nichts gewaltiges erwarten. ;) Compiler von IBM und Intel sind trotzdem noch besser. ^^

bluey
2005-04-22, 14:40:41
Her mit denn Benchmarks! Da bin ich mal, ob der große Wirbel drum gerechtfertigt sind. *Kompilier* ;)

Edit: mhh irgendwie gibs Probleme mit dem unmasken des Paketes.

Shink
2005-04-22, 15:47:04
Also gcj (classpath 0.14) und gfortran sind auf jeden Fall sinnvoller als bei den Vorgängerversionen. Das mit der Performance wird wohl schon noch kommen; ist ja das erste Release.

Ganon
2005-04-22, 16:08:28
Von anderen habe ich aber gehört das es teilweise wirklich viel schneller geworden ist.

PrakashKC
2005-04-22, 16:17:04
Der autovectorizer ist zur Zeit noch dumm/greedy, dh. versucht soviuel wie möglich zu vektorisieren, auch wenn es dann langsamer werden sollte.

Shink
2005-04-22, 16:47:58
Jetzt versteh ich erst was ihr meint mit autovectorizer: Ist das nicht etwas gar mutig? Der Zugriff auf gepackte Werte kann ja je nach Zugriffsreihenfolge ziemlich aufwändig sein, oder?

Pompos
2005-04-22, 17:12:50
Hmm... mal sehen wann ich damit meine Programme compiliere. Zur Zeit ists immernoch GCC 3.3. Liegt aber auch an Gentoo und meiner Faulheit :(

Ganon
2005-04-22, 17:18:38
Jetzt versteh ich erst was ihr meint mit autovectorizer: Ist das nicht etwas gar mutig? Der Zugriff auf gepackte Werte kann ja je nach Zugriffsreihenfolge ziemlich aufwändig sein, oder?

Jups. Aber es ist halt nur so, das kommerzielle Compiler es teilweise schon können und einige auch schon recht gut.

Also möglich ist es. Und es wird ja auch beschrieben was der Compiler zur Zeit vektorisiert und was nicht. Also kann man entsprechend programmieren.

Demirug
2005-04-22, 20:28:27
Jups. Aber es ist halt nur so, das kommerzielle Compiler es teilweise schon können und einige auch schon recht gut.

Also möglich ist es. Und es wird ja auch beschrieben was der Compiler zur Zeit vektorisiert und was nicht. Also kann man entsprechend programmieren.

Es gibt sogar einen der darauf spezialisiert ist: VectorC (http://www.codeplay.com/)

Der C++ Compiler von MS kann es auch.

Bei Intel bin ich mir jetzt nicht sicher weil ich mit dem selten arbeite.

Coda
2005-04-22, 20:29:15
Der C++ Compiler von MS kann es auch. Aber nur in .NET 2005.
Bei Intel bin ich mir jetzt nicht sicher weil ich mit dem selten arbeite.Der kann es sicher.

Demirug
2005-04-22, 20:54:14
Aber nur in .NET 2005.

Ja, der 2003 nutzt die SSE Befehle nur für Skalare Operationen wenn man es im erlaubt.

HellHorse
2005-04-22, 21:47:07
Her mit denn Benchmarks! Da bin ich mal, ob der große Wirbel drum gerechtfertigt sind. *Kompilier* ;)
http://forums.gentoo.org/viewtopic-t-176085.html
Weiter hinten. Wie schon gesagt, real world Programme laufen langsamer.

Wuzel
2005-04-22, 22:08:38
http://forums.gentoo.org/viewtopic-t-176085.html
Weiter hinten. Wie schon gesagt, real world Programme laufen langsamer.

Die Aussage würde ich mal nicht so pasuchal abgeben ;)
Grade die AMD64 Fraktion verbucht doch einen gewissen Schub ...

Ganon
2005-04-22, 23:07:34
PowerPC-Tests würden mich mal Interessieren. ;)

Naja. Muss ich wohl noch bis OS X Tiger warten...

Exxtreme
2005-04-22, 23:33:29
Hmmm, der GCC war eigentlich schon immer recht lahm. Dafür hat er andere Qualitäten. Naja, von der 4'er Version habe ich mir schon einiges versprochen eben weil einige Vorabberichte recht positiv klangen. Naja, mal sehen. :)

Ganon
2005-04-22, 23:45:35
Hmmm, der GCC war eigentlich schon immer recht lahm. Dafür hat er andere Qualitäten.

Ja, er kompiliert für haufenweise Architekturen und Sprachen. ;)

Das ist halt der Nachteil. Alle arbeiten an allen Architekturen und nicht "alle arbeiten an einer Architektur".

Aber das soll ja u.a. mit GCC 4 besser werden, da alles viel modularer aufgebaut ist.

Klar das da ein reiner C/C++ Compiler für Pentium u.U. schon mal 3 mal so schnellen Code erzeugen kann, als GCC.

HellHorse
2005-04-22, 23:49:16
PowerPC-Tests würden mich mal Interessieren. ;)
Glaubst du immer noch daran, dass sich eines Tages die Prophezeiung erfüllen wird? ;)

Ganon
2005-04-23, 00:25:23
Glaubst du immer noch daran, dass sich eines Tages die Prophezeiung erfüllen wird? ;)

Was meinst du jetzt?

Mich würde nur mal Interessieren ob GCC im PowerPC-Bereich zulegt. Denn im Gegensatz zum IBM-Compiler ist GCC einfach nur erbärmlich.

Gast
2005-04-23, 13:04:52
kann mir jemand erklären was das mit der Autovectorization, auf sich hat?
Bedeutet das, dass er jetzt die SIMD Erweiterung besser ausnutzt oder was?

Shink
2005-04-23, 13:22:48
Ja: Eigentlich muss man explizit (und nicht ganz einfach) programmieren, welche Werte man wie zusammenpackt, damit man darauf (explizit) einen SIMD (Single Instruction Multiple Data)-Befehl ausführen kann. Diese muss man dann irgendwie wieder auspacken, was nur in einer bestimmten Zugriffsreihenfolge geht etc. Das läuft meistens darauf aus, dass man ganz oft irgendwelche Werte Shuffeln muss, damit alles in der richtigen Reihenfolge steht... Da dies alles "etwas" kompliziert ist und man das ganze für jeden Befehlssatz anders machen muss/soll (SSE/AltiVec/3DNow!/...), verwendet man diese Befehle meist einfach nicht oder nur bei bestimmten Zwecken, wo man weiss, dass es viel bringt.
Autovectorization heißt im besten Fall, dass der Compiler das selbst macht, wo es am meisten Sinn macht und man sich kaum Gedanken darüber machen muss. Somit würde jedes Programm, dass man compiliert, SIMD-Befehle nutzen, wenn es irgendwo Sinn macht.

Gast
2005-04-23, 15:16:33
Ok. Das hört sich doch schonmal vielversprechend an ;-)

HellHorse
2005-04-23, 17:05:23
Ok. Das hört sich doch schonmal vielversprechend an ;-)
In der Theorie tönt so Zeugs immer gut.

Ganon
2005-04-23, 17:18:53
In der Theorie tönt so Zeugs immer gut.

Warum bist du so negativ darauf eingestellt?

HellHorse
2005-04-23, 19:35:52
Warum bist du so negativ darauf eingestellt?
Wieso negativ? Ich verweise nur darauf, wie Theorie/Anspruch/Marketing und Realität auseinanderklaffen.

Ganon
2005-04-23, 19:51:14
Wieso negativ? Ich verweise nur darauf, wie Theorie/Anspruch/Marketing und Realität auseinanderklaffen.

Klang halt nur so. ;)

Naja, aber das es funktioniert zeigen ja die kommerziellen Compiler.

Coda
2005-04-23, 20:59:29
Es ist nur natürlich, dass ein neues Framework noch etwas Zeit braucht um zu reifen. Tree SSA bietet auf jeden Fall mehr Optimeriungsmöglichkeiten als die alte Struktur.

Intel C++ ist z.B. auch nicht gerade gut beim autovektorisieren. Was Whidbey taugt wird sich noch zeigen.

Gast
2005-04-25, 16:58:38
Compiliert auch jemand mit dem Intel C++ Compiler Zuhause?
Der ist doch für den privaten Gebrauch kostenlos:
http://www.intel.com/software/products/noncom/


Hat jemand z.B. Gentoo übersetzt?
Geht das überhaupt und wieviel bringt es?