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."
Now, maybe I can get my friends to stop planting knives in my back during chess matches... ..oh wait. Damn.
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 havent been able to beat gnuchess....:(
NO SIG
I for one welcome our new chess playing overlords!
mod me -1 Redundant, dammit!
a beowulf cluster of em....
Make it idiot-proof and someone will build a better idiot.
I bet they'd make another billion.
Feh.
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
Look at that guy, he looks like a mad scientist.
I was almost giving up on /.
It's been days since we had an article about something that is really cool but useless for all practical tasks
I used to get high on life, but I developed a tolerance. Now I need something stronger.
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...
Deep Blue was disassembled after its victory over Kasparov in 1997
Kinda makes you shudder to think what they would've done to Kasparov if he had won...
Gentlemen! You can't fight in here, this is the War Room!
Twister.
You can't take the sky from me...
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
Threat to humanity?
Warning: This sig contains a small bug. ==> *
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?
It would also help satisfy your urge to spend more on your computer than you did for your car.
(taking into account the average Slashdotter's vehicle)
...
I think that eventually, the question won't be if a machine can beat a human at chess, it will be who's computer can beat the other computer that can obviously beat a computer. And the pride will be in the design of the hardware and software that beats the reinging computer.
--- to swing on the spiral...
que the anti-voodoo5 and anti-geforce5800 zealiots.
"but but but.. it takes an ENTIRE PCI slot... where will i put my porn stash now?"
It's in the Smithsonian and the hardware is more or less intact. It's in the typical condition of a decommissioned computer, i.e. you can't just flip a switch and start using it, but there's some chance that the folks who built it could get it working again sometime. This is described in the book "Behind Deep Blue: Building the Computer That Defeated the World Chess Champion" by Deep Blue's designer F.-H. Hsu. Hsu later got interested in building a Shogi (Japanese chess) machine using FPGA's. He says with today's custom VLSI, the equivalent of Deep Thought could be built on one chip and mounted in a compact flash card. You'd put the card into your Zaurus or Ipaq PDA and have a grandmaster-strength pocket chess machine. He put some effort into commercializing such a device but couldn't get enough backing so he went off to greener pastures.
Chess grandmasters do not tune their skills by playing lots of games, how could the best player ever get better? The interesting part only occurs in the middle game. Most GMs learn by reading books and replaying of important games. Its about seeing the pattern and knowing how to counter it. This is exactly the kind of thing computers are good at. They don't have to be taught how to understand the game or how to put to getter some new stratagy, just want to do when something happens. This is why Gary Kasparov was so upset at loosing, the computer had been programmed to recognise all know plays and knew how to counter them. So it simply waited for Gary to make a mistake.
James
I'll bite, because the sarcasm (if any, I'm not sure) is too subtle...
Field Programmable Gate Array mounted on a PCI card. Why do I sense criticism?
> Anyone know why Deep Blue was disassembled?
Because, when Gary asked him for the last time to open the game, he replied:
"I'm sorry, Gary, I'm afraid I can't do that." For some odd reason the chief scientist went nuts and spontaneously disassembled BB on the spot.
You mean the full board positions cannot be encoded in about 32 bytes (12 different figures=4bit * 64 squares = 32 bytes)? And the resulting move cannot be communicated back in less than 3 bytes? (from x=3bit + y=3bit + new_x=3bit + new_y=3bit)
Code poet, espresso fiend, starter upper.
You need more than 12 bits to store a move-- en passant captures, castling and pawn promotions have to be handled seperately.
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.
But is it really the computer that's winning? It's one thing if all we do is give a computer the rules of Chess, and then see how it does. However, the computer is being told how to think and what to compute by humans. The computer is just automating (via opening/closing/midgame books, brute force, etc.) a human created algorithm. All that the computer has over the human is the speed of number crunching.
It's an interesting point. Depends on what you define winning as.
If you are comparing the ability of own human to do something unaided vs. the ability of another human to build a tool to do the same, then the tool builders win.
If you are comparing chess skill, then the designers need not have more chess knowledge then the master, they just have a different way of approaching the probelm. In that case, as a matter of pure chess skill, hte master "wins" over the human designers.
*shrug*
I don't think the question is all that important, except to illustrate that "the computer" doesn't win, it's merely a tool.
=Blue(23)
P.S. Of course, the computer is your friend, keep your laser handy.
LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
Deep blue WAS helped by some very good chess players both as coaches and as members of the Deep Blue team. Basically the match was Kasparov vs a bunch of way above average chess players and one really honkin fast chess computer as an aid. And Deep Blue was never dismantled, half of it is at the Smithsonian intact, the reason they don't have both towers is they simply didn't have room for it all.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
Karpov saw this coming and competitive as he is, one day he asked me to try to fold him down to PCI form size. This was the first time in my life that knowing origami helped and although his ears were a big problem, somehow I managed to fold him down to PCI form size. OMG, he's still in PCI slot 5! No wonder I'm so good at Quake all of a sudden. Hmm, I wonder if I should get a heatpipe for him.
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.
your brain is so deficient at chess it requires the equivalent of an external FPUs installed in it - wow, a step backwards to 386s.
> 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.
Sleepy mood this morning I think ;) At times deleting comments would be nice...
As an at least average chess player, I feel that the better the computer, the better for me. BTW, by average I mean I win as often as I lose. I usually lose when I play the computer. Yet that is not the only reason, or even the best reason to teach a computer to play chess.
Even better than playing a computer, is using the computer to analyze the game afterwards. The best way to get better is to learn from your own mistakes and those of your opponents. By having a stong, even grand master level, computer program look over the game you can learn a lot about why you lost or won. Imagine someone who can beat the world champion willing to go over your game with you.
Humans will always have an advantage over computers until chess becomes "solvable". Until then, there will always be people who can keep the machines on their toes. Also, by giving the rest of us opponents of great skill to play, who are also patient enought to teach, we can all improve our game and improve the general playing level of chess
Your friend and well-wisher
m0smithslash
http://www.ferociousflirting.com