Hi!
On Tue, May 21, 2013 at 07:02:16PM +0400, Рождественский Дмитрий wrote:
> I have got an idea to create a hardware accelerator for Go playing software.
> It will probably be a USB (or maybe PCI-Express) device that will be able to
> do some basic, but very time-consuming for general-purpose CPU calculations
> very fast. For example load a goban layout, make a number of random moves (as
> used in Monte-Carlo algorithm) and unload result back to a computer.
There are two issues I would also like to mention:
(i) The moves in current programs are not very random. They are
chosen based on pattern matching and tactical evaluation by some
fairly complex heuristics. Implementing just a random play would
probably not be too difficult, but that also corresponds just to fairly
small code; but to make a strong program, the additional heuristics are
not an implementation detail but a crucial step forward, and there is a
complexity jump both in the move generator _and_ the amount of goban
data structures your goban library needs to keep around, in order to
make these tactical checks effectively.
(ii) If you use a device that's too far away from the CPU, you will
have latency issues during communication; as Lars mentioned, pipelining
will reduce importance of individual results. This reduces the viability
of offloading only some very specific tasks to this accelerator,
unfortunately.
This is not meant to discourage, I just want to make you aware of the
challenges ahead. If you have ideas on how to tackle them, that's great!
--
Petr "Pasky" Baudis
For every complex problem there is an answer that is clear,
simple, and wrong. -- H. L. Mencken
_______________________________________________
Computer-go mailing list
[email protected]
http://dvandva.org/cgi-bin/mailman/listinfo/computer-go