Reply
 
LinkBack Thread Tools Display Modes
  #1   Report Post  
Old October 12th 05, 09:42 AM
Rumbuff
 
Posts: n/a
Default Building Fruit 2.1 from source: best options for Intel Compiler 9.0?

Hi there,

I compiled Fruit 2.1 from source (Windows 2000) with the Intel C++
Compiler 9.0.
After optimizing for my CPU (AMD Athlon XP 2500+) and profile based
optimization I found out that my fruit version still isn't faster
(nodes/sec) than the original exe. It's even, in the best case.

Any suggestions which compiler options should be used?

Any experiences with building Fruit 2.1 from source?

Thanks,
Rumbuff

  #2   Report Post  
Old October 12th 05, 02:53 PM
Alexander Belov
 
Posts: n/a
Default

For AMD processors the best code is generated when optimization for Pentium
III is chosen (P6 arch). This is able to add another 2-4% to performance in
comparison with Pentium IV specific optimization.

"Rumbuff" wrote in message
oups.com...
Hi there,

I compiled Fruit 2.1 from source (Windows 2000) with the Intel C++
Compiler 9.0.
After optimizing for my CPU (AMD Athlon XP 2500+) and profile based
optimization I found out that my fruit version still isn't faster
(nodes/sec) than the original exe. It's even, in the best case.

Any suggestions which compiler options should be used?

Any experiences with building Fruit 2.1 from source?

Thanks,
Rumbuff



  #3   Report Post  
Old October 12th 05, 04:42 PM
David Richerby
 
Posts: n/a
Default

Rumbuff wrote:
I compiled Fruit 2.1 from source (Windows 2000) with the Intel C++
Compiler 9.0.
After optimizing for my CPU (AMD Athlon XP 2500+) and profile based
optimization I found out that my fruit version still isn't faster
(nodes/sec) than the original exe. It's even, in the best case.


I doubt that producing good code on AMD chips is high on the list of
priorities of Intel's compiler team.


Dave.

--
David Richerby Cheese Chicken (TM): it's like a farm
www.chiark.greenend.org.uk/~davidr/ animal that's made of cheese!
  #4   Report Post  
Old October 13th 05, 11:23 AM
Rumbuff
 
Posts: n/a
Default

Dave, I agree. But that compiler is free for evaluation, that's why I
tried.

On the other hand, Fruit's author doesen't know on which CPU his EXE
will be executed, he had to make a generic build.
So he can't have made any specific arch optimizations (maybe i586).
But he definetly did a lot of optimizing during compilation with other
options...

BTW, I'm experimenting with GCC under Windows (using MinGw). GCC has
tons of optimizing options (also profile based optimiziation). But
first results are disappointing.
With "-O3" it was approx. 100 kN/s slower than the original, and with
"-fprofile-generate -fprofile-use" it's even slower as -O3 !!

I will check this with Linux. Maybe I build an "UCI-forwarder", run
fruit at Linux, the Chessbase-GUI at Windows and the forwarder connects
engine and GUI.

I'll keep you updated...

  #5   Report Post  
Old October 13th 05, 12:11 PM
Gian-Carlo Pascutto
 
Posts: n/a
Default

Rumbuff wrote:

With "-O3" it was approx. 100 kN/s slower than the original, and with
"-fprofile-generate -fprofile-use" it's even slower as -O3 !!


You first have to use -fprofile-generate, run the exe a few times, and
then recompile with -fprofile-use.

--
GCP


  #6   Report Post  
Old October 13th 05, 01:15 PM
Rumbuff
 
Posts: n/a
Default

Thanks, but I did it that way.

A differnece to the Intel compiler is, that GCC only collects the data
from the *last* execution. So it makes no difference if you run your
app 1 or 100 times.
In contrast ICC saves the data of each run in a separate file and
merges them before the last compile stage.

  #7   Report Post  
Old October 13th 05, 02:09 PM
David Richerby
 
Posts: n/a
Default

Rumbuff wrote:
BTW, I'm experimenting with GCC under Windows (using MinGw). GCC has
tons of optimizing options (also profile based optimiziation). But
first results are disappointing.


GCC's does very little hardware-specific optimization. Intel's compiler
is supposed to be extremely good on Intel systems because it's the
compiler they use to compile benchmarking programs. (OTOH, this means
that its optimizer is itself primarily optimized to compile the SPEC
benchmark programs extremely well.)

Alas, I've no idea what compiler produces the best code on AMD systems.


Dave.

--
David Richerby Old-Fashioned Salted Robot (TM):
www.chiark.greenend.org.uk/~davidr/ it's like a high-tech robot but it's
covered in salt and perfect for your
grandparents!
  #8   Report Post  
Old October 18th 05, 01:20 PM
Arash Salarian
 
Posts: n/a
Default Building Fruit 2.1 from source: best options for Intel Compiler 9.0?

"Rumbuff" wrote in message
oups.com...
Dave, I agree. But that compiler is free for evaluation, that's why I
tried.

On the other hand, Fruit's author doesen't know on which CPU his EXE
will be executed, he had to make a generic build.
So he can't have made any specific arch optimizations (maybe i586).
But he definetly did a lot of optimizing during compilation with other
options...

BTW, I'm experimenting with GCC under Windows (using MinGw). GCC has
tons of optimizing options (also profile based optimiziation). But
first results are disappointing.
With "-O3" it was approx. 100 kN/s slower than the original, and with
"-fprofile-generate -fprofile-use" it's even slower as -O3 !!

I will check this with Linux. Maybe I build an "UCI-forwarder", run
fruit at Linux, the Chessbase-GUI at Windows and the forwarder connects
engine and GUI.

I'll keep you updated...


While you are at it, I suggest to consider trying Visual C++ 7.1 too. It has
a much better optimizer than GCC and should give you good results. If you
don't have the completer version, you can try the free version (comandline
tools, with no IDE but with the same optimizing compiler) he

http://msdn.microsoft.com/visualc/vctoolkit2003/

Regards
Arash


  #9   Report Post  
Old October 19th 05, 12:28 PM
Rumbuff
 
Posts: n/a
Default Building Fruit 2.1 from source: best options for Intel Compiler 9.0?

Ah, thanks a lot for the link. I will try MS Visual C++ 7.1 soon.

I'm working on an "UCI-Forwarder" now, a small App between GUI and
UCI-engine that writes the raw engine-speed (nodes/sec) to a log file.
That way one could compare the performance of a user compiled engine
with the original EXE when these engines battle each other.

Thanks again,
Rumbuff

  #10   Report Post  
Old October 19th 05, 01:40 PM
David Richerby
 
Posts: n/a
Default Building Fruit 2.1 from source: best options for Intel Compiler 9.0?

Rumbuff wrote:
Ah, thanks a lot for the link. I will try MS Visual C++ 7.1 soon.

I'm working on an "UCI-Forwarder" now, a small App between GUI and
UCI-engine that writes the raw engine-speed (nodes/sec) to a log file.
That way one could compare the performance of a user compiled engine
with the original EXE when these engines battle each other.


Most of the work for this has probably already been done in the various
UCI-to-XBoard translators. It might be quicker to hack this into one of
those but it might not. :-)


Dave.

--
David Richerby Radioactive Goldfish (TM): it's like
www.chiark.greenend.org.uk/~davidr/ a fish but it'll make you glow in
the dark!
Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Strongest chess engine now available for purchase: Fruit Redshift rec.games.chess.computer (Computer Chess) 4 October 3rd 05 11:39 AM


All times are GMT +1. The time now is 09:46 AM.

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Copyright 2004-2019 ChessBanter.
The comments are property of their posters.
 

About Us

"It's about Chess"

 

Copyright © 2017