Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved] Kein automatisch aktiviertes SSE?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
Necoro
Veteran
Veteran


Joined: 18 Dec 2005
Posts: 1912
Location: Germany

PostPosted: Sat Mar 12, 2011 10:14 pm    Post subject: [solved] Kein automatisch aktiviertes SSE? Reply with quote

Hi,

ich habe erst heute morgen von dem schönen Aufruf gcc -c -Q -march=native --help=target erfahren, der einem anzeigt, welche Flags vom gcc automatisch gesetzt werden. Und erstaunlicherweise muss ich feststellen: SSE-Flags (sse, sse2, sse3, mmx) sind nicht dabei 8O

Da ich bisher immer ausgegangen bin, dass dem so ist (so wird es auch von jeder Doku behauptet), schockt mich das ein wenig. Hat da jemand evtl Infos zu?

Meine /proc/cpuinfo:

Code:
processor   : 0
vendor_id   : GenuineIntel
cpu family   : 15
model      : 4
model name   : Intel(R) Pentium(R) D CPU 2.80GHz
stepping   : 7
cpu MHz      : 2811.172
cache size   : 1024 KB
physical id   : 0
siblings   : 2
core id      : 0
cpu cores   : 2
apicid      : 0
initial apicid   : 0
fdiv_bug   : no
hlt_bug      : no
f00f_bug   : no
coma_bug   : no
fpu      : yes
fpu_exception   : yes
cpuid level   : 5
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr lahf_lm
bogomips   : 5622.34
clflush size   : 64
cache_alignment   : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:


Und die Ausgabe des obigen Befehls:

Code:
The following options are target specific:
  -m128bit-long-double              [disabled]
  -m32                              [enabled]
  -m3dnow                           [disabled]
  -m3dnowa                          [disabled]
  -m64                              [disabled]
  -m80387                           [enabled]
  -m96bit-long-double               [enabled]
  -mabm                             [disabled]
  -maccumulate-outgoing-args        [disabled]
  -maes                             [disabled]
  -malign-double                    [disabled]
  -malign-functions=                
  -malign-jumps=                    
  -malign-loops=                    
  -malign-stringops                 [enabled]
  -march=                           nocona
  -masm=                            
  -mavx                             [disabled]
  -mbranch-cost=                    
  -mcld                             [disabled]
  -mcmodel=                         
  -mcx16                            [enabled]
  -mfancy-math-387                  [enabled]
  -mfma                             [disabled]
  -mforce-drap                      [disabled]
  -mfp-ret-in-387                   [enabled]
  -mfpmath=                         
  -mfused-madd                      [enabled]
  -mglibc                           [enabled]
  -mhard-float                      [enabled]
  -mieee-fp                         [enabled]
  -mincoming-stack-boundary=        
  -minline-all-stringops            [disabled]
  -minline-stringops-dynamically    [disabled]
  -mintel-syntax                    [disabled]
  -mlarge-data-threshold=           
  -mmmx                             [disabled]
  -mms-bitfields                    [disabled]
  -mno-align-stringops              [disabled]
  -mno-fancy-math-387               [disabled]
  -mno-fused-madd                   [disabled]
  -mno-push-args                    [disabled]
  -mno-red-zone                     [disabled]
  -mno-sse4                         [enabled]
  -momit-leaf-frame-pointer         [disabled]
  -mpc                              
  -mpclmul                          [disabled]
  -mpopcnt                          [disabled]
  -mpreferred-stack-boundary=       
  -mpush-args                       [enabled]
  -mrecip                           [disabled]
  -mred-zone                        [enabled]
  -mregparm=                        
  -mrtd                             [disabled]
  -msahf                            [enabled]
  -msoft-float                      [disabled]
  -msse                             [disabled]
  -msse2                            [disabled]
  -msse2avx                         [disabled]
  -msse3                            [disabled]
  -msse4                            [disabled]
  -msse4.1                          [disabled]
  -msse4.2                          [disabled]
  -msse4a                           [disabled]
  -msse5                            [disabled]
  -msseregparm                      [disabled]
  -mssse3                           [disabled]
  -mstack-arg-probe                 [disabled]
  -mstackrealign                    [enabled]
  -mstringop-strategy=              
  -mtls-dialect=                    
  -mtls-direct-seg-refs             [enabled]
  -mtune=                           nocona
  -muclibc                          [disabled]
  -mveclibabi=


(Interessanterweise stell ich auch fest, dass er intern denn "march" auf "nocona" setzt, obwohl "prescott" eigentlich das richtige wäre -- aber evtl mappt er das intern auch auf das gleiche...)
_________________
Inter Deum Et Diabolum Semper Musica Est.


Last edited by Necoro on Sat Mar 12, 2011 10:56 pm; edited 2 times in total
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5321

PostPosted: Sat Mar 12, 2011 10:29 pm    Post subject: Reply with quote

nocona ist im grunde das gleiche wie prescott nur mit 64Bit extension support

man gcc wrote:
prescott
Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2 and
SSE3 instruction set support.

nocona
Improved version of Intel Pentium4 CPU with 64-bit extensions,
MMX, SSE, SSE2 and SSE3 instruction set support.


Und wegen der Ausgabe des commandos:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43718
Aber ganz schlau werde ich aus den Kommentaren auch nicht. Scheinbar bekommt --help=target nicht mit, wenn optionen/cpu-features durch die -march option implizit aktiviert werden.
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Necoro
Veteran
Veteran


Joined: 18 Dec 2005
Posts: 1912
Location: Germany

PostPosted: Sat Mar 12, 2011 10:37 pm    Post subject: Reply with quote

Ah - also nur ein Problem der Darstellung, wenn man diesen Bug liest? Wundert mich, dass die sowas denn nicht einfach gefixt haben (andererseits: Wenn das stärkere Auswirkungen hätte, liefe der sicherlich nicht als "minor")

/edit: Wunder mich, wie man jetzt eindeutig rausbekommen kann, ob der SSE3 nutzt oder net ...
_________________
Inter Deum Et Diabolum Semper Musica Est.
Back to top
View user's profile Send private message
Necoro
Veteran
Veteran


Joined: 18 Dec 2005
Posts: 1912
Location: Germany

PostPosted: Sat Mar 12, 2011 10:56 pm    Post subject: Reply with quote

So - habs für mich jetzt mit "ist wirklich nur ein Anzeigebug" abgeschlossen.

Grund:

Wenn man ein kleines Testprogramm schreibt, was Floating Point-Arithmetik benutzt und mit "-mfpmath=sse" die SSE-Befehle für jegliche FP-Arithmetik erzwingt, so liefert er mit "-march=native" Assembler-Code, der nach SSE aussieht (und sich auf jeden Fall von dem ohne SSE unterscheidet). Wenn man das "-march" dagegen weglässt, kommt hingegen "warning: SSE instruction set disabled, using 387 arithmetics".

Insofern: Solved.
_________________
Inter Deum Et Diabolum Semper Musica Est.
Back to top
View user's profile Send private message
mastacloak
Apprentice
Apprentice


Joined: 01 Aug 2004
Posts: 174
Location: Berlin / Germany

PostPosted: Sun Mar 13, 2011 6:43 pm    Post subject: Reply with quote

Aus http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS kenne ich noch diesen Test:
Code:
 $ echo "" | gcc -march=native -v -E - 2>&1 | grep cc1

Bei mir stimmt die Ausgabe auf den ersten Blick mit
Code:
$ gcc -c -Q -march=native --help=target

überein.
Back to top
View user's profile Send private message
Josef.95
Advocate
Advocate


Joined: 03 Sep 2007
Posts: 4670
Location: Germany

PostPosted: Sun Mar 13, 2011 8:33 pm    Post subject: Reply with quote

Die Ausgabe von
Code:
$ gcc -c -Q -march=native --help=target
würde hier, mit einer AMD CPU auch nicht stimmen.

Eine sehr ausführliche Ausgabe (die auch stimmt) kann man sich zb mit
Code:
$ cd /tmp
$ echo 'int main() {return 0;}' > test.c && gcc -v -Q -march=native -O2 test.c -o test && rm test.c test
ausgeben lassen.
Back to top
View user's profile Send private message
Necoro
Veteran
Veteran


Joined: 18 Dec 2005
Posts: 1912
Location: Germany

PostPosted: Sun Mar 13, 2011 8:36 pm    Post subject: Reply with quote

Josef.95 wrote:
Die Ausgabe von
Code:
$ gcc -c -Q -march=native --help=target
würde hier, mit einer AMD CPU auch nicht stimmen.

Eine sehr ausführliche Ausgabe (die auch stimmt) kann man sich zb mit
Code:
$ cd /tmp
$ echo 'int main() {return 0;}' > test.c && gcc -v -Q -march=native -O2 test.c -o test && rm test.c test
ausgeben lassen.

Ah super :) Danke
_________________
Inter Deum Et Diabolum Semper Musica Est.
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6780

PostPosted: Sun Mar 13, 2011 9:49 pm    Post subject: Reply with quote

Josef.95 wrote:
Eine sehr ausführliche Ausgabe...

Wer will dazu schon eine /tmp-Datei erstellen? Da ich mich jetzt nicht erinnern kann, ob ich das schon mal gepostet habe:
Code:
#! /bin/sh
Usage() {
        printf '%s\n' "Usage: ${0##*/} c|o [gcc-Flags e.g. -march=native -O2]
Show which compile|optimization flags are selected when you chose gcc-Flags"
        exit ${1:-1}
}

case "${1}" in
c)      shift
        exec gcc -v -c -Q "${@}" -o /dev/null -x c - 2>&1 <<PROG
int main(){return 0;}
PROG
        ;;
o)      shift
        exec gcc -c -Q "${@}" -o /dev/null --help=optimizer 2>&1;;
*)      Usage;;
esac
Back to top
View user's profile Send private message
Necoro
Veteran
Veteran


Joined: 18 Dec 2005
Posts: 1912
Location: Germany

PostPosted: Sun Mar 13, 2011 10:20 pm    Post subject: Reply with quote

Danke :) Die Funktion fand Einzug in meine Zsh-Funktionssammlung :)
_________________
Inter Deum Et Diabolum Semper Musica Est.
Back to top
View user's profile Send private message
kernelOfTruth
Watchman
Watchman


Joined: 20 Dec 2005
Posts: 6111
Location: Vienna, Austria; Germany; hello world :)

PostPosted: Sun Mar 13, 2011 11:48 pm    Post subject: Reply with quote

@Josef.95, mv:

danke euch beiden :)
_________________
https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa

Hardcore Gentoo Linux user since 2004 :D
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
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