Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Cflags
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Wed Sep 05, 2012 6:25 pm    Post subject: Cflags Reply with quote

Hallo geehrte Linux Gemeinschaft,

Ich nutze einen Bulldozer und habe mich gefragt, ob es noch weitere nützliche CFLAGS gibt.
Dabei bin ich auf dieser Seite gelandet.

http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

Mich würde interessieren ob ihr es für Sinnvoll hält alle unterstützen CFLAGS zu aktivieren. Außerdem frage ich mich was so einige CFLAGS bewirken, leider habe ich keine Liste dazu im Web gefunden.
Hier mal meine unterstützen CFLAGS:

Code:
  echo "" | gcc -march=native -v -E - 2>&1 | grep cc1
 /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1 -E -quiet -v - -march=bdver1 -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1


Habe gerade noch was gefunden:

http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/i386-and-x86_002d64-Options.html
http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Option-Index.html#Option-Index

Die liste ist leider sehr veraltet bzw. es fehlen viele meiner cflags.
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1668

PostPosted: Wed Sep 05, 2012 7:47 pm    Post subject: Reply with quote

unter http://gcc.gnu.org/onlinedocs/ findest du die doku zu allen gcc versionen
nimm doch einfach march=native als flag, dann musst du dir nicht über jedes einzelne gedanken machen.
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Sep 06, 2012 6:26 am    Post subject: Reply with quote

Christian99 wrote:
nimm doch einfach march=native als flag, dann musst du dir nicht über jedes einzelne gedanken machen.


++

Ich habe schon schlechte Erfahrung gemacht mit überoptimierten Systemen. -native ist ausreichend. Dann hast immer noch die Wahlmöglichkeiten zwischen -Os bis -O3, wobei ich -Os bevorzuge.
Back to top
View user's profile Send private message
Klaus Meier
Advocate
Advocate


Joined: 18 Apr 2005
Posts: 2908
Location: Bozen

PostPosted: Thu Sep 06, 2012 6:52 am    Post subject: Reply with quote

Von -O3 wird bei gcc Version 4 abgeraten. Und man sollte immer eins bedenken: Pakete, die von wirklich hohen Optimierungen profitieren, die haben so etwas im Ebuild. Einfach mal zuschauen, wenn es übersetzt wird.
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 12:17 pm    Post subject: Reply with quote

Ich habe trotzdem mal ein paar CFLAGS geändert, man soll ja keiner Studie vertrauen, welche man nicht selbst gefälscht hat. ;-)

Vorher
Code:
 CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native "


Nachher
Code:
 CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma
 -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1"



Nach 5stunden und 50min war die Kompiliererei abgeschlossen. Man sollte nicht vergessen den Kernel neu zu bauen.
Ich muss sagen es hat sich gelohnt, ich hatte vorher CINEBENCH mit wine durch laufen lassen, damit ich vorher-nachher Werte habe. (unter den gleichen Bedingungen) Diese Methode ist zwar nicht die beste Methode aber sie reicht für meinen Zweck.

Vorher: 3.83
Nachher: 4.01

Das entspricht einer Übertaktung von 3300gHz auf 3900gHz. Wer seine CPU optimal nutzen möchte, kann ich nur empfehlen mal über -march=native hinaus zu schauen.
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Sep 06, 2012 12:27 pm    Post subject: Reply with quote

Beelzebub_ wrote:
Nachher ...


Das poste bitte jetzt noch die Ausgabe von /proc/cpuinfo dazu damit auch jeder weiß welche CPU genau hier optimiert wurde und so mit deinen Angaben was anfangen kann.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Thu Sep 06, 2012 12:32 pm    Post subject: Reply with quote

Sorry, aber das ist absoluter Käse.
Du testest, was spezielle CFLAGS bringen anhand eines proprietären Windows-Programms, das in einem Emulator läuft?!?
Kannst du mal - rein interessehalber - ein emerge -pv wine zeigen?
Desweiteren bringt kernel neubauen gar nichts, der verwendet seine eigenen CFLAGS. Man kann zwar irgendwo einstellen, dass zum Bauen die optimierten Flags verwendet werden, würde ich aber nicht empfehlen.

Es spricht absolut gar nichts gegen march=native, und wenn man keine Ahnung hat was man da genau rumfummelt sollte man das auch tunlichst bei den empfohlenen minimalen Flags belassen!
http://en.gentoo-wiki.com/wiki/Safe_Cflags
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 1:00 pm    Post subject: Reply with quote

Klar gerne, hier meine "emerge -pv wine"

Code:
 [ebuild   R    ] app-emulation/wine-1.5.11  USE="X alsa cups fontconfig gecko jpeg lcms ldap mono mp3 ncurses nls opengl oss perl png ssl threads truetype udisks win32 win64 xml -capi -custom-cflags -gnutls -gphoto2 -gsm (-gstreamer) -hardened -odbc -openal -opencl -osmesa -pulseaudio -samba -scanner (-selinux) -test -v4l -xcomposite -xinerama" 0 kB


Mir war auch klar dass das evtl. nicht optimal mit der Windows Benchmark ist. Ich denke jedoch, da beide Test absolut gleich waren, dass sie auch vergleichbar sind. Ich wollte nicht einfach schreiben das System verhält sich etwas schneller, da ich nur mein eigenes Vorher-Nachher Gefühl habe und das kein richtiger Beweis ist. Kennt jemand Linux-Benchmarks?, mir sind keine bekannt.

Bei dem Kernel kenne ich mich nicht aus, ich hatte das einfach angenommen. Bitte um Entschuldigung für den Fehler.

Code:
 cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family   : 21
model      : 1
model name   : AMD FX(tm)-6100 Six-Core Processor             
stepping   : 2
microcode   : 0x6000613
cpu MHz      : 3314.198
cache size   : 2048 KB
physical id   : 0
siblings   : 6
core id      : 0
cpu cores   : 3
apicid      : 16
initial apicid   : 0
fpu      : yes
fpu_exception   : yes
cpuid level   : 13
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips   : 6628.39
TLB size   : 1536 4K pages
clflush size   : 64
cache_alignment   : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 1
vendor_id   : AuthenticAMD
cpu family   : 21
model      : 1
model name   : AMD FX(tm)-6100 Six-Core Processor             
stepping   : 2
microcode   : 0x6000613
cpu MHz      : 3314.198
cache size   : 2048 KB
physical id   : 0
siblings   : 6
core id      : 1
cpu cores   : 3
apicid      : 17
initial apicid   : 1
fpu      : yes
fpu_exception   : yes
cpuid level   : 13
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips   : 6628.39
TLB size   : 1536 4K pages
clflush size   : 64
cache_alignment   : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 2
vendor_id   : AuthenticAMD
cpu family   : 21
model      : 1
model name   : AMD FX(tm)-6100 Six-Core Processor             
stepping   : 2
microcode   : 0x6000613
cpu MHz      : 3314.198
cache size   : 2048 KB
physical id   : 0
siblings   : 6
core id      : 2
cpu cores   : 3
apicid      : 18
initial apicid   : 2
fpu      : yes
fpu_exception   : yes
cpuid level   : 13
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips   : 6628.39
TLB size   : 1536 4K pages
clflush size   : 64
cache_alignment   : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 3
vendor_id   : AuthenticAMD
cpu family   : 21
model      : 1
model name   : AMD FX(tm)-6100 Six-Core Processor             
stepping   : 2
microcode   : 0x6000613
cpu MHz      : 3314.198
cache size   : 2048 KB
physical id   : 0
siblings   : 6
core id      : 3
cpu cores   : 3
apicid      : 19
initial apicid   : 3
fpu      : yes
fpu_exception   : yes
cpuid level   : 13
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips   : 6628.39
TLB size   : 1536 4K pages
clflush size   : 64
cache_alignment   : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 4
vendor_id   : AuthenticAMD
cpu family   : 21
model      : 1
model name   : AMD FX(tm)-6100 Six-Core Processor             
stepping   : 2
microcode   : 0x6000613
cpu MHz      : 3314.198
cache size   : 2048 KB
physical id   : 0
siblings   : 6
core id      : 4
cpu cores   : 3
apicid      : 20
initial apicid   : 4
fpu      : yes
fpu_exception   : yes
cpuid level   : 13
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips   : 6628.39
TLB size   : 1536 4K pages
clflush size   : 64
cache_alignment   : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 5
vendor_id   : AuthenticAMD
cpu family   : 21
model      : 1
model name   : AMD FX(tm)-6100 Six-Core Processor             
stepping   : 2
microcode   : 0x6000613
cpu MHz      : 3314.198
cache size   : 2048 KB
physical id   : 0
siblings   : 6
core id      : 5
cpu cores   : 3
apicid      : 21
initial apicid   : 5
fpu      : yes
fpu_exception   : yes
cpuid level   : 13
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips   : 6628.39
TLB size   : 1536 4K pages
clflush size   : 64
cache_alignment   : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
bell
Guru
Guru


Joined: 27 Nov 2007
Posts: 508

PostPosted: Thu Sep 06, 2012 1:00 pm    Post subject: Reply with quote

Quote:
echo "" | gcc -march=native -v -E - 2>&1 | grep cc1
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1 -E -quiet -v - -march=bdver1 -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1
Ok, der GCC löst -march=native in diese vielen Parameter auf.

Quote:
Nachher
Code:
CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1"
Aber das sind doch genau die selben Parameter die sowieso bereits im "native" stecken! Es hat sich also an der Optimierung nichts verändert. Die Vorher und Nachher Einstellungen sind identisch.
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2229
Location: My own world! I and Gentoo!

PostPosted: Thu Sep 06, 2012 1:14 pm    Post subject: Reply with quote

Beelzebub_ wrote:
Klar gerne, hier meine "emerge -pv wine"

Code:
 [ebuild   R    ] app-emulation/wine-1.5.11  USE="X alsa cups fontconfig gecko jpeg lcms ldap mono mp3 ncurses nls opengl oss perl png ssl threads truetype udisks win32 win64 xml -capi -custom-cflags -gnutls -gphoto2 -gsm (-gstreamer) -hardened -odbc -openal -opencl -osmesa -pulseaudio -samba -scanner (-selinux) -test -v4l -xcomposite -xinerama" 0 kB


Das USE-Flag custom-cflags bewirkt in einigen PRogrammen die Verwendung eigener, per make.conf CFLAGS= und CXXFLAGS= eingestellten, CFLAGS ;) Somit ist auch wine in beiden Fällen genau gleich kompiliert.
_________________
mfg
Steel
___________________

Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 1:15 pm    Post subject: Reply with quote

Da liegst du leider Falsch,
oder um es Positiv zu formulieren fast richtig.

Ich habe mir vorher angeschaut, welche CFLAGS von -march=native automatisch mit aktiviert werden. Einige waren wie du vermutest hast dabei, aber viele waren auch nicht dabei.

Ich habe nicht 5h50m blind kompiliert.

Finde den Befehl dazu gerade nicht, werde ihn später posten
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 1:21 pm    Post subject: Reply with quote

Max Steel wrote:
Beelzebub_ wrote:
Klar gerne, hier meine "emerge -pv wine"

Code:
 [ebuild   R    ] app-emulation/wine-1.5.11  USE="X alsa cups fontconfig gecko jpeg lcms ldap mono mp3 ncurses nls opengl oss perl png ssl threads truetype udisks win32 win64 xml -capi -custom-cflags -gnutls -gphoto2 -gsm (-gstreamer) -hardened -odbc -openal -opencl -osmesa -pulseaudio -samba -scanner (-selinux) -test -v4l -xcomposite -xinerama" 0 kB


Das USE-Flag custom-cflags bewirkt in einigen PRogrammen die Verwendung eigener, per make.conf CFLAGS= und CXXFLAGS= eingestellten, CFLAGS ;) Somit ist auch wine in beiden Fällen genau gleich kompiliert.


Hmm, gut zu wissen.
Aber ich hoffe das ist nicht bei allen Programmen so, dann hättest du recht. Aber auch wenn wine genau gleich blieb, der Unterbau des Systems wurde verbessert.

Ist das -custom-flags sinnvoll? Bzw wo kann ich die CFLAGS aktivierten des Pakets sehen?
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 1:24 pm    Post subject: Reply with quote

bell wrote:
Quote:
echo "" | gcc -march=native -v -E - 2>&1 | grep cc1
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1 -E -quiet -v - -march=bdver1 -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1
Ok, der GCC löst -march=native in diese vielen Parameter auf.

Quote:
Nachher
Code:
CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1"
Aber das sind doch genau die selben Parameter die sowieso bereits im "native" stecken! Es hat sich also an der Optimierung nichts verändert. Die Vorher und Nachher Einstellungen sind identisch.


Das ist die Frage. So wie ich das hier verstanden habe (http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS) werden mir alle möglichen CFLAGS meiner nativen CPU angezeigt.
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2229
Location: My own world! I and Gentoo!

PostPosted: Thu Sep 06, 2012 1:28 pm    Post subject: Reply with quote

Beelzebub_ wrote:

Hmm, gut zu wissen.
Aber ich hoffe das ist nicht bei allen Programmen so, dann hättest du recht. Aber auch wenn wine genau gleich blieb, der Unterbau des Systems wurde verbessert.


Stellenweiße ja. Stellenweiße gibt es auch CFLAGS welche bei einem Programm nutzen, bei anderen sich wiederum gegenteilig auswirken werden.

Beelzebub_ wrote:
Ist das -custom-flags sinnvoll? Bzw wo kann ich die CFLAGS aktivierten des Pakets sehen?


Meistens wird -custom-cflags dort verwendet, wo das Compilat relativ allergisch auf die falschen Flags reagiert (also das es evtl nicht kompiliert oder zu Laufzeitfehlern führen wird (Wahrscheinlichkeit >99%).
Manchmal (Fallwahrscheinlichkeit <1%) geht es auch um Performance, falls das Compilat durch besondere Flags so in der Performance negativ beeinflusst wird damit dieses nicht oder nur ungenau arbeiten wrd (wenn dann wird sowas im Simulations oder Scientific Bereich gebraucht).
_________________
mfg
Steel
___________________

Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 1:36 pm    Post subject: Reply with quote

@bell vielleicht hast du recht.

Ich frage mich was das (http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS) für einen Sinn macht, wenn der Effekt 0 ist.
Außerdem frage ich mich mit welchem Befehl ich alle möglichen CFLAGS für meine CPU herausfinde.
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Thu Sep 06, 2012 1:50 pm    Post subject: Reply with quote

Max Steel wrote:
Somit ist auch wine in beiden Fällen genau gleich kompiliert.

Und eben genau custom-cflags war der Grund, warum ich danach gefragt hatte ;) Das wäre mMn. der letzte Strohhalm gewesen, an dem man die Performance-Fahne hätte hissen können. Oder so.
Und ja, du kannst auch unter Linux nativ benchen. Schau dir mal die phoronix-test-suite an (wobei das auch nur ein "bequemeres" Interface für als Benchmark heranziehbare Programme ist)

Und custom-cflags bitte jetzt nicht global in die make.conf nehmen! Hat schon seinen Grund, warum da "unsupported" mit in der Beschriebung steht:
Code:
$ quse -D custom-cflags
 global:custom-cflags: Build with user-specified CFLAGS (unsupported)
 local:custom-cflags:app-emulation/wine: Bypass strip-flags; use are your own peril
Back to top
View user's profile Send private message
bell
Guru
Guru


Joined: 27 Nov 2007
Posts: 508

PostPosted: Thu Sep 06, 2012 1:53 pm    Post subject: Reply with quote

Mit 'echo "" | gcc ....' hast Du ja bereits die empfohlenen Flags rausgefunden, die auch automatisch gesetzt werden wenn Du "-march=native" nutzt.

Wenn Du noch mehr optimieren willst, so hat Max Steel ja bereits angemerkt, dass unterschiedliche Programme unterschiedlich auf die Optimierungen reagieren. Dh. diese Zusatz-Optimierungen gehören pro Paket in die /etc/portage/package.cflags. Aber da muss man sich mit den Tiefen des GCC und mit den Tiefen der jeweiligen Anwendungen sich auskennen oder viel Zeit haben zum ausprobieren und benchmarken.

Der Beitrag Hardware_CFLAGS macht schon Sinn bei Szenarien wo mann kein "native" nutzen kann. Dies ist zB. bei Cross-Compiling und bei der Nutzung von distcc der Fall.
Back to top
View user's profile Send private message
cryptosteve
Veteran
Veteran


Joined: 04 Jan 2004
Posts: 1169
Location: GER

PostPosted: Thu Sep 06, 2012 2:45 pm    Post subject: Reply with quote

Reagieren denn heute immer noch viele Programme eher allergisch auf allzu gutgemeinte Optimierungen?

P.S.: Ich dachte, diese funroll-loops-Geschichte hätten wir vor Jahren hinter uns gelassen. ;)
_________________
- born to create drama -
gpg: 0x9B6C7E15
CS Virtual Travel Bug: VF6G5D
Back to top
View user's profile Send private message
mrueg
Retired Dev
Retired Dev


Joined: 08 Jul 2012
Posts: 36
Location: Berlin, Deutschland

PostPosted: Thu Sep 06, 2012 2:54 pm    Post subject: Reply with quote

cryptosteve wrote:

P.S.: Ich dachte, diese funroll-loops-Geschichte hätten wir vor Jahren hinter uns gelassen. ;)

du meinst sicher http://funroll-loops.info/ ;)
wundert mich eigentlich dass der link in dem thread noch nicht aufgetaucht ist.
Back to top
View user's profile Send private message
cryptosteve
Veteran
Veteran


Joined: 04 Jan 2004
Posts: 1169
Location: GER

PostPosted: Thu Sep 06, 2012 2:59 pm    Post subject: Reply with quote

mrueg wrote:
cryptosteve wrote:

P.S.: Ich dachte, diese funroll-loops-Geschichte hätten wir vor Jahren hinter uns gelassen. ;)

du meinst sicher http://funroll-loops.info/ ;)

Na klar! :lol:

Aber vielleicht ist's heute nicht mehr so "dramatisch" und verpufft einfach so ... was es nicht weniger sinnvoll machen würde.
_________________
- born to create drama -
gpg: 0x9B6C7E15
CS Virtual Travel Bug: VF6G5D
Back to top
View user's profile Send private message
Klaus Meier
Advocate
Advocate


Joined: 18 Apr 2005
Posts: 2908
Location: Bozen

PostPosted: Thu Sep 06, 2012 6:18 pm    Post subject: Reply with quote

Beelzebub_ wrote:
Ich habe trotzdem mal ein paar CFLAGS geändert, man soll ja keiner Studie vertrauen, welche man nicht selbst gefälscht hat. ;-)

Vorher
Code:
 CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native "


Nachher
Code:
 CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma
 -mfma4 -mxop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1"



Nach 5stunden und 50min war die Kompiliererei abgeschlossen. Man sollte nicht vergessen den Kernel neu zu bauen.
Ich muss sagen es hat sich gelohnt, ich hatte vorher CINEBENCH mit wine durch laufen lassen, damit ich vorher-nachher Werte habe. (unter den gleichen Bedingungen) Diese Methode ist zwar nicht die beste Methode aber sie reicht für meinen Zweck.

Vorher: 3.83
Nachher: 4.01

Das entspricht einer Übertaktung von 3300gHz auf 3900gHz. Wer seine CPU optimal nutzen möchte, kann ich nur empfehlen mal über -march=native hinaus zu schauen.

Ich sage dazu nur eins: Absoluter Unfug. Du hast da eine Steigerung von nicht mal 5% erziehlt. Im normalen Desktopbetrieb sind Steigerungen von 50% deutlich zu spüren, welche unter 20% merkt man absolut nicht. Warum den Kernel neu kompilieren? Der Kernel wird doch mit cflags gebaut, die nichts mit der make.conf zu tun haben. Oder hast du das Makefile vom Kernel auch modifiziert? Warum gibst du beim Kernel eine um 20% höhere Taktfrequenz an, wenn der Benchmark gerade mal um 4,5% schneller läuft?

Ansonsten, das habe ich ja geschrieben, gibt es schon einige Anwendungen, die von höheren Optimierungen profitieren. Aber warum wegen dieser Handvoll Anwendungen das ganze System damit übersetzen? Werden jetzt Dateien schneller kopiert? Startet dein System schneller? Kannst du Fenster schneller verschieben? Hast du schon irgend einen Unterschied gespürt, außer diesem einen Benchmark? Aber: Hast du wichtige Programme darauf hin überprüft, ob sie auch korrekte Ergebnisse liefern? Die Tatsache, dass sich ein überoptimiertes Programm kompilieren lässt, bedeutet noch lange nicht, dass die Ergebnisse korrekt sind.

Hochoptimierte Anwendungen sind sinnvoll fürs Numbercrunching oder so etwas. Im Desktopbetrieb sind zum größten Teil die Ladezeiten und das Linken dafür verantwortlich, wie schnell du dein System empfindest. Und da kann oftmals -Os nützlicher sein, weil die Anwendungen schneller geladen werden. Habe ich aber selber noch nie getestet.

Und ansonsten gibt es viele Effekte. Ich habe hier mal vor langer Zeit gepostet, ext4 seit um 20% schenller als ext3. Und dann festgestellt, dass es daran lag, dass ich das fs neu angelegt habe. Ein fsck -fD hatte den gleichen Effekt. Eventuell hätte ein emerge -e world mit den gleichen Flags einen ähnlichen Effekt.

Und ansonsten, liegt denn der Cinebench im Quellcode vor? Das ist doch ein Windowsprogramm. Was haben denn die Flags in der make.conf für einen Einfluss auf Cinebench? Irgend etwas ist da passiert, das glaube ich gerne, aber ob es an den Cflags liegt? Nur als Beispiel, lass den Benchmark doch 10x durchlaufen und schau dann mal, in was für einen Breite die Werte streuen. Eventuell liefen da andere Hintergrundprozesse.

Ich habe da ganz am Anfang auch ewig dran rumprobiert. Mach dir keine Sorgen, dass legt sich irgendwann mal...
Back to top
View user's profile Send private message
Beelzebub_
Apprentice
Apprentice


Joined: 21 May 2012
Posts: 256
Location: outside/todesstern-2.01

PostPosted: Thu Sep 06, 2012 6:48 pm    Post subject: Reply with quote

Wie bell mich bereits darauf aufmerksam gemacht hat, hat sich nichts am Code durch meine Scheinoptimierung getan. Diese Optimierung war Unfug von mir.
Ich bin stets am herum experimentieren/lernen.

"Never change a working system." Ist überhaupt nicht meine Art. ;-)
_________________
Ich habe keine Angst vorm Sterben, ich habe nur Angst ich habe nicht genug gelebt.
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1914
Location: Schweiz

PostPosted: Fri Sep 07, 2012 8:02 am    Post subject: Reply with quote

franzf wrote:
Desweiteren bringt kernel neubauen gar nichts, der verwendet seine eigenen CFLAGS. Man kann zwar irgendwo einstellen, dass zum Bauen die optimierten Flags verwendet werden, würde ich aber nicht empfehlen.

Lass mich raten, diese Einstellungen werden erst sichtbar wenn man dort in den Expertmode geht stimts?
Irgendwie glaube ich nicht das es "gesund" wäre wenn die breite Masse hier, inklusive meiner Wenigkeit, an solchen Einstellungen herumschrauben würde. :wink:
_________________
Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1668

PostPosted: Fri Sep 07, 2012 8:57 am    Post subject: Reply with quote

Ich hab ne ganze weile mal zen-sources verwendet, da gabs eine Option für march=native und ich glaube auf für O2. Ich hatte das aktiviert, und hatte (deswegen) nie Probleme.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4565

PostPosted: Fri Sep 07, 2012 9:40 am    Post subject: Reply with quote

Christian99 wrote:
Ich hab ne ganze weile mal zen-sources verwendet, da gabs eine Option für march=native und ich glaube auf für O2. Ich hatte das aktiviert, und hatte (deswegen) nie Probleme.

Da bringst du mich auf was...
Kann sein dass ich das auch da gesehen hab (bzw. in den pf-sources) und nicht im vanilla... Bei mir hat es aber Probleme bereitet, drum hab ich das schnell wieder ausgemacht.
Hast du denn einen Performancesprung gespürt?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum