Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Wanted: Deep Blue vs. today's top programs recap

Author: Robert Hyatt

Date: 06:50:37 08/28/01

Go up one level in this thread


On August 28, 2001 at 00:57:49, Tom Kerrigan wrote:

>On August 27, 2001 at 22:52:41, Robert Hyatt wrote:
>
>>On August 27, 2001 at 19:40:42, Tom Kerrigan wrote:
>>
>>>
>>>Exactly. I've heard you say over and over that DB is vastly different from DT.
>>>And the code that's on Tim Mann's page is for DT. And it's a program for doing
>>>automatic tuning against GM games anyway, not the kind of tuning that was
>>>reportedly done for DB. Is it safe to assume that, because this is the best code
>>>you can produce, that you don't have _any_ actual DB-related code? And because
>>>you have to guess at the speed of DB code based on CB speeds, that you don't
>>>know _any_ specifics of the code they used? If that's the case, and it seems
>>>like it is, I don't see what business you have making the guesses you've been
>>>making and passing them off as informed estimates.
>>
>>Nope.  The DB guys have reported that they used the same approach.  Obviously
>
>Then why was I reading so many stories in Newsweek and whatnot about how some GM
>was playing DB constantly and the programmers were changing the function to
>avoid moves that he didn't like? How could they be doing this and simultaneously
>relying on the automatic tuner? Why have the GM there at all? And what was the
>GM playing before the chips were fabbed, if not a software version of the
>algorithms? Doesn't make any sense.

Again, why don't you _ask_ the guys that did this.  They explained this at
one ACM panel discussion we had.  They apparently wrote a "tool" that they
could use to adjust the evaluation.  But the tool was designed so that they
could take a test set of positions and use those to "control" the changes to
the eval, so that the eval would still favor the right moves in those test
positions even though a specific term had been modified after a GM had found
a weakness.

This is all well-known.  And automatically tuning an evaluation against a test
set of positions doesn't mean they can't respond to a GM comment.  They simply
had to take the new position, plus the suggested correct move, and add that to
their test suite and then run the auto-tune code once again.

Pretty simple, once you actually think about it rather than trying to find
excuses for why they couldn't really do it.




>
>>Today's cpus _are_ "that far away" from sustained 10 BIPS.  Which is what he
>>said might be enough.  "might be".  Because in some respects he is just like
>
>Nope. The paper doesn't say "might." And today's processors can sustain more
>than one instruction per cycle, meaning that cheap, readily available computers
>are pushing 2k MIPS. If Hsu is to be believed, that means a fast PC would be
>twice as fast as the single DB chip that took apart all those micro programs.
>Surely that's strong enough to be interesting?

If someone took the time to take the DB source code, plus the schematics for
the DB chess processors, and turned that into a pure C program, it might well
be interesting.  I can say with lots of confidence however, that his original
estimate is being twisted deeply by the way you are trying to interpret it.

Do you _really_ think that a single CPU today can do 2.4 million nodes per
second, doing _full_ endpoint evaluations, with an evaluation that they claim
has over 8000 unique and different weights?  I don't.  It might be possible
to get 240K nodes per second, with a _lot_ of work.  And by "lot" I mean
man-years.  I wouldn't venture a guess as to how many man-years of effort went
into the vectorized code in Cray Blitz.  And I certainly have no idea of how
many years it would take to re-invent all those algorithms but in a form that
would be reasonably fast on the PC. The Vector merge instruction did wonders
for mobility calculations.  The PC has nothing similar, and it can't handle
the memory bandwidth a simple software translation would require.

I suspect that if Hsu tried to take the chess hardware and translate it all into
C for a "production engine" that he would run into severe performance
bottlenecks in some places.  And that he would have to spend significant amounts
of time to find alternative approaches.  And he would probably scrap bits and
pieces that are simply too costly to be able to bear on a PC.

Back to the original idea...  This is not just impractical.  It is much worse.





>
>>me...  He hasn't given a lot of thought to how he would do something in a
>>software program that he is currently doing in hardware.  My vectorized attack
>
>Oh, I see. You treat every single word that dribbles out of his mouth as gospel,
>unless he says something you don't care for. Then he just "hasn't given a lot of
>thought" to it.


Nope.  I'm just technically acute enough to recognize what is fact, and what
is speculation.  If he had said "I have spent several months looking at what it
would take to make this work on a PC..." then I'd take that as an accurate
estimate.  When Gower asked me to port CB to the PC, I guessed it would be
maybe 100X slower, if that much.  I was _badly_ wrong.  By almost a factor
of 100x.  So there are estimates, and there are guestimates.  Guestimates
usually happen when you really don't care about how accurate they are because
you have no plans to really do the work and find out.





>
>>>(BTW, if you're interested, the same paper says that the DB chip took three
>>>years to create. This is a far cry from the 9 months that you stated in another
>>>post.)
>>
>>You are reading the wrong stuff.  The _first_ DB chip took maybe 3 years,
>>and if you had read everything he wrote, and attended a lecture or two, you
>>would know why.  There were some interesting problems he had to overcome that
>>had nothing to do with chess.  Pads on the chip were too large.  Cross-coupling
>>between signal lines on the chips that was unexpected and required some cute
>>hardware work-arounds.  Complete batches of chips that were botched for various
>>reasons.
>
>I don't see what this has to do with anything. I said it takes months or years
>to make a chip. You say no, it took months. Now you say a different chip took
>years. Either way, I'm right. You're sitting there working yourself into a
>lather, trying (and failing) to contradict something that's only tangential to
>my point.


My original statement was DB2 was designed, fabbed, tested, and used, all
within roughly 9 months.  This is absolute fact and will make for interesting
reading when his book comes out.  You then gave a quote about the original DB
chip.  At that point in time, there was _no_ rush.  They were deciding what
they wanted to do, and how they were going to do it.  The entire 3 years was
not taken in the hardware design.  So I see no contradiction here at all,
other than one you would like to imagine.




>
>>>Okay, so what is it? Is it one with a pawn lever? Or one without a pawn ram?
>>>Seems like both of those could be considered potentially open files, and they
>>>aren't exactly expensive to evaluate.
>>
>>Says the man that hasn't evaluated them yet.  :)
>>
>>You have to see if the pawn can advance to the point it can make contact
>>with an enemy pawn without getting lost.  It is definitely non-trivial.
>>From the man that _does_ evaluate them now.
>
>Bully for you. You have your idea of what a potentially open file is, and I have
>other perfectly legitimate ideas. And you obviously don't have a clue what DB's
>idea is, or you would have told us by now. And that means you don't have a clue
>how expensive their term is. And that means I'm still not impressed.


I _do_ know what they did.  In fact, I explained _exactly_ what a potentially
open file is.  All you have to do is read it.  Or just read any good book on
chess.  You'll find this discussed.  If you have "other perfectly legitimate
ideas" about what a potentially open file is, charge full speed ahead.  And
along the way re-define open and half-open to whatever you want as well.  But
the terms _do_ have precise meaning.  The classic definition is "I have a
potentially open file if I can force the file open whenever I want by moving
pawns."  If my opponent can do that, then he has one too.  If either of us
can do that, the file is potentially open for both of us.  Play some chess.
You'll get it.




>
>>Only those that haven't done this.  DB was written in C.  Plus microcode for
>>the chess processors (first version).  Plus evaluation tables.  The issues are
>>the same.  Porting a program from one environment (hardware or vector in my
>
>If you want to think that porting your stupid population count function is in
>any way even similar to porting DB's matricies of evaluation cells, fine. You're
>flattering yourself.
>

It _is_ similar.  IF if Crafty were designed in hardware, I would not have to
handle rotated bitmaps as I now do.  Because I could rotate the real bitmaps
in hardware quite trivially.  And then when I tried to port that to software
I would run into something that would be a _real_ problem.  A direct port
would mean taking a standard bitmap and "rotating" it by moving each of the
64 bits to a new position.  128 instructions on a 64 bit machine, nearly double
that on a 32 bit machine.  And that is the kind of thing they would probably hit
in several places, because hardware solutions are _different_ than software
solutions.

If you don't get that, there is little I can do about it other than to tell you
to get some experience then come back when you are ready to talk about this in
an informed way.  There are simply some things that are easy to do with
special-purpose hardware, while these same things are incredibly inefficient in
software.




>>>Again, assuming your 1M figure is anywhere near accurate. You're claiming that a
>>>DB node is worth about five thousand (5,000) (!!) "regular" PC program nodes.
>>>What on EARTH can POSSIBLY take 5,000 nodes worth of computation to figure out?
>>>You're going to have to do way better than your lame "potentially open file"
>>>thing to sell that to anyone.
>>
>>I'm not saying any such thing.  I simply said that they do a _bunch_ of things
>
>Of course you're saying any such thing. You're saying DB would take a 1Mx perf
>hit. It searches 200M NPS. Do the division, you get 200 NPS. PC programs search
>1M NPS. Do more division. You get 5,000 PC program nodes searched per your
>hypothetical DB node. Let's try this again, what on EARTH can POSSIBLY take
>5,000 nodes worth of computation to figure out?
>
>>That's all I have said, although I _have_ said it often.  You are trying to
>>mix up the emulation of their evaluation, which I say would be hugely slow
>>on today's PCs.  So, to be clear, the Hardware they had was quite good.  And
>>sort of software emulation would be highly ugly.  Because things done in
>
>I didn't bring up the idea of "emulation." I've been talking about
>re-implementation of the algorithms. You don't have to emulate anything to do
>that. You seem to think that software DB has to recognize a bishop pair by
>having cells and pipeline stages and cascaded adders. Why not just count the
>stupid bishops? Why is the idea of simply writing terms consistently escaping
>you? Why do you keep talking about "emulation" and "porting"? Does the idea of
>DB's eval running reasonably fast in software upset you so much that you're in
>denial?
>
>I'm going home.
>
>-Tom



This page took 0 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.