PDA

View Full Version : Gentoo amd64 - AMD K8 officially recommended CFLAGS


WAntilles
27-05-2006, 22:05
Για πολλούς λόγους, ύστερα από 14 μήνες, αποφάσισα να χτίσω το amd64 Gentoo σύστημά μου από την αρχή.

Το χτίσιμο θα γίνει εκ του μηδενός με τα πρόσφατα unmasked GCC 4.1.1, modular Xorg 7.0 και Gnome 2.14.

Ως γνωστόν τα default CFLAGS για Venice (ή νεότερο) Athlon64 (έχω Toledo) είναι:

CFLAGS="-march=athlon64 -msse3 -O2 -pipe"

Η AMD όμως προτείνει επισήμως στις σελίδες της τα παρακάτω:

CFLAGS="march=athlon64 -msse3 -O3 -pipe -fomit-frame-pointer -funroll-all-loops -ftracer"

Η γνώμη σας ποιά είναι;

Αξίζει τον κόπο ή θα δημιουργήσουν αρκετά προβλήματα;



Σημ.: Οι απόψεις στα Gentoo Forums διίστανται.

DarthMoul
27-05-2006, 22:25
Για να το προτείνει η AMD σημαίνει πως τα στατιστικά της δείχνουν πως με αυτά τα flags κατά μέσο όρο έχεις περισσότερα κέρδη από απώλειες. Η μόνη ένσταση μου είναι στο -funroll-all-loops. Εγώ θα το χρησιμοποιούσα με μεγάλη προσοχή γιατί πιέζει υπερβολικά registers και cache και από ότι έχω παρατηρήσει στις μισές περιπτώσεις επιβαρύνει αντί να βοηθά.

Κοίταξε εδώ (http://www.pctechnology.gr/vbull/vb/showthread.php?t=12792) και εδώ (http://www.pctechnology.gr/vbull/vb/showthread.php?t=7711) για αντίστοιχα threads.

WAntilles
28-05-2006, 00:29
Για την ακρίβεια, το εν λόγω thread είναι αυτό:

[gcc 3.4] AMD's Recommended CFLAGS

http://forums.gentoo.org/viewtopic-t-257417.html

backgroundman
28-05-2006, 12:45
Καλησπέρα,
το -Ο3 δεν ειναι λίγο επικινδυνο για να κάνεις compile όλο το σύστημα ??

Επειδη σε λίγες μέρες θα στήσω Gentoo Χ86-64 σε ένα AMD64 X2 4400+ θα ήθελα να ρωτήσω ποια νομίζετε οτι είναι σχετικά ασφαλή CFLAGS για να έχουμε ένα σχετικά γρήγορο αλλα πολύ σταθερο σύστημα ??

DarthMoul
28-05-2006, 12:55
Καλησπέρα,
το -Ο3 δεν ειναι λίγο επικινδυνο για να κάνεις compile όλο το σύστημα ??

Επειδη σε λίγες μέρες θα στήσω Gentoo Χ86-64 σε ένα AMD64 X2 4400+ θα ήθελα να ρωτήσω ποια νομίζετε οτι είναι σχετικά ασφαλή CFLAGS για να έχουμε ένα σχετικά γρήγορο αλλα πολύ σταθερο σύστημα ??
Για τις βιβλιοθήκες ίσως είναι. Στο portage όπου έχουν διαπιστώσει ότι προκαλεί πρόβλημα (πχ glibc) το έχουν κάνει mask και το αντικαθιστούν αυτόματα με -Ο2 ακόμα και αν εσύ έχεις ζητήσει -Ο3.

Στις εφαρμογές και να προκαλέσει πρόβλημα το κακό είναι μικρό. Ξανακάνεις compile με -Ο2.

Για 4400+ εγώ θα χρησιμοποιούσα:
-O2 -fomit-frame-pointer -msse3 -pipe -march=k8

WAntilles
28-05-2006, 13:53
Υπάρχει και νεότερη έκδοση του σχετικού paper της AMD:

http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32035.pdf

όπου στη σελίδα 19, κεφάλαιο 3.1.3, προτείνει για GCC 4.0:

-O3 -msse3 -ffast-math -funroll-all-loops -fpeel-loops -ftracer -funswitch-loops –ftree-vectorize

Βέβαια δεν ξεκαθαρίζει αν κάνει για όλο το σύστημα ή για ορισμένα κομμάτια του μόνο.

DarthMoul
28-05-2006, 13:59
Υπάρχει και νεότερη έκδοση του σχετικού paper της AMD:

http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32035.pdf

όπου στη σελίδα 19, κεφάλαιο 3.1.3, προτείνει για GCC 4.0:

-O3 -msse3 -ffast-math -funroll-all-loops -fpeel-loops -ftracer -funswitch-loops –ftree-vectorize
Βέβαια δεν ξεκαθαρίζει αν κάνει για όλο το σύστημα ή για ορισμένα κομμάτια του μόνο.
Αφού έχει το -ffast-math δεν κάνει. Όποιος θέλει να τα χρησιμοποιήσει καλύτερα να αφαιρέσει το -ffast-math για να μην έχει προβλήματα.