-   Msieve (
-   -   ICC performance gain (

testi 2008-11-19 19:06

ICC performance gain
1 Attachment(s)
Hello, just out of interest i compared msieve performance when compiled with ICC and gcc 4.3.

Hardware :
model name : Intel(R) Core(TM)2 Duo CPU E8500 @ 3.16GHz
ram : DD2 8500

gcc (Debian 4.3.2-1) 4.3.2
icc (ICC) 11.0 20080930

Flags :
gcc : -O3 -fomit-frame-pointer -march=core2 -D_FILE_OFFSET_BITS=64
icc : -fast -fp-model precise -D_FILE_OFFSET_BITS=64

GMP was used, compiled with gcc (I could'nt get it to compile with ICC before giving up)

Number to be factored (random 100 digits number generated with openssl):

I tried to be as fair as possible and copied the factor base from the first run (gcc) for the icc run and fixed the random number in the source.

Results :
[CODE]Mon Nov 17 03:29:59 2008 prp50 factor: 38589340584901213653958931179714585367490014795273
Mon Nov 17 03:29:59 2008 prp50 factor: 46715390058453362424711065024780497160328505582673
Mon Nov 17 03:29:59 2008 elapsed time 31:46:11[/CODE]

Tue Nov 18 13:39:01 2008 prp50 factor: 38589340584901213653958931179714585367490014795273
Tue Nov 18 13:39:01 2008 prp50 factor: 46715390058453362424711065024780497160328505582673
Tue Nov 18 13:39:01 2008 elapsed time 27:00:43[/CODE]

Full logs are attached

jasonp 2008-11-19 21:28

Thanks, that's good to know. Brian Gladman has kindly performed a complete overhaul of the preprocessor defines for compiler-specific inline asm, so that the next version will allow icc to reuse all the gcc-specific assembly language. I suspect that it currently does not.

Was this a 64-bit or 32-bit binary?

testi 2008-11-19 22:45

64 bits.
Do you mean msieve will use gcc intrinsics ?

I have seen with other programs that ICC register allocator and optimisations are dramatically more efficient than gcc (for SSE2)

jasonp 2008-11-19 23:41

I meant using gcc-format inline asm statements, which according to Brian can be parsed by icc. He also reports favorable speedups on windows.

testi 2008-11-19 23:46

maybe it would be worth trying intrinsics, i'll try to check if I have time

jasonp 2008-11-20 03:00

Actually, Intel's compiler could probably benefit from a prefetch intrinsic. The code has gcc and MSVC versions but no icc version in include/util.h

All times are UTC. The time now is 06:03.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.