cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

smato
Journeyman III

Zeta OpenCL Chess 097x released

Zeta is an Chess Engine written in OpenCL,

it uses an Best-First-Search, MonteCarlo-AlphaBeta,

and reaches on an HighEnd-GPU about 1800 Elo points.

Sources

https://github.com/smatovic/Zeta/tree/zeta_cl_097x

Blog

http://zeta-chess.blogspot.com/

--

Srdja

0 Likes
8 Replies
himanshu_gautam
Grandmaster

Congratulations ! This is great news!

If you have time and if I am not asking for more, Can you please share the following with the community?

1. How long did the development take? Would you like to share some OpenCL development tips?

2. What tools did you use for development and debugging? Is the tool cross-platform (available like windows, linux)?

3. Have you tested them on AMD GPUs yet?

4. "Elo points" - I don't understand what this mean. Can you elaborate?

Thanks,

0 Likes

Congratulations ! This is great news!

Thanks

4. "Elo points" - I don't understand what this mean. Can you elaborate?

The Elo rating system is a method for calculating the relative skill levels of players in two-player games such as chess,

top Computer Programs play above 3000 Elo, so 1800 Elo points are in the amateur league.

See:

http://en.wikipedia.org/wiki/Elo_rating_system

http://computerchess.org.uk/ccrl/4040/

3. Have you tested them on AMD GPUs yet?

Yes, Zeta runs on AMD CPUs and GPUs,

i have only an HD 7750...maybe someone could benchmark it on an HD 7970?

2. What tools did you use for development and debugging? Is the tool cross-platform (available like windows, linux)?

For Move Generating and Hashing i have written my own test code,

no further debugging except the compiler messages,

and sometimes a look into the command line profiler output.

1. How long did the development take?

The Project started as an bet between me and my classmate,

i thought i would need two weeks to get an competitive engine on the gpu running, lol,

i lost the bet,

it took one year in spare time to get an fast move generator running,

and another year to find an suitable search algorithm,

and another year to fix and tune both to reach 1800 Elo

1. Would you like to share some OpenCL development tips?

- Don't be afraid to enter no-man's-land

- Never give up

- Every problem has more than one solution

--

Srdja

0 Likes

2. What tools did you use for development and debugging? Is the tool cross-platform (available like windows, linux)?

Ah, my development system:

OS: Ubuntu Linux 12.04,

IDE: Gedit Texteditor,

Compiler: gcc 4.6.3 and MingGW64

Somehow i managed to build an opencl library from an windows dll for MinGW.

0 Likes

Vow! 3 full years! This is simply lot of work!

Wish you good luck to reach 3000+ Elo!

And, Thanks for sharing this with the community. Keep up the good work!

In future, you can consider CodeXL for your development and debugging.

Therez lot in place to make your development work easier.

Good luck!

0 Likes

Same here. I have a linux guru collegue who recently got involved in using VS for development, and he said "Wow... this is so comfortable". And I told him, wait until you see the OpenCL debuggers (nSight (cause he develops for NVI), and CodeXL). That is where VS really starts. The powerful plug-ins and extra features on top of IntelliSense.

I develop crossplatform applications (my desktop is Win8 but the cluster is linux), and rule of thumb is: develop under Windows, run production code in linux. Little extra porting time (less and less since C++11) in exchange for HEAPS of time you win in developing. Boy... I hate coding in vim (I know, there are better alternatives in linux, like Qt's IDE, ot CodeBlocks, but they are simply not extensible)

Develop on VS and deploy on Linux -- That sounds interesting!

0 Likes

It's really not much of a pain. So many things are standardized that apart from the GUI (which is the biggest pain of 'em all) everything that is written under Windows will work fine under linux too. Porting starts when the application works fine on Windows, and on linux gcc will not compile things that MSVCC does (generally VS compiles poorly written code alright, where gcc is a bit more pedantic in this matter). A bit more pain comes with things like MPI, where in linux OpenMPI a process will send a message to itself without problems, and under Windows in MSMPI it will result in an error, since a process must not send itself messages. I have not read the specifications to the last bit how should an implementation behave in this case, but either it is under-specified, or one implementation is more "forgiving" than the other.

Aside from problems like this (and windowing as a whole) there is really no issue in cross-developing, so long as one uses C++ only, cross-platform APIs and libraries (SFML-SFGUI, SDL, Qt, VTK, OpenCL, OpenGL...). Some differences must be debugged under linux, but I think all this effort pays back in development time.

0 Likes

Very Intersting..

And Thanks for sharing your experience.

0 Likes