Texel 1.02

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

tmokonen
Posts: 1363
Joined: Sun Mar 12, 2006 6:46 pm
Location: Kelowna
Full name: Tony Mokonen

Re: Texel 1.02

Post by tmokonen »

There was your original release of 1.01, and the JA compile. Maybe it was the JA compile that Chan had problems with.
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.02

Post by petero2 »

tmokonen wrote:There was your original release of 1.01, and the JA compile. Maybe it was the JA compile that Chan had problems with.
Possibly, or it could have been a derivative version that someone made as an experiment. Anyway, I don't think it is worth worrying about. If it was my 1.01 version or the JA 1.01 version, they are both obsoleted now by the 1.02 version. If it was a derivative version, whoever created it can worry about fixing regressions in that version.
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: A 32 bit compile ?

Post by petero2 »

Jim Ablett has already compiled a JA version which includes a 32-bit windows executable.

I have not done any speed comparisons yet between the JA executables and my executables. However the general rule to use the fastest version that works on your computer applies in this case too.
IWB
Posts: 1539
Joined: Thu Mar 09, 2006 2:02 pm

64bit compile comparison

Post by IWB »

Intel i5 2500K OS W7

1.02 x64 SEE original = 1
1.02 x64 old original = 0.93
1.02 JA 64bit pop = 0.88

AMD Phenom 2 OS XP-64:

1.02 x64 SEE original = loads, crashing at analysis start!
1.02. old original = 1
1.02 JA 64bit pop = 0.81

AMD 8350 (Piledriver) OS XP-64

1.02 x64 SEE original = 1
1.02. old original = 0.92
1.02 JA 64bit pop = 0.86



A pitty that the original is not running on Phenom2s ...

Bye
Ingo
lucasart
Posts: 3242
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Texel 1.02

Post by lucasart »

Congratulations Peter for this new version of Texel.

I downloaded it and compiled it on Linux with GCC 4.7, using the makefile provided. Works like a bliss:

Code: Select all

$ make
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/bitBoard.o src/bitBoard.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/book.o src/book.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/computerPlayer.o src/computerPlayer.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/enginecontrol.o src/enginecontrol.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/evaluate.o src/evaluate.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/game.o src/game.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/history.o src/history.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/humanPlayer.o src/humanPlayer.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/killerTable.o src/killerTable.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/kpkTable.o src/kpkTable.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/krkpTable.o src/krkpTable.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/krpkrTable.o src/krpkrTable.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/material.o src/material.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/move.o src/move.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/moveGen.o src/moveGen.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/parameters.o src/parameters.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/piece.o src/piece.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/position.o src/position.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/random.o src/random.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/search.o src/search.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/texel.o src/texel.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/textio.o src/textio.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/transpositionTable.o src/transpositionTable.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/treeLogger.o src/treeLogger.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/tuigame.o src/tuigame.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/uciprotocol.o src/uciprotocol.cpp
g++ -O3 -Wall -std=c++11 -pthread -m64 -c -o objdef/util.o src/util.cpp
g++ -pthread -m64 -o texel objdef/bitBoard.o objdef/book.o objdef/computerPlayer.o objdef/enginecontrol.o objdef/evaluate.o objdef/game.o objdef/history.o objdef/humanPlayer.o objdef/killerTable.o objdef/kpkTable.o objdef/krkpTable.o objdef/krpkrTable.o objdef/material.o objdef/move.o objdef/moveGen.o objdef/parameters.o objdef/piece.o objdef/position.o objdef/random.o objdef/search.o objdef/texel.o objdef/textio.o objdef/transpositionTable.o objdef/treeLogger.o objdef/tuigame.o objdef/uciprotocol.o objdef/util.o
I cannot help notice that there are two little optimizations you should include in your makefile:
(i) use '-flto' in the compiling and linking flags. should make your compile a little faster.
(ii) strip the executables, to remove the debug info produced by gcc. should make your compiles smaller.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: 64bit compile comparison

Post by petero2 »

IWB wrote:AMD Phenom 2 OS XP-64:

1.02 x64 SEE original = loads, crashing at analysis start!
1.02. old original = 1
1.02 JA 64bit pop = 0.81

A pitty that the original is not running on Phenom2s ...
Can you please try this version: http://dl.dropboxusercontent.com/u/8968 ... e3-ctz.exe. It is compiled with "-march=athlon64-sse3 -DHAVE_CTZ", which I think should be good for this CPU.
IWB
Posts: 1539
Joined: Thu Mar 09, 2006 2:02 pm

Re: 64bit compile comparison

Post by IWB »

Intel i5 2500K OS W7

1.02 x64 SEE original = 1
1.02 x64 old original = 0.93
1.02 x64 athlon = 0.93
1.02 JA 64bit pop = 0.88

AMD Phenom 2 OS XP-64:

1.02 x64 SEE original = loads, crashing at analysis start!
1.02. old original = 1
1.02 x64 athlon = 1.02
1.02 JA 64bit pop = 0.81

AMD 8350 (Piledriver) OS XP-64

1.02 x64 SEE original = 1
1.02. old original = 0.92
1.02 x64 athlon = 0.93
1.02 JA 64bit pop = 0.86


The special Athlon version is not nessesary. The differences to the "old" version are so small and you limit even more the hardware basis ...

BYe
Ingo
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: 64bit compile comparison

Post by petero2 »

IWB wrote:The special Athlon version is not nessesary. The differences to the "old" version are so small and you limit even more the hardware basis ...
OK, I see, thanks for testing. I think it is the popcount instruction that makes the most speed difference and since the Phenom II doesn't have such an instruction your results make sense.
petero2
Posts: 730
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Texel 1.02

Post by petero2 »

lucasart wrote:Congratulations Peter for this new version of Texel.
Thanks!
lucasart wrote:I downloaded it and compiled it on Linux with GCC 4.7, using the makefile provided. Works like a bliss:

Code: Select all

$ make
If you have an Intel CPU with popcount support, you may want to use "make texel64" instead, which adds the compiler flags "-march=corei7 -DHAVE_CTZ -DHAVE_POPCNT".
lucasart wrote:I cannot help notice that there are two little optimizations you should include in your makefile:
(i) use '-flto' in the compiling and linking flags. should make your compile a little faster.
(ii) strip the executables, to remove the debug info produced by gcc. should make your compiles smaller.
I have never been able to get any speed improvement from "-flto". It does make the program significantly smaller (418KiB vs 483KiB), but not faster in my tests. I don't know why this happens, but I suspect it is because I have many performance critical functions declared inline in header files.

Regarding stripping the executables, yes that makes sense.
Modern Times
Posts: 3773
Joined: Thu Jun 07, 2012 11:02 pm

Re: 64bit compile comparison

Post by Modern Times »

petero2 wrote:
IWB wrote:The special Athlon version is not nessesary. The differences to the "old" version are so small and you limit even more the hardware basis ...
OK, I see, thanks for testing. I think it is the popcount instruction that makes the most speed difference and since the Phenom II doesn't have such an instruction your results make sense.
The Phenom II does have the popcount instruction.