hi, I'd like to test my engine in 64bit mode, can anyone make for me a 64 bit windows build with gcc and do some test of the engine?
I still havent' a 64 bit operating system
64bit compile
Moderator: Ras
-
velmarin
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
Re: 64bit compile
GCC is not my strength (none, go),
at the version 2.3 I compile with Intel, but had breaks in the game.
I looked at your code again and there is intrinsic to 64 bits, may not go far ahead.
Yet I have always noticed very little departure from NPS in Vajolet, guess which product is measured (nodes).
Good luck.
at the version 2.3 I compile with Intel, but had breaks in the game.
I looked at your code again and there is intrinsic to 64 bits, may not go far ahead.
Yet I have always noticed very little departure from NPS in Vajolet, guess which product is measured (nodes).
Good luck.
-
phenri
- Posts: 284
- Joined: Tue Aug 13, 2013 9:44 am
Re: 64bit compile
Hi,elcabesa wrote:hi, I'd like to test my engine in 64bit mode, can anyone make for me a 64 bit windows build with gcc and do some test of the engine?
I still havent' a 64 bit operating system
I just tried, tell me where I start. Thanks
Code: Select all
gcc vajolet.cpp -o vajolet.exe
In file included from movegen.h:23:0,
from vajolet.cpp:34:
search.h: In constructor 'Search::Search()':
search.h:84:37: error: 'log' was not declared in this scope
search.h:86:69: error: 'floor' was not declared in this scope
-
elcabesa
- Posts: 858
- Joined: Sun May 23, 2010 1:32 pm
Re: 64bit compile
I didn't understood your message.
Vajolet 2.03 didn't compile in gcc. I need to compile a new development version to 64bit and test it against the 32 bit version.
Yet I have always noticed very little departure from NPS in Vajolet, guess which product is measured (nodes).
Vajolet 2.03 didn't compile in gcc. I need to compile a new development version to 64bit and test it against the 32 bit version.
Yet I have always noticed very little departure from NPS in Vajolet, guess which product is measured (nodes).
what do you mean?Yet I have always noticed very little departure from NPS in Vajolet, guess which product is measured (nodes).
-
velmarin
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
Re: 64bit compile
I understand, poorly translated.
I just wanted to help.
Intrinsic in Bitops.cpp are in 32-bit format, there will be no profit.
On my computer, your executable Vajolet produces very few nodes, 500 in the picture.
Winglet you see, 2000.
I guess "how to measure the nodes is just different."
I hope help you.

I just wanted to help.
Intrinsic in Bitops.cpp are in 32-bit format, there will be no profit.
Code: Select all
return __builtin_popcountl((unsigned int)bitmap)+__builtin_popcountl(bitmap>>32);
if(_BitScanReverse(&res,bitmap>>32)!=0){Winglet you see, 2000.
I guess "how to measure the nodes is just different."
I hope help you.

-
mar
- Posts: 2672
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: 64bit compile
More clever search => more work per node => less nps. More eval terms => less nps. So if engine A searches 4x faster than engine B in terms of nps, it may still be much weaker than B. Of course if B searches 4x faster than itself, the elo gain will be huge.velmarin wrote:On my computer, your executable Vajolet produces very few nodes, 500 in the picture.
Winglet you see, 2000.
-
velmarin
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
Re: 64bit compile
It is only an indication, Martin.mar wrote:More clever search => more work per node => less nps. More eval terms => less nps. So if engine A searches 4x faster than engine B in terms of nps, it may still be much weaker than B. Of course if B searches 4x faster than itself, the elo gain will be huge.velmarin wrote:On my computer, your executable Vajolet produces very few nodes, 500 in the picture.
Winglet you see, 2000.
Thank you for your explanation.
Basically Vajolet is based in Winglet.
I worked hard in Winglet, this is a learning project, I ported it to 64 bits easily, and without loss of speed.
My thought is that perhaps the many changes of Marco, something is not right.
just a feeling.
-
elcabesa
- Posts: 858
- Joined: Sun May 23, 2010 1:32 pm
Re: 64bit compile
thank you, vajolet 2.03 didn't compile with gcc but my dev version will!! I'll send you a PMphenri wrote:Hi,elcabesa wrote:hi, I'd like to test my engine in 64bit mode, can anyone make for me a 64 bit windows build with gcc and do some test of the engine?
I still havent' a 64 bit operating system
I just tried, tell me where I start. ThanksCode: Select all
gcc vajolet.cpp -o vajolet.exe In file included from movegen.h:23:0, from vajolet.cpp:34: search.h: In constructor 'Search::Search()': search.h:84:37: error: 'log' was not declared in this scope search.h:86:69: error: 'floor' was not declared in this scope
-
phenri
- Posts: 284
- Joined: Tue Aug 13, 2013 9:44 am
Re: 64bit compile
Code: Select all
Compiling: \vajolet2-112b8189b4e0\vajolet.cpp
In file included from \vajolet2-112b8189b4e0\vajolet.cpp:29:
\vajolet2-112b8189b4e0\board.h:331: error: default template arguments may not be used in function templates
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warningsCode: Select all
c:\vajolet2-112b8189b4e0>C:\MinGW\bin\gcc vajolet.cpp -o vajolet.exe -std=gnu++0x
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0xf): undefined reference to `checkCpuCapabilities()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x14): undefined reference to `comInit()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x1b): undefined reference to `Board::KEY'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x20): undefined reference to `HashKeys::init()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x25): undefined reference to `dataInit()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x2c): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x31): undefined reference to `Board::initPST()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x38): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x3d): undefined reference to `Board::init()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x4c): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x60): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x74): undefined reference to `command()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0xe8): undefined reference to `Movegen::genAll()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x10e): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x113): undefined reference to `Board::makeMove(Move)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x12c): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x131): undefined reference to `Board::unmakeMove()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x143): undefined reference to `Movegen::getNext(Move&)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x1ec): undefined reference to `Movegen::genAll()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x212): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x217): undefined reference to `Board::makeMove(Move)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x230): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x235): undefined reference to `Board::unmakeMove()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x247): undefined reference to `Movegen::getNext(Move&)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x2f5): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x2fa): undefined reference to `Board::makeMove(Move)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x301): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x336): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x33b): undefined reference to `Board::unmakeMove()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x355): undefined reference to `Move::display(bool)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x363): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x372): undefined reference to `std::cout'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x377): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x38f): undefined reference to `std::ostream::operator<<(unsigned long long)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x397): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x39f): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x3a8): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x3ad): undefined reference to `Board::unmakeMove()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x3bf): undefined reference to `Movegen::getNext(Move&)'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x40c): undefined reference to `std::ios_base::Init::~Init()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text+0x42f): undefined reference to `std::ios_base::Init::Init()'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x29): undefined reference to `Search::Reductions'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x3d): undefined reference to `Search::Reductions'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x7b): undefined reference to `PVredQ'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0xa2): undefined reference to `PVredM'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0xb0): undefined reference to `nonPVRedQ'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0xd7): undefined reference to `nonPVRedM'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x13c): undefined reference to `Search::Reductions'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search13initReductionEv[Search::initReduction()]+0x193): undefined reference to `Search::Reductions'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search17clearHistoryTableEv[Search::clearHistoryTable()]+0x24): undefined reference to `Search::historyTable'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN6Search17clearHistoryTableEv[Search::clearHistoryTable()]+0x3d): undefined reference to `Search::historyTable'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x6a): undefined reference to `Movegen::nextPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x73): undefined reference to `Movegen::captureMovesPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x7d): undefined reference to `Movegen::nextPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x86): undefined reference to `Movegen::quietMovesPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x91): undefined reference to `Movegen::nextPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x97): undefined reference to `Movegen::nextPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0xe9): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x11c): undefined reference to `Search::killermoves'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x14c): undefined reference to `Search::killermoves'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x16c): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x182): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x19b): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x1a2): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x1b8): undefined reference to `board'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenC1Eists[Movegen::Movegen(int, short, unsigned short, short)]+0x1d8): undefined reference to `Search::refutationMoves'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenD1Ev[Movegen::~Movegen()]+0x4): undefined reference to `Movegen::nextPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.text$_ZN7MovegenD1Ev[Movegen::~Movegen()]+0xa): undefined reference to `Movegen::nextPool'
c:\Temp\cc2fOpsm.o:vajolet.cpp:(.eh_frame+0x47): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status-
elcabesa
- Posts: 858
- Joined: Sun May 23, 2010 1:32 pm
Re: 64bit compile
the first one problem is related to use -std=c++11 , try it.
the second problem seem to me you have compiled vajolet.cpp to vajolet .exe. but you need to ompile all the cpp file and then link them toghether, am i wrong??
the second problem seem to me you have compiled vajolet.cpp to vajolet .exe. but you need to ompile all the cpp file and then link them toghether, am i wrong??