2009/4/22 Michael Williams <[email protected]>:
> This worked for me:
> C:\Libego\lukaszlew-libego-476a46885f80e1f4d83494bb632398b3974e901b>g++ -o
> engine.exe ego/ego.cpp example/main.cpp -O3 -Iego -fomit-frame-pointer
> -ffast-math -frename-registers
>
> (I removed the -march switch)
>
> 22.5101 kpps/GHz
No too much :)
Can you try -march=i686 and -march=core2 (if you have core2) ?
>
>
> And I was able to create a DLL like this:
>
> C:\Libego\lukaszlew-libego-476a46885f80e1f4d83494bb632398b3974e901b>g++
> -shared -o libego.dll ego/eg
> o.cpp exported.cpp -O3 -Iego -fomit-frame-pointer -ffast-math
> -frename-registers
>
> 46274.8727441 pps
>
> SUCCESS! Thanks for everyone's help.
>
>
> Here are the contents of exported.cpp:
This is almost the same as Benchmark::do_playout in benchmark.cpp
>
>
> #include "ego/ego.h"
>
> __declspec(dllexport) void DoPlayouts(int playout_cnt, int * blackWins, int
> * whiteWins)
> {
> SimplePolicy policy;
> Board board [1];
> Board mc_board [1];
> Playout<SimplePolicy> playout(&policy, mc_board);
>
> for (int i = 0; i != playout_cnt; i++) {
> mc_board->load(board);
> playout_status_t status = playout.run ();
> if (status != too_long)
> {
> int score = mc_board -> score ();
> if (score > 0)
> {
> (*blackWins)++;
> }
> else
> {
> (*whiteWins)++;
> }
> }
> }
> }
>
>
> Łukasz Lew wrote:
>>
>> Please download newest version, I made some ifdefWIN 32 ... to aid
>> mingw porting.
>> http://github.com/lukaszlew/libego/zipball/master
>>
>> Under linux I can cross compile to windows binary with a following command
>> $ i586-mingw32msvc-g++ -o engine.exe ego/ego.cpp example/main.cpp -O3
>> -march=native -Iego -fomit-frame-pointer -ffast-math
>> -frename-registers
>>
>> It might just work :)
>>
>> FYI
>> $ i586-mingw32msvc-g++ --version
>> i586-mingw32msvc-g++ (GCC) 4.2.1-sjlj (mingw32-2)
>>
>> And the performance I get is around 32 kpps/GHz
>>
>> Lukasz
>>
>> 2009/4/22 Michael Williams <[email protected]>:
>>>
>>> Ok, I have Mingw installed now. That sounds like the way to go. But I
>>> still don't know how to compile it :/
>>>
>>> According to the SConstruct file, I should be doing something like this
>>> to
>>> build, but it complains:
>>>
>>> C:\Libego> g++ /Fobuild\ego\dbg\ego.obj /c ego\ego.cpp -DDEBUG -ggdb3
>>> -Wall
>>> -Wextra -Wswitch-enum -fno-inline /nologo /Iego
>>>
>>> g++: /Fobuild\ego\dbg\ego.obj: No such file or directory
>>> g++: /c: No such file or directory
>>> g++: /nologo: No such file or directory
>>> g++: /Iego: No such file or directory
>>> In file included from ego\ego.h:27,
>>> from ego\ego.cpp:47:
>>> ego\gtp.h:73: warning: `class Gtp' has virtual functions but non-virtual
>>> destructor
>>> In file included from ego\ego.cpp:54:
>>> ego\player.cpp: In constructor `Player::Player()':
>>> ego\player.cpp:27: warning: converting of negative value `-0x000000001'
>>> to
>>> `uint'
>>> In file included from ego\ego.cpp:55:
>>> ego\color.cpp: In constructor `Color::Color()':
>>> ego\color.cpp:27: warning: converting of negative value `-0x000000001' to
>>> `uint'
>>>
>>>
>>> I also tried the build command for the optimized version:
>>>
>>>
>>> C:\Libego> g++ /Fobuild\ego\opt\ego.obj /c ego\ego.cpp -DDEBUG -ggdb3
>>> -Wall
>>> -Wextra -Wswitch-enum -O3 -march=native -fomit-frame-pointer -ffast-math
>>> -frename-registers /nologo /Iego
>>>
>>> g++: /Fobuild\ego\opt\ego.obj: No such file or directory
>>> g++: /c: No such file or directory
>>> g++: /nologo: No such file or directory
>>> g++: /Iego: No such file or directory
>>> ego\ego.cpp:1: error: bad value (native) for -march= switch
>>> ego\ego.cpp:1: error: bad value (native) for -mtune= switch
>>>
>>>
>>> Sorry for my ignorance.
>>>
>>>
>>>
>>> Łukasz Lew wrote:
>>>>
>>>> 2009/4/21 Łukasz Lew <[email protected]>:
>>>>>
>>>>> mingw rules!
>>>>> I compiled libego with it and got a decent 32kpps / GHz ( native g++
>>>>> was 44kpps / GHz)
>>>>
>>>> I used wine to run resulting exe on linux:)
>>>>
>>>>> Lukasz
>>>>>
>>>>> 2009/4/21 Don Dailey <[email protected]>:
>>>>>>
>>>>>> I use mingw to produce cros platform executables. I can build
>>>>>> executables
>>>>>> for linux, win32 and win64, which for my chess program is a must since
>>>>>> it's
>>>>>> 64 bit.
>>>>>>
>>>>>> - Don
>>>>>>
>>>>>>
>>>>>> On Tue, Apr 21, 2009 at 5:33 AM, Łukasz Lew <[email protected]>
>>>>>> wrote:
>>>>>>>
>>>>>>> On Tue, Apr 21, 2009 at 11:23, elife <[email protected]> wrote:
>>>>>>>>>
>>>>>>>>> I forgot about cygwin indeed. It is a good idea.
>>>>>>>>> But can you ran the binary on a system without cygwin?
>>>>>>>>
>>>>>>>> We can run the binary on a system without cygwin if we provide
>>>>>>>> cygwin1.dll.
>>>>>>>
>>>>>>> That is great.
>>>>>>> Another good idea is mingw.
>>>>>>>
>>>>>>> BTW
>>>>>>> I would like to recommend stackoverflow.com for programming
>>>>>>> questions.
>>>>>>> I asked this question there
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw
>>>>>>> and got few good answers within a minute.
>>>>>>>
>>>>>>> Lukasz
>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> computer-go mailing list
>>>>>>>> [email protected]
>>>>>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> computer-go mailing list
>>>>>>> [email protected]
>>>>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>>>
>>>>>> _______________________________________________
>>>>>> computer-go mailing list
>>>>>> [email protected]
>>>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>>>
>>>> _______________________________________________
>>>> computer-go mailing list
>>>> [email protected]
>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>
>>> _______________________________________________
>>> computer-go mailing list
>>> [email protected]
>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>
>> _______________________________________________
>> computer-go mailing list
>> [email protected]
>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>
>
> _______________________________________________
> computer-go mailing list
> [email protected]
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/