/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
icc vs gcc
Fra : Per Abrahamsen


Dato : 13-02-03 10:17

Til min store overaskelse slår gcc icc i min applikation:

gcc-3.2 -Os -fast-math -mcpu=pentiumpro -march=pentium

40.120u 0.280s 0:41.63 97.0% 0+0k 0+0io 700pf+0w
40.340u 0.190s 0:41.67 97.2% 0+0k 0+0io 700pf+0w

gcc-3.2 -O2 -fast-math -mcpu=pentiumpro -march=pentium

36.550u 0.210s 0:38.11 96.4% 0+0k 0+0io 779pf+0w
36.750u 0.270s 0:38.43 96.3% 0+0k 0+0io 779pf+0w

icc-7.0 -O2

42.530u 0.350s 0:49.30 86.9% 0+0k 0+0io 1036pf+0w
42.610u 0.220s 0:43.98 97.3% 0+0k 0+0io 1035pf+0w

Dette er en numerisk simulation der kører på en 600 MHz Pentium
maskine.

Så vidt jeg kan se er "-fast-math" default for icc. Jeg kunne ikke
finde nogen flag i manualsiden der svarede til "-mcpu=pentiumpro
-march=pentium", er det 386 kode jeg har fået?

icc genrerer desuden betydeligt større kode

text    data    bss    dec    hex   compiler
2065583    522076    3004   2590663    2787c7   gcc -Os
2498448    431672    3004   2933124    2cc184   gcc -O2
4080572 5902276 7728 9990576 9871b0 icc -O2

 
 
Mogens Hansen (13-02-2003)
Kommentar
Fra : Mogens Hansen


Dato : 13-02-03 22:09


"Per Abrahamsen" <abraham@dina.kvl.dk> wrote

> Til min store overaskelse slår gcc icc i min applikation:

Det lyder da flot.

[8<8<8<]
> icc-7.0 -O2

På MS-Windows har Intel C++ også en -O3 option (jeg skal dog ikke kunne sige
om det gør nogen forskel).
Desuden har den en håndfuld -Qx??? optioner, som angiver om der må bruges
f.eks. MMX eller SIMD instruktioner.

[8<8<8<]
> Så vidt jeg kan se er "-fast-math" default for icc. Jeg kunne ikke
> finde nogen flag i manualsiden der svarede til "-mcpu=pentiumpro
> -march=pentium", er det 386 kode jeg har fået?

På MS-Windows har Intel C++ compileren nogle -G5, -G6 og G7 options, der
angiver hvilken processor.
-G6 er default, og det er optimeret til Pentium Pro, Pentium II og Pentium
III.

>
> icc genrerer desuden betydeligt større kode
>
> text data bss dec hex compiler
> 2065583 522076 3004 2590663 2787c7 gcc -Os
> 2498448 431672 3004 2933124 2cc184 gcc -O2
> 4080572 5902276 7728 9990576 9871b0 icc -O2

Er der forskel på hvor meget der er linket statisk eller dynamisk ?

Det kan måske være interessant at læse:
http://www.coyotegulch.com/reviews/intel_comp/intel_gcc_bench2.html
http://www.open-mag.com/features/Vol_27/IntelC6/intelc6.htm

Venlig hilsen

Mogens Hansen



Per Abrahamsen (14-02-2003)
Kommentar
Fra : Per Abrahamsen


Dato : 14-02-03 10:08

"Mogens Hansen" <mogens_h@dk-online.dk> writes:

> "Per Abrahamsen" <abraham@dina.kvl.dk> wrote
>
>> Til min store overaskelse slår gcc icc i min applikation:
>
> Det lyder da flot.
>
> [8<8<8<]
>> icc-7.0 -O2
>
> På MS-Windows har Intel C++ også en -O3 option (jeg skal dog ikke kunne sige
> om det gør nogen forskel).

Den er beskrevet på manualsiden som optimeringer der nogen gange giver
langsommere kode. GCC har også et -O3 flag med en ligenende semantik.

> Desuden har den en håndfuld -Qx??? optioner, som angiver om der må bruges
> f.eks. MMX eller SIMD instruktioner.

Dem har GCC også, men applikationen skal kunne køre på en Pentium Pro...

> På MS-Windows har Intel C++ compileren nogle -G5, -G6 og G7 options, der
> angiver hvilken processor.
> -G6 er default, og det er optimeret til Pentium Pro, Pentium II og Pentium
> III.

Ok, det svarer så til de flag jeg gav GCC.

> Er der forskel på hvor meget der er linket statisk eller dynamisk ?

Det er svært at se, men GCC linker til et betydligt større C++ bibliotek.

2% ldd */daisy
icc/daisy:
libm.so.6 => /lib/libm.so.6 (0x4001d000)
libcxa.so.3 => /opt/intel/compiler70/ia32/lib/libcxa.so.3 (0x4003e000)
libc.so.6 => /lib/libc.so.6 (0x40074000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
gcc/daisy:
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4001d000)
libc.so.6 => /lib/libc.so.6 (0x400c6000)
libm.so.6 => /lib/libm.so.6 (0x401e1000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40202000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

% size /opt/intel/compiler70/ia32/lib/libcxa.so.3 /usr/lib/libstdc++.so.5 /lib/libgcc_s.so.1
text data bss dec hex filename
133511 79648 132 213291 3412b /opt/intel/compiler70/ia32/lib/libcxa.so.3
574300 91360 20288 685948 a777c /usr/lib/libstdc++.so.5
24777 3532 36 28345 6eb9 /lib/libgcc_s.so.1


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste