[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

computer-go: How much can Go programs be assisted by faster hardware?



IMHO it seems that with the current state of the art, using FPGAs for go is
like putting on steel belted tires on a Model T. 

People seem to make an assumption that we can't easily test what will happen
when we have 10x, 100x or 1000x the power of a current computer.

Well if I make the assumption that the computer move should take on average
10 seconds on a 500Mhz PC, it should not be that hard to emulate a 5.0
Gigahertz PC.  Just change the initial assumption that it will take on
average 100 seconds. At about 200 moves a game that would be 20000 seconds
or 5.5 hours.  I sleep longer than that almost every night, so in theory, if
I want to know how much stronger my program would be against another
(computer) opponent, then I can just tune some parameters, and let it run
all night.  To emulate a 50 Gigahertz PC, just tune the parameters again do
it takes 55 hours to run the game.  
Does it play a lot better?  

If the answer is no, or just a little bit, then it is fundamentally a
software issue, and throwing more hardware at it won't solve the problem.

If the answer is Yes, or plays somewhat better, then maybe throwing hardware
at the problem will help.  Also then it may be time to look at parallel
processing.  If I can get 8 computers at work playing the game during the
CPU IDLE time, then 1 weekend of time between those 8 computers should be
roughly equivalent to the 1000x the power of a current machine.  Basically
we need 550 computer hours of work.

(550/8) / 24 = 2.86 days.  Roughly 1 weekend of time.


It may also be interesting to see how your program at 10x power plays
against your program a 1x power. 

This seems like a decent solution, or am I missing something?

Note: I can see where it would be very important to adjust your program to
use the extra power, for example if you are using fuzzy logic, then you may
want to make the spread between the minimum and maximum value larger to
consider more moves for further searching, or if you arbitrarily have
progressive deepening looking at 10-first ply, 8-second ply , 6-3rd ply, 4
forth ply moves then at 100x you may want 100,16,12,10 or 16,14,12,10,8
secondary searches.