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

[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. 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
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/