Author: Keith Evans
Date: 08:54:20 02/18/04
Go up one level in this thread
On February 18, 2004 at 10:48:17, Bob Durrett wrote: >This is interesting. Some things that work well in software for the PC may work >poorly in a given type of hardware and visa versa. I was intrigued by the >possibility of making a hardware implementation of Crafty software, but perhaps >much of the code in Crafty may have to be scrapped and replaced with other code >more easy to convert to hardware. > >I can see also the possibility that there would be many design tradeoffs which >would come out differently in a hardware implementation versus a software >implementation [on a PC or other general-purpose computer]. > >Converting an existing software engine to a hardware engine would likely be >sub-optimal for the above reasons. On the other hand, it might still be a >worthwhile endeavor since the exercise would point to better ways to make the >hardware chess engine in the future. > >When working with hardware, its always necessary to work within the existing >state-of-the art and using existing hardware. This is a compromise which >software people may not have to face other than having to use existing >compilers. > >Just thinking out loud. : ) > >Bob D. This is why I joked that the Opteron is a hardware Crafty. I think that Bob has really optimized Crafty to run on a 64-bit Von Neuman machine. I would not want to try to accelerate it as-is with custom hardware. The best bet would be to lobby AMD for some new instructions in a follow-on CPU ;-) You could make a custom 64-bit bitboard processor in an FPGA, but even if it were more efficient in some operations it would be hard to compete with something running at over 2 GHz. (It might be able to do things like manage rotated bitboards much more efficiently.) Let's say that the FPGA ran at 200 MHz. Unless the FPGA were 10X as efficient as the Opteron, it would not be competitive. Then Bob trivially (since he's already done the SW work) moves to a multi-Opteron system, and you need to figure out how to use your FPGAs in parallel. In some ways the hardware versus software tradeoff can become a little confusing. If Bob makes a custom Opteron board with 16 Opterons on that, and then a custom backplane to hold 16 of those what do you call that? And if I implement some custom processor in an FPGA and then write software for that processor? Both involve a lot of custom design work. The cool thing about Bob's approach is that you basically have a ton of people at Intel and AMD working on the really tricky design and fabrication work. Even if Bob takes a vacation from chess, the factories still work on these processors. And somebody else is probably working on some custom backplane. From Hsu's thesis (discussing Deep Thought - please Vincent no Hsu bashing): "The philosophy behind the design of the Deep Thought evaluation function hardware is a bit unusual. The overriding concerns are the circuit size and the feasibility of future integration, possibly in a somewhat different form." (Already thinking about Deep Blue.) "Sacrifices in the knowledge content of the evaluation function were deemed justifiable if they simplified the circuit design considerably." This applies to software-only programs too of course. Compare the speed of Diep versus Crafty. Different design philosophy. You also might consider adding additional knowledge to custom hardware if it fits, since it's likely that it can be done in parallel and not impact the speed to the custom hardware. -K
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.