[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
computer-go: Computer Go hardware
No matter how you look at it, a significantly improved hardware is essential
for the computer playing to reach a high level (temperorily disregard the
fact that the jury for a magic formula is still out). I don't want to argue
whether an improved hardware will help. For those who claim it doesn't,
please point out what will.
PC cpu is now running at about 1 GHz. Intel is planning to introduce a 10 GHz
cpu in next 5 to 10 years. Dual cpu motherboards are readily available. One
question is to what extent is the computer being efficiently used at present?
That is how far today's best program is from what is possible (for a given
computing time scale). We may define a concept, calling it the 'logic
efficiency index'. For a best possible program, the index value is 1. I'll
make a wild quess here. Today's best program has an index value about 0.7. A
related question is, for Go, what's the relation between the index value and
the amount of programming? Linear or nonlinear? One deduction can be drawn
that it does not require an infinite amount of programming to reach an index
value of 1. Because infinite amount of programming will results in an
infinite computing time. Here we may define another concept, calling it the
'composite logic efficiency index'. That is for a specified amount of
programming, how far it is from what is best possible. One improtant question
is, given today's computing technology, what's the relation between the index
value and the playing level? Again, linear or nonlinear? What level does the
index value 1 correspond to?
In the field of telecommunications, the technology has reached 100 Gbps and
pushing towards 200 Gbps. In reference of these numbers, a 200 GHz cpu maybe
forseeable (by your son or grand son). The speed of cpu is not the only
problem. The bus and memory speed is already having a bottleneck effect. The
field of telecommunications can teach us many things. Probably an optical
bus is the way to go. The technology is already there. Then how to solve the
memory speed problem? There is one possible direction. I don't know how to
say it and let me just quote from Scott Scully ' The memory is the
computing.' Tell the truth I don't know what it means. But there is something
vaguely there.
Now let's go back to our generation. The spread of technology made it a real
possibility to build a computer Go hardware. FPGA has been given considerable
considerations due to it's versatility. However, they are high price and low
performance compared to PC cpus. The performance is about a factor of 5 lower
and the price is about a factor of 5 higher. But they still can be used as a
starting point or a proof of concept. There is one technical problem using
existing FPGAs. That is the difficult to route. A Go board has 361 positions.
It means one need to route 361 connection around. It can be done. But the
FPGAs are not designed for this and it would soon exhaust huge gate resources
and great complexicity. I think one way to reduce this problem is to use many
small FPGAs instead of a single big one. Another approach worth pursuing is
to connect many cpus together. Not for parallel processing in the
conventional sense. Instead connect them in a certain topological way.
Dan Liu