[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] Computer Go hardware
> It becomes apparent that today's computer playing level is pretty much
> limited by the computing power of the PC.
Although I believe computing power is a limiting factor, it's far from
clear to me that we have exhausted the potential computing power that
we currently have available.
Your statement makes the assumption that current programs are close to
optimal for the hardware they run on. There may be some who believe
that, but I suspect most do not.
I know very little about FPGA's, but I know that their power has a lot
more to do with parallelism than clock speed. You just can't compare
them to a conventional CPU running at the same speed, otherwise what
would be the point?
In my opinion, the big problem is scalability. If we were all given a
computer 1 million times faster than what is common today, it's
unclear how much improvement would be gained. Most if not all
programs would play exactly the same, they would just play the same
(often bad) moves 1 million times faster.
Incidently, it's very easy to produce a scalable program, but it's
very difficult to produce one that play well in a reasonable time.
Recently, as you hinted at, a program using a parallel approach has
claimed some success. If this is true, then we also have a scalable
SERIAL algorithm. A parallel computer can be simulated with a serial
computer, and any parallel algorithms can be serialized.
It's probably worth taking a look at.
- Don
From: Compgo123@xxxxxxxxxxxxxxxxx
Date: Sun, 17 Oct 2004 05:23:38 EDT
Reply-To: computer-go <computer-go@xxxxxxxxxxxxxxxxx>
Sender: computer-go-bounces@xxxxxxxxxxxxxxxxx
X-Scanned-By: MIMEDefang 2.42
--===============1779915876==
Content-Type: multipart/alternative;
boundary="part1_1a5.29687618.2ea3941a_boundary"
--part1_1a5.29687618.2ea3941a_boundary
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
It becomes apparent that today's computer playing level is pretty much
limited by the computing power of the PC. Anyone who disagree with the conclusion
does not yet have a clear picture of the situation. Yes, today's program may
used only 50 to 80% of the computing power of the PC. But definitely not far
bellow that level. Here the case of a magic mathametical formula is excluded.
One of the approaches to increase the computing power is to use paralel
computers (supercomputers). Some new results have been reported from this approach.
However, not many people has access of supercomputers, not mentioning
devoting a supercomputer to the computer Go. Also paralel CPUs may or may not be the
optimum hardware for Go.
The second approach is to use FPGAs. At present level of interest and
maturity of the computer Go ASICs seems out of the question. The next best thing is
to use the FPGAs. FPGA suffers some difficulties. First, the core frequency of
today's FPGA is about 500 - 600 MHz at the best which is 6 times lower than
the speed of the available CPU in the PC. It means a 6 fold increase in speed
only makes it equivalent to a PC. Thus, a big break through in speed is
difficult from the FPGA. The second difficulty is the complexicity involved. A
designer not only need to write the Go program, he need to design the computer at the
same time. Even if the FPGA can handle the complexicity.
The third approach is to use the available high performance processors and
supplement it with FPGAs. I think this is the most promising approach. The first
method that comes to a person's mind is to use a FPGA device supplement the
PC. However, it's met with a major difficulty. That is the communication
between the the FPGA device and the PC. Low level functions can be easily and
efficiently implemented in a FPGA device. However, low level funcions alone cannot
solve the computer Go problem. Higher level concepts and functions must be used
to prune the search space. For example, a Go program uses a surprisingly
large amount of memory during a search. These functions can only realistically be
implemented in the PC. The bottle neck of the communication limits any
significant gain in speed from the low level processing from the FPGA device.
(PCI-express won't help much.) To break this bottle neck one needs to interface the
FPGA device directly with the CPU. Unfortunately it's not realistically
possible to accomplish this with the Intel or AMD processors. The reason is that all
these processors use a 800 MHz buss speed which is out of reach for today's
FPGAs. On the other hand the chipsets provided by Intel and AMD does not have
functions that efficiently interface a FPGA device.
Fortunately there are many other high performance processors that are
designed to use customer interfaces. Most of these processors are DSPs with
surprisingly versatile instruction and data architectures. Their performance approaches
that of Intel and AMD processors. With correctly implementation their
performance could well exceeds that of Intel and AMD processors. I feel that
interfacing these processors to a FPGA device is the most promising approach. Unless
that you have the backing of the IBM corporation. Now one can see the advantage
of programming in C/C++.
Daniel Liu
--part1_1a5.29687618.2ea3941a_boundary
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
<HTML><FONT FACE=3Darial,helvetica><HTML><FONT SIZE=3D2 PTSIZE=3D10 FAMILY=
=3D"SANSSERIF" FACE=3D"Arial" LANG=3D"0">It becomes apparent that today's co=
mputer playing level is pretty much limited by the computing power of the PC=
. Anyone who disagree with the conclusion does not yet have a clear picture=20=
of the situation. Yes, today's program may used only 50 to 80% of the comput=
ing power of the PC. But definitely not far bellow that level. Here the case=
of a magic mathametical formula is excluded.<BR>
<BR>
One of the approaches to increase the computing power is to use paralel comp=
uters (supercomputers). Some new results have been reported from this approa=
ch. However, not many people has access of supercomputers, not mentioning de=
voting a supercomputer to the computer Go. Also paralel CPUs may or may not=20=
be the optimum hardware for Go.<BR>
<BR>
The second approach is to use FPGAs. At present level of interest and maturi=
ty of the computer Go ASICs seems out of the question. The next best thing i=
s to use the FPGAs. FPGA suffers some difficulties. First, the core frequenc=
y of today's FPGA is about 500 - 600 MHz at the best which is 6 times lower=20=
than the speed of the available CPU in the PC. It means a 6 fold increase in=
speed only makes it equivalent to a PC. Thus, a big break through in speed=20=
is difficult from the FPGA. The second difficulty is the complexicity involv=
ed. A designer not only need to write the Go program, he need to design the=20=
computer at the same time. Even if the FPGA can handle the complexicity.<BR>
<BR>
The third approach is to use the available high performance processors and s=
upplement it with FPGAs. I think this is the most promising approach. The fi=
rst method that comes to a person's mind is to use a FPGA device supplement=20=
the PC. However, it's met with a major difficulty. That is the communication=
between the the FPGA device and the PC. Low level functions can be easily a=
nd efficiently implemented in a FPGA device. However, low level funcions alo=
ne cannot solve the computer Go problem. Higher level concepts and functions=
must be used to prune the search space. For example, a Go program uses a su=
rprisingly large amount of memory during a search. These functions can only=20=
realistically be implemented in the PC. The bottle neck of the communication=
limits any significant gain in speed from the low level processing from the=
FPGA device. (PCI-express won't help much.) To break this bottle neck one n=
eeds to interface the FPGA device directly with the CPU. Unfortunately it's=20=
not realistically possible to accomplish this with the Intel or AMD processo=
rs. The reason is that all these processors use a 800 MHz buss speed which i=
s out of reach for today's FPGAs. On the other hand the chipsets provided by=
Intel and AMD does not have functions that efficiently interface a FPGA dev=
ice.<BR>
<BR>
Fortunately there are many other high performance processors that are design=
ed to use customer interfaces. Most of these processors are DSPs with surpri=
singly versatile instruction and data architectures. Their performance appro=
aches that of Intel and AMD processors. With correctly implementation their=20=
performance could well exceeds that of Intel and AMD processors. I feel that=
interfacing these processors to a FPGA device is the most promising approac=
h. Unless that you have the backing of the IBM corporation. Now one can see=20=
the advantage of programming in C/C++.<BR>
<BR>
Daniel Liu</FONT></HTML>
--part1_1a5.29687618.2ea3941a_boundary--
--===============1779915876==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/
--===============1779915876==--
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/