Author: Mike Byrne
Date: 15:05:36 05/19/02
I have been away from computer chess for a while and was glad there is still a large interest in computerchess. Many thanks to those who wrote the "Arena" software -- it's nice work and has room for many more improvements. It is good to see Crafty is alive and well - the latest version 18.14 is very solid. I am able to get 1,000,000 nodes per second using MVC++ 6.0 and the Intel "plug in" compiler. However my intel license is the of the demo variety and will expire in 30 days or so. The intel compiler does have a nifty option that uses the a Profile-guided Optimizations - here's a brief overview: " Profile-guided optimizations (PGO) tell the compiler which areas of an application are most frequently executed. By knowing these areas, the compiler is able to be more selective in optimizing the application. For example, the use of PGO often enables the compiler to make better decisions about function inlining, thereby increasing the effectiveness of interprocedural optimizations. Instrumented Program Profile-guided optimization creates an instrumented program from your source code and special code from the compiler. Each time this instrumented code is executed, the instrumented program generates a dynamic information file. When you compile a second time, the dynamic information files are merged into a summary file. Using the profile information in this file, the compiler attempts to optimize the execution of the most heavily travelled paths in the program. Unlike other optimizations, such as those used strictly for size or speed, the results of IPO and PGO vary. This is due to each program having a different profile and different opportunities for optimizations. The guidelines provided here help you determine if you can benefit by using IPO and PGO. In this version of the IntelĀ® C++ Compiler, PGO is improved in the following ways: Register allocation uses the profile information to optimize the location of spill code. For indirect function calls, branch prediction is improved by identifying the most likely targets. With the PentiumĀ® 4 processor's longer pipeline, improved branch prediction translates to higher performance gains. The compiler detects and does not vectorize loops that execute only a small number of iterations, reducing the run time overhead that vectorization might otherwise add. " My fastest compiler options using the Intel were as follows: CFLAGS = /G7 /Gr /O3 /Ob2 /Ot /Oi /Oa /GA /Zm200 /QxW /Qip /Qprof_gen G7 & QxW is for Pentium 4, /03 is an aggressive use of optimazitions, You must then run the program and play a few games then repeat the compliation process using CFLAGS = /G7 /Gr /O3 /Ob2 /Ot /Oi /Oa /GA /Zm200 /QxW /Qip /Qprof_use I gained roughly 10% more nodes with the Intel compiler over MSVC 6- although I have heard Visual.net is also faster than MSVC 6. There are now multiple hundreds of free chess programsthat run the winboard or UCI protocols - that is also very good for computer chessn enthusiasts. Later this year - Pocket Pc's will be running 400 Mhz CPU's - that will make for very a solid portable chess machine. Best wishes to all. Mike Byrne
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.