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
Zeta, a chess engine in OpenCL
Moderators: hgm, Rebel, chrisw
-
- Posts: 2663
- Joined: Wed Mar 10, 2010 10:18 pm
- Location: Hamburg, Germany
- Full name: Srdja Matovic
Re: Zeta, a chess engine in OpenCL
and a lot of patienceIt seems to me that some creative thinking might make a very powerful chess engine using this approach.
-
- Posts: 2663
- Joined: Wed Mar 10, 2010 10:18 pm
- Location: Hamburg, Germany
- Full name: Srdja Matovic
Re: Zeta, a chess engine in OpenCL
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
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
-
- Posts: 2663
- Joined: Wed Mar 10, 2010 10:18 pm
- Location: Hamburg, Germany
- Full name: Srdja Matovic
Re: Zeta, a chess engine in OpenCL
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
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
-
- 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?
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
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