His point was simple. Today, we have 8 new registers in X86. But not unless the program is compiled with a 64 bit compiler and run on a 64 bit OS. And suddenly it will run significantly faster because of a reduced number of register spills required during optimization. That is independent of the actual 64 bit data width issue. But if you don't recompile it, you totally ignore a significant hardware feature present for several years now.Don wrote:I just don't understand your point. Rebel was probably compiled in 1995 to be as fast as it could be at the time, so how could Ed have compiled it to be even faster? I'm sure he would have if he could have. Are you claiming that he didn't know what he was doing?mhull wrote:I wonder why you don't bring up the fact that Rebel could have been compiled to run on faster hardware in 1995, but instead you continue with your P90 comparison with modern hardware. It seems like you are applying a double-standard to crafty in this instance.
I explained the 64 bit vs 32 bit issue and someone else explained it better than I did.
Now that wasn't that hard to understand, was it? Take an old program, run it on new hardware, in a crippled mode, and sure it will look like a piece of crap. I've explained this several times, yet you insist on repeating the mistake over and over. Rebel will run faster on today's hardware if you re-compile it. Oh, but you can't because you don't have the source? Then you simply picked the wrong benchmark, as I have repeatedly stated. Crafty, on the other hand, _can_ be compiled to use the new registers without changing one line of code. And it helps in two ways. replacing long long with long eliminates the duplicate instructions needed for AND/OR/XOR/SHIFT stuff. And it gives us 8 more registers to better optimize memory accesses with as well.
You might as well find an old perl chess engine and use that to make the comparison. It would be no less valid.
However, I didn't do that. I designed Crafty to be as fast as possible on 32 bit platforms. And it is as fast as anything I have seen, on those boxes. So saying it didn't run well on 32 bits is wrong. It does run better on 64 bits for several reasons, but it ran quite well on 32 bits for _many_ years.
By the way, the 100 to 1 figure is not accurate and I already admitted that in one of my posts. To be a (more or less) fair comparison, Rebel should be compiled on an i7 with a modern compiler. Then it would show more than 100 to 1 but it would surely still be less than 200 to 1. Unfortunately we don't have the means to do this so I went with what I could get. However Bob has the means with his old Crafty version, unfortunately that overstates the hardware difference by breaking Bob's own rule that to be fair the program you are comparing should be optimized equally well for the hardware they are running on.
I think you might understand what I am saying if I cast the issue differently. Suppose you purposely design a program to run especially slow on a 32 bit computer but to run fast on a 64 bit computer? Wouldn't it look especially good going to 64 bits?
So you believe that Slate did chess 4.0, using 64 bit words, knowing it would _never_ be efficient? Even though it was the fastest program of the era in spite of needing two instructions to update a 64 bit bitboard? But wait, that is exactly what happened with Crafty. I felt bitboards were _superior_ not because of coming 64 bit hardware, but because they had some properties not available in normal array-based board representations.
So basically ANY 64 bit program is designed to run especially slow on a 32 bit operating system and does not take full advantage of a 32 bit computer. The authors CHOSE that design knowing full well that it was not the best way to write a program that runs on a 32 bit computer. Bob Hyatt knew back in 1995 that Crafty would not run as well on a 32 bit computer but was smart enough to design for the future - knowing that in the short term his program would take a hit.
Crafty was never designed with the idea "OK, this will suck until 64 bit cpus are available." It was designed, instead, with the idea "OK, this is going to be very fast on 32 bit hardware and will be at least as good as the non-bitboard programs in terms of speed, hopefully better. And one day it will go even faster when 64 bit hardware comes around."
So stop telling everyone why I designed Crafty as I did, how I designed it as I did, and leave that to the one that actually wrote the thing. Slate never thought he would have 64 bit CDC equipment, and never did. Yet he went that route because he thought it was better. I happen to agree. It is better whether you use 32 bit or 64 bit hardware. It is just better still on 64 bit hardware. But it hardly sucks on 32 bit, which is why you are incorrectly implying.
I have no idea where such a number comes from, and would not use numbers that don't have a reliable origin or source. When you start compounding over many years, and the number you are compounding has a high error margin, you end up with garbage.
That's a very reasonable decision, but it makes comparisons on old hardware off by something like 3 to 2.
For the new members, "hand waving" != "proof" in any venue I am aware of.
I don't think you really get it.
Even so, the point you are making about could-haves in 1995 has already been addressed here. And your Rebel test is a tacit admission of the validity of that point, IMO. The point is that it matters not what could have been. It's totally beside the point.
Bob did something like that already. I think a reasonably valid way for Bob to recalibrate is to make a 32 bit version of the NEW program and compare the NPS to the old logs. A 32 bit program is not optimal on 64 bit hardware, but a program written to be optimial only on a 64 bit platform is not optimal on 32 bit hardware either, so this test would be closer to the truth.
For instance, I still have a Crafty 9.x executable that I used to run on my Mac Plus (68000 at 8 Mhz). I still have this and it still runs on my old 68030 Mac. A comparison between crafty on that hardware could be made (in principle) with modern compile on the latest Intel machine (if we had the source for that version). Performance could be compared to a modern compile, just like with the 1995 Intel-targeted crafty that Bob is doing now. ELO could be estimated for both platforms and the HW speed delta determined.
But does it really matter now? Bob has been proved wrong using his own data so it's a moot point.
I'm not upset at all - I'm only slightly frustrated that I cannot seem to explain a simple concept.
So I confess my own failure to understand what more this particular hobby horse you are riding can possibly tell us, except that you are very upset about some something beyond my feeble grasp.