POV-Ray optimiert

Eigentlich wollte ich bereits Ende 2004 einen 64 Bit Compiler-Vergleich machen, doch stieß ich damals recht schnell auf diverse Probleme der noch sehr jungen x86_64 Architektur und das Projekt wurde wieder fallen gelassen.

Trotzdem wurden bereits einige Stunden Benchmarks angefertigt und die Ergebnisse verstauben seit dem auf meinen Festplatten. Da sie aber immer noch allgemein gültig sind, will ich sie euch hier noch kurz präsentieren.


Die erste Benchmark Serie befasste sich mit dem Persistence of Vision Raytracer in der Version 3.6.1.
Als Compiler kam der GCC in Version 3.3.4 und 3.4.2 zum Einsatz, der im damaligen Gentoo Portage Tree (amd64/~amd64) vorhanden waren.

Das Testsystem auf dem damaligen Stand:


Prozessor
Athlon 64

3000+, 2010 MHz, 512 KiB L2 Cache
Mainboard
Gigabyte

GA-K8VT800, BIOS F5
Speicher
1024 MiB

Infineon

PC2700 CL2,5, Auto-Settings
Grafikkarte
MSI FX5900XT

VTD128 - DVI out

Driver:

amd64_1.0-6629
Soundkarte
Terratec DMX

Fire 1024, Crystal CS4624
Festplatte
Seagate

Barracuda ATA V ST380023A
Betriebssystem
Gentoo Linux

AMD64-Kernel 2.6.7-r11



Die verschiedenen Optimierungslevel des GCC beinhalten eine ganze Reihe einzelner Flags, eine Beschreibung zu den einzelnen Optionen findet ihr im GCC Handbuch.

Flag
Optimization (Not all optimizations are controlled directly by a flag. Only
optimizations that have a flag are listed.)
-O1
-fdefer-pop 
-fmerge-constants
-fthread-jumps
-floop-optimize
-fcrossjumping (only GCC 3.3) 
-fif-conversion
-fif-conversion2
-fdelayed-branch
-fguess-branch-probability
-fcprop-registers
-fomit-frame-pointer (only GCC 3.4)
-O2
(-O1 +)
-fforce-mem 
-foptimize-sibling-calls
-fstrength-reduce
-fcse-follow-jumps -fcse-skip-blocks
-frerun-cse-after-loop -frerun-loop-opt
-fgcse -fgcse-lm -fgcse-sm
-fgcse-las (only GCC 3.4)
-fdelete-null-pointer-checks
-fexpensive-optimizations
-fregmove
-fschedule-insns -fschedule-insns2
-fsched-interblock -fsched-spec
-fcaller-saves
-fpeephole2
-freorder-blocks -freorder-functions
-fstrict-aliasing
-funit-at-a-time (only GCC 3.4)
-falign-functions -falign-jumps
-falign-loops -falign-labels
-fcrossjumping
-O3
(-O2 +)
-finline-functions
-fweb  (only GCC 3.4)
-frename-registers
-Os
-fdefer-pop 
-fmerge-constants
-fthread-jumps
-floop-optimize
-fif-conversion
-fif-conversion2
-fdelayed-branch
-fguess-branch-probability
-fcprop-registers
-fomit-frame-pointer (only GCC 3.4)
-fforce-mem
-foptimize-sibling-calls
-fstrength-reduce
-fcse-follow-jumps -fcse-skip-blocks
-frerun-cse-after-loop -frerun-loop-opt
-fgcse -fgcse-lm -fgcse-sm
-fgcse-las (only GCC 3.4)
-fdelete-null-pointer-checks
-fexpensive-optimizations
-fregmove
-fschedule-insns -fschedule-insns2
-fsched-interblock -fsched-spec
-fcaller-saves
-fpeephole2
-freorder-functions
-fstrict-aliasing
-funit-at-a-time (only GCC 3.4)
-fcrossjumping

nächste Seite