Zeta, a chess engine in OpenCL

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
vb4
Posts: 154
Joined: Sat Mar 11, 2006 4:45 am
Location: NY

Re: Zeta, a chess engine in OpenCL

Post by vb4 » Sat May 22, 2010 6:29 am

Hi Srdja,

Some time ago I spoke to a company that showed alot of interest in working with chess using GPU's. Perhaps this can be of some help to you.

Les Fernandez has compute resources
by dann corbit » Fri Nov 06, 2009 1:57 pm

I don't know if it is of any value, but Les Fernandez has a vendor who will lend time on a big array of GPU cards for computation of EGTBs.

I have no idea how difficult it would be to port EBTB systems to GPU cards (for instance, they can't do recursion if I recall correctly) but it might be worth taking a look at for you EGTB programming experts.

See the CCC programming forum post by Les Fernandez:
http://www.talkchess.com/forum/viewtopi ... 00&t=30404dann corbit

Posts: 12
Joined: Fri Jan 25, 2008 6:10 pm

smatovic
Posts: 1367
Joined: Wed Mar 10, 2010 9:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic
Contact:

Re: Zeta, a chess engine in OpenCL

Post by smatovic » Fri May 28, 2010 10:52 pm

It seems to me that some creative thinking might make a very powerful chess engine using this approach.
and a lot of patience ;-)

smatovic
Posts: 1367
Joined: Wed Mar 10, 2010 9:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic
Contact:

Re: Zeta, a chess engine in OpenCL

Post by smatovic » Fri May 28, 2010 11:17 pm

Thanks for the explanations.

Currently i am still working on the move generation on the gpu (testing bitboards and 12x10).

But i thought on some extensions to PVS....with a simple "serial" Load Balancing man could create a kind of "Nested PVS". So every process working on a subtree would behave like the root process and split his own tree to other processes.

By serial load balancing i mean a process like this:

first process gives work to free processes from a stack
second process waits for first process to finish load balancing and gives work to...
third process waits for second process to finish load balancing and gives work to...

i dont have a clue if this serial load balancing works effective, but i hope it would be easy to implement....

Regards,
Srdja

smatovic
Posts: 1367
Joined: Wed Mar 10, 2010 9:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic
Contact:

Re: Zeta, a chess engine in OpenCL

Post by smatovic » Sat Jun 04, 2011 12:16 pm

Project is canceled.

SIMD friendly move generation is one thing, but I see no way to implement an SIMD friendly search algorithm in OpenCL which is able to feed thousands of threads...

--
Srdja

smatovic
Posts: 1367
Joined: Wed Mar 10, 2010 9:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic
Contact:

Re: Zeta, a chess engine in OpenCL - miission accomplished?

Post by smatovic » Sat Sep 08, 2012 10:41 pm

I achieved my main goal, a Chess Engine that runs on a GPU and plays legal and decent chess. Unfortunately i was not able to reach clearly the 2000 ELO mark, but this could be easily done by tuning and extending the Evaluation Function. The Best-First-Algorithm should profit more from an improved eval than an AlphaBeta-Searcher. But i am an amateur chess player and so my skills for an good evaluation function are limited, this could be another project for some other people, to take an GPU-Chess-Engine to 2000 ELO and above....

Meanwhile you can follow another project of mine:

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

Because i am an lazy guy (some people say that this is an good attitude for an programmer) i want to use some million chess games to train an ANN, artificial neural network, to improve an existing chess engine.

--
Srdja

Post Reply