2009/4/22 Michael Williams <michaelwilliam...@gmail.com>:
> 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 <michaelwilliam...@gmail.com>:
>>>
>>> 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 <lukasz....@gmail.com>:
>>>>>
>>>>> 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 <dailey....@gmail.com>:
>>>>>>
>>>>>> 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 <lukasz....@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> On Tue, Apr 21, 2009 at 11:23, elife <elife2...@gmail.com> 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
>>>>>>>> computer-go@computer-go.org
>>>>>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> computer-go mailing list
>>>>>>> computer-go@computer-go.org
>>>>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>>>
>>>>>> _______________________________________________
>>>>>> computer-go mailing list
>>>>>> computer-go@computer-go.org
>>>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>>>
>>>> _______________________________________________
>>>> computer-go mailing list
>>>> computer-go@computer-go.org
>>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>>
>>> _______________________________________________
>>> computer-go mailing list
>>> computer-go@computer-go.org
>>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>>
>> _______________________________________________
>> computer-go mailing list
>> computer-go@computer-go.org
>> http://www.computer-go.org/mailman/listinfo/computer-go/
>>
>
> _______________________________________________
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to