Codename Brutus: Chess-Playing FPGA PCI Card
rockville writes "Brutus, a FPGA add-in PCI card developed by ChessBase and Dr. Christian Donnegar, just dominated a strong field of human players at a tournament in Germany. It's the first serious chess-playing FPGA architecture since Deep Blue was disassembled after its victory over Kasparov in 1997. Pictures of the card and a short description are here."
How long till chess players are banned from wearing watches, because Deep Blue et al will be shrunken to the size of a pea?
I want one.......I have an empty PCI slot in my computer. I wonder if DivX encoding would benefit from FPGA's. That would be uber-neato!
>>>>>> Chewie, take the professor in the back and plug him into the hyperdrive.
As the power of computer "thinking" increases, I personally believe that a computer will soon be able to beat any human player by pure power alone. Chess will fail to be dominated by people.
But what stands in its place? Forever I have thought of chess as THE place where the mind can still beat the computer in a game environment.
What will be the next challenge? Where is there a game that requires the uniqueness of human thought over the pure power of computer calculations?
Davak
A note from the webpage (before it gets slashdotted) on why this implementation is "better":
"An additional benefit of using FPGAs is that it is not just the search routines that are speeded up dramatically. Due to the sturcture of the code you can add chess knowledge in any quantity without slowing down the process. In regular PC programs each new quantum of knowledge is expensive - it is bought at the price of search speed. The FPGA program does not slow down when you add new knowledge modules."
Beyond speculation, further development could involve a server version for a 64-bit PCI bus. Another solution would be to join multiple cards as was done with the Voodoo 2 way back in the day...
I think these are the coolest things to come around since high level languages.
I've done some reading on VHDL and other languages used to program them. It would also be a fun hobby and a great way for open source to venture into the hardware realm.
VHDL compilers are platform specific, so as the FPGA platform evolves the code written can be tweeked and recompiled to run faster on new chips. You could also take the compiled result and do additional tweeking to create an IC. It could also be possible to re-compile on the fly if the industry got standard enough, even running through an emulator if need be.
FPGAs can even load new code as they are running, pretty fast to. So you could have librarys in memory and move them into the processors as they are needed. This allows for a much more complex program to be in hardware.
Memory bandwith and memory in general seem to be some limiting factors, but are being addresses as they evolve. I think eventually they will be like a normal CPU, surrounding the FPGA.
FPGA designs ( the fpga itself ) are usually a lot simpler then a normal CPU, so manufactoring them on smaller processes like 90 nm and lower will be easier, of course not a cake walk either.
Check out http://www.xilinx.com for some products, they seem to be affordable for the average joe. I've read "Programmable Logic: PLDs and FPGAs" ( look on Amazon or your favorite reseller ), it was outdated, but a good introduction. There are some new books that I'm looking to get my hands on as well.
I've done quite a bit of google searching, but haven't found a good "getting started with fpga" site. If anyone has some please reply with them.
This makes my thoughts return to Dr. Hyatt and his amateur program, Crafty. Under his personal operation he runs a copy on a Quad Xeon box, and apperently has been developing a Beo-Crafty rendition to play chess on a Beowulf cluster.
It would be particularly interesting if this Beo-Crafty could be taylored to operate on a set of these cards. One nice hefty machine at the top level, and a slew of these PCI cards to do the real crunchy work.
Computational Madness in a round package.
Most people are exceedingly bad at Go as well. The top Go players are invariably those who have been doing essentially nothing but playing Go since they were 3 years old, leading many to hypothesize that the root of good Go play is essentially astoundingly good pattern recognition.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Like, if you put Deep Blue against Gnuchess... or even Sargon II on the Vic-20... would Deep Blue win *every single time* in a trouncing defeat? Would some programs give Deep Blue/Thought a real challenge or just a good run on a fluke of the random number generator?
I co-wrote a chess program on a miserably tiny piece of hardware once, so I looked into this.
For representing the moves, the simple 12-bit scheme (from-square, to-square) handles en passants and castling.
En passant example: white pawn on e5, black pawn moves f7-f5, white moves e5-f6. Unambiguous.
Castling example, even easier: o-o is e1-g1 or e8-g8; o-o-o is e1-c1 or e8-c8.
You can even do pawn promotion with 12 bits, if you adopt some clever encoding when the source square contains a pawn that is going to promote. If the source square has a pawn in it, then the second 6 bits are not a square. They are: two bits to specify left-ahead-right (instead of 6 bits of destination) and two bits to specify queen-rook-bishop-knight.
In fact you can take this further and always encode the destination in 5 bits instead of 6, because given the source square you know what piece is on it, and there are at most 27 moves which a piece can make (queen in the center).
That's 11 bits for encoding a move.
Grab a few unused bit patterns for "offer draw" and the like.
For encoding a board, you can use 4 bits per square to encode what is on the square. There are 13 things that can go on a square so you lose a little to rounding. You have to encode whose move it is. You have to record 1 bit each for the a1, e1, h1, a8, e8, and h8 squares to indicate if the piece on them has ever moved, for castling. You have to encode en passant information. That is 4 bits off the top of my head (once you know whose move it is, there are eight possible last-pawn moves that could be e.p.'ed, plus the possibility of no e.p., so 9 things to encode). You need the 50-move counter or whatever the limit is in FIDE rules these days, that's another 6 bits. And you need three-fold repetition counter, another 2 bits. And you need a bit to indicate whether the side that just moved offered a draw.
So for the board: 4*64 (position) + 1 (move) + 6 (castling state) + 4 (en passant state) + 6 (50-move counter) + 2 (3-fold repetition) + 1 (draw offer) = 276 bits.
Once upon a time, people used to have a thing that brains and brawn were of roughly equal value. Then, in the industrial era, smart people made machines to replace brawn. Now, smarter people are making machines to replace smart people, so, that brawny people won't need smart people any more.
At the end of the day, we'll all be like John Henry, maybe beating this year's steam shovel and dying for it, but, next year, they will make a better model.
This is my sig.
> My first thought would be Diplomacy, since success in that game is based on communication, deal-making and -breaking, and manipulating others for personal gain.
Which AI agents already do.
> There is currently a Diplomacy AI project based on negotiation-free (nopress) play
You're a bit behind the times.
When I did my B.Sc. (85-88), there was a computerized Diplomacy game run by Sarit Kraus that included AI agents as well as human players. All negotiantions were done on-line using a formal language that proved to be surprisingly expressive. One did not know who the other players were (or even whether they were human) until the game ended.
I only participated in one game. At the end, we found out that there were 4 human players and 3 AI agents (playing independently), one of which won the game.
I believe that Sarit and others made some progress in the 15 or so years that passed since then.