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/