[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/