Zeta, a chess engine in OpenCL

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

vb4
Posts: 165
Joined: Sat Mar 11, 2006 5:45 am
Location: NY

Re: Zeta, a chess engine in OpenCL

Post by vb4 »

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: 2663
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Zeta, a chess engine in OpenCL

Post by smatovic »

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: 2663
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Zeta, a chess engine in OpenCL

Post by smatovic »

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: 2663
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Zeta, a chess engine in OpenCL

Post by smatovic »

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: 2663
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

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

Post by smatovic »

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