When the first statements about "fruity looking stuff from Rybka" came up, I didn't believe it at all. I didn't believe it until I saw the early stages of the evidence Zach, and Christophe provided. Saying or implying otherwise shows you are simply an outright liar.
But, I am confused? Because isn't the argument that you proffered here - the same one you used to condemn Vas re: "Semantic equivalence" and yet you clearly state here that it can mean nothing deceptive is going on? ( a posters concern over the manipulation of data.)
Are you indirectly giving credence to this study!
But Dr. Hyatt - defended the study.
a = 3 + 3
a = 2 * 3
a = 12 / 2
a = 12 >> 1
All produce the SAME exact value for a. Our "semantic equivalence" was more rigorous, because we required not just the same results, but the same OPERATIONS. That is, for each and every line of C code in the comparison, there must be a specific group of asm instructions that do EXACTLY what the C source specifies. That is, the above examples would not "pass" since the instructions would be different.
However, for the contested case:
a = a + 6 + 3
a = a + 9
those ARE considered semantically equivalent, because they are a well-known compiler optimization called "constant folding", because the compiler understands the idea that adding 6 + 3 to A is EXACTLY the same as just adding a constant 9, and it requires one less instruction. A truly simple optimization that has been done for decades.. Hope that is clearer...
What is this "you always ..." nonsense based on? Just "nonsense" as usual?
Two quotes from you, from that period:
"OK, then what about the people that come here, ask questions, get lots of ideas and algorithms from active programmers, then they find a new idea, hide it and go commercial. I think they are 'hooligans' just as much as this case."
"I am completely unconcerned about the reverse-engineering that has been done. Seems like a fair way to "even the playing field" by forcing a secretive author to expose secrets... I'm not going to lose any sleep over this at all."
You are such a big fool, you moron.
> "I am completely unconcerned about the reverse-engineering that has been done. Seems like a fair way to "even the playing field" by forcing a secretive author to expose secrets... I'm not going to lose any sleep over this at all."
concomitant with his statement about the Rybka/Robo issue, Dr. Hyatt's underlying disdain for Vas becomes readily apparent.
" I "know" about the fruit/rybka issue from discussions and code analysis. I have not taken the time to decompile rybka 3 to see if it is a close match to robo*. I believe Robo is a reverse-engineered something. Quite likely Rybka. But then many excused the rybka 1 from fruit by saying "but he made it much stronger than fruit." Robo is stronger than rybka."
His statement about -
I "know" about the fruit/rybka issue from discussions and code analysis.
Few know how much influence he had over supporting that study and defending the methodology used in analyzing that data.
For those interested: "..." after "secrets" is deliberately leaving out: "he has desparately tried to hide by obfuscation of this PV, depth and node counter displays." Not really so many words the quote needed to be snipped, I'd have thought.
But it didn't need to be edited out. The intent remains the same. Dr. Hyatt also took this opportunity to exploit his view of Vas as being guilty of copying code.
Or having read things Hyatt's written since about '86, maybe I should have written thusly to honor him:
I'm _aghast_ at the mind that would make those statements. It _really_ shows Hyatt's _true_colors. Poor guy lives in the fantasy land of his ivory tower _completely_ oblivious to the real world.
This way I can stress how _important_ my writing is and how _pedantic_ I am and what a _great_ pontificator I am...Normally I wouldn't _deign_ to talk to you mere mortals, but because _somebody_ has to do it, it may as well be a man with all the credentials _I_ have and _you_ don't have. I've got to write 20,000 posts _somehow_ to make myself feel important. I've spent my _life_ working on Crafty and it's never been worth a _shite_ and I'm _insanely_ jealous of others. With all of _my_ credentials I _deserve_ to be relevant and _important_ and to have a _top_ chess program. I _deserve_ credit. Everybody who's _ever_ written a chess program should admit that they stood on _my_ shoulders to write their program.
Bob, you _could_ be one of the _most_ self-righteous individuals I've ever known. Have you _ever_ thought of seeking help?
"From each according to his ability, to each according to his need, using theft and reverse-engineering if necessary. Everybody must share; anything else is hooliganism" - _Dr._ Bob Hyatt
I guess Hyatt's death fantasies boomeranged into a death wish.
Let me know if you want _me_ to research in your area for a highly rated psychiatrist...I'd be HAPPY to _help_.
I LIKE how you assume I don't _know_ anything BECAUSE I don't have 50000 posts. Brilliant logic. Everything makes more and _more_ sense! My hat's _off_ to you BOB!
You _might_ CONSIDER writing without using all CAPS and underscores so you don't come across as the pedantic _ASS_ that you are. Ah, who am _I_ kidding? A "man" with your ISSUES can't be taught. After all:
"It is difficult to get a man to understand something, when his salary depends upon his not understanding it!"
 Your good at this type of process- 40 years in a class room-good.
> Only fly in the ointment for your description is that I did not start the investigation..
What does that have to do with anything? But I'll bet you were dropping some nice helpful hints! And always there to make sure it all stayed on track. Your the classic agent provocateur.
At SOME point you have to get serious and say "I am guessing." And even worse, "you are guessing WRONG".
> I Certainly DID have my "mind made up" by the time we started the investigation via the ICGA panel.
No! That was your venue for exploiting your prejudice.
> The evidence was already mountainous.
The methodology of which came under fire 3 years earlier and should have been further investigated for its validity.
> When "I" FIRST got involved, I assumed it was just another clone claim, as every new program that is very strong is called a clone/derivative by one person or another.
What are you talking about Bob? When did you FIRST get involved?
> I made a classic mistake. Knowing that Vas was an IM, I REALLY assumed he had done his own code. I was wrong. And it took several months to convince me. But I WAS convinced.
Here is an interview 05.12.2005. You've seen it before -if not a number of times. Are you seriously trying to tell me that you missed this interview, where questions were then raised re: Fruit/Rybka?
Why didn't the ICGA act on it back then? Hadn't Vas just competed in an ICGA Tournament! Why didn't you raise the issue?
Because, in truth, there were no grounds to challenge Rybka, even back then.
When in August of 2008 a study surfaced with enough obfuscation of data to support a challenge against Rybka's originality - you weren't foolish enough to lead that parade quite yet. You are much too smart for that. But you knew you could run interference - blocking any questions concerning its methodology. You used your credentials to do so and programmers eventually backed down from your challenge.
What I have told you is EXACTLY what happened. I'd be hard-pressed to give a specific date without going back to 2004-2005-2006 emails and looking to see when I first took notice. I can tell you that when I was initially asked to "look at strelka and fruit and see if you think they are similar" I did. And the first thing that jumped out to me was the setjmp()/longjmp() ugliness that was in both. THAT got me to looking further, and the further I looked, the more convinced I became that Strelka and Fruit had a LOT in common. TOO MUCH in common. At that point the investigation moved over to rybka 1.0 beta through the disassembly process, and as that progressed, it became more and more clear that Rybka had way more fruit than an original program would normally have. Exactly when that was I don't really remember. It is not exactly a "critical date" that was etched in my memory. I could no more pinpoint that than I could pinpoint the year(s) where we discovered Voyager, Le Petite etc were perfect copies of Crafty. If I don't consider those "critical dates" then I certainly didn't consider the start of the rybka investigation as a critical date either. It just wasn't that important. It STILL isn't that important. Someone broke the rules, got caught, got zapped, and life goes on.
I didn't "run interference". You have a nice way of "guessing what happened" and then stating it as fact. Sorry, but it didn't work that way. There was no big "rush to judgement". Zach took a LONG time to go through the asm carefully. Others looked at what he found, again carefully. It took as long as it took. This was not a full-time job for anyone.
As far as your "obfuscation of data" I can only connect that to Rybka/Vas and the nonsensical obfuscation of depth, node counts, nps, and short PVs... I can only think of two explanations for someone doing that. (1) to make the program look "slow and smart" as opposed to "fast and simple, a concept that a 'few' called bean-counters." (2) to hide the similarities with Fruit to make it less obvious that Rybka came from Fruit. I suspect the latter more than the former, but have no way to prove either explanation, so it just remains "strange".
As Anthony C. pointed out four years ago, it was obviously (1) and not (2). As Anthony discovered, Rybka was much, much, much faster than Fruit, so showing true node counts and depths wouldn't have raised any questions re similarities to Fruit.
It was MUCH faster than it claimed to be, for certain. But that is the ONLY truth about "much faster. In fact, when comparing a "corrected" rybka to fruit, rybka 1.0 beta (corrected) is pretty close to the speed of Fruit. Now let's return to reality with these conversations. Rybka was likely 30-50% faster on 64 bit hardware, because of the gain for bitboards. That's ALL.
And we don't call that "much faster".
Of course it's not surprising that you are claiming that Rybka wasn't fast, wasn't unique, and still can't figure out why it was so strong. All this coming from a guy who thinks he knows everything about computer chess, but is unable to put together an engine that is within 400 Elo of the leaders.
I explicitly claimed that "Rybka was no faster than other fast programs of the period including Crafty and Fruit." Rybka PURPORTED itself to be much slower because of the output obfuscation Vas employed. Several debunked that myth. One thing is absolutely for certain, it was no faster than Crafty. And on 32 bit hardware it was in the same ballpark as Fruit. It was somewhat fater than fruit on 64 bit hardware, but it was not faster than Crafty there. Now how about stopping the continual twisting/distortion you like to employ. The above is what I have stated, SEVERAL times. Nothing more, nothing less.
Anthony looked through the Strelka code four years ago and confirmed his suspicions that Rybka was a very, very fast engine
Did you change your name to Anthony, or can't you read?
Why don't you make correct quotes. I did not "claim that rybka was fast."
Anthony was 180 degrees away from you on this, and he is obviously a much better engine developer than you are. He understood that Rybka 1's main advantage over other top engines was speed. This certainly wasn't the case for Crafty.
Now how about stopping the continual twisting/distortion you like to employ. The above is what I have stated, SEVERAL times. Nothing more, nothing less.
I pointed out that a much better engine developer, Anthony C., actually looked at the Strelka code to draw conclusions, rather than just spewing nonsense as you are wont to do.
Clear enough for you now? Rybka was far faster than CLAIMED. No faster than other fast programs. As I have said, repeatedly. Anyone can compare speeds. 1.0 beta is available on the net. Why not test this rather than singing off-key???
First, let's start with what Bob said:
"No, YOU are trying to extrapolate "Rybka was a very fast engine" to "Rybka was faster than everyone else." AC was commenting on the common "garbage theory" that Rybka was a new approach with significantly more chess knowledge added by an IM". In reality, it was a direct derivative of Fruit, and was in the same speed range as fruit.
Clear enough for you now? Rybka was far faster than CLAIMED. No faster than other fast programs."
Now contrast that with what Anthony said:
"For two years, whenever things were becoming
boring computer chess enthusiasts could always debate about what
Rybka's secret was. In hindsight, Vasik must have been quite amused
by those discussions, because Rybka's "secret" was simply to be super
optimized to 3 or 4 times faster than everything else."
"Anyway, from an engineering standpoint Strelka (rybka) is fantastic.
It packs most of the search and evaluation of Fruit/Crafty into
something almost 3 times faster. For those of you that have never
written code, 3 times is quite a bit, considering that Fruit and
Crafty are already reasonably well coded. Rybka is even faster than
the ultimate beancounter, Fritz 5, while having a lot more under the
Now can anyone explain why Bob Hyatt, the self acclaimed world renowned expert in semantic equivalence, can't tell the difference between these contrasting views?
If anthony believes Rybka was 3-4 times faster than anyone else, that is, quite simply, WRONG. Now if he happens to be talking about pruning or something to make it get to a deeper depth quicker, then his statement is misleading. But that is not the interpretation I think should be made.
There is a patch for Rybka 1.0 beta to correct the node count obfuscation. Try it. 1.0 beta was somewhere in the Crafty 22.2 range. Compare the speeds to see if Rybka is "3-4 times faster than Crafty." It isn't. Nobody was or is, unless you want to use unequal hardware.
Simple statement to test since 1.0 beta and crafty 22.2 are publicly available...
In terms of knowledge, there is very little that is not in well known except for the material tables, which should be very fast. I'm also pretty amazed at how aggressively the search prunes. Not only will Strelka drop straight into the q-search on a depth-3 search search, but because it orders all captures first, it will reduce almost all noncapture/check moves.
Anyway, in my professional opinion Strelka is basically Fritz5 + history reductions + bigger (but not more) mobility/passed pawn terms + super-vasik-material evaluation. What's amazing to me is how well it works. I don't know whether to laugh at the silliness of all the speculation surrounding Rybka and how horribly wrong it was, or congratulate you for taking a completely different path than everyone else.
and a few days later:
Somehow, without ever caring about execution speed, you
have written an engine that searches more nodes per second than *any
other commercial engine*, including Fritz, the engine written by the
man you claim is an assembler god. A casual observer might be quite
confused by this, but someone who read Strelka's source code somewhat
less so, because it contains hundreds of examples of ugly code chosen
because it runs damn fast. Some easy ones:
Strelka's search contains completely separate routines for PV and
non-PV nodes, which requires writing most search code twice, but saves
a few brances and cycles. This could be done by #including C files,
but this is also ugly.
Strelka's noncapture move generator scores each move from the history
table, as opposed to having a separate loop, which is what everyone
else does. This is faster, since there are probably free slots in the
pipeline during move generation, but it is extremely ugly, since any
change to history code must be done in 15 different places, once for
each piece type.
Strelka's static exchange evaluator doesn't compute the actual score,
but only whether or not the capture is losing or not. Of course, it
is lightning fast since there are millions of early termination cases.
But compare it to Crafty's swap() function and then talk to me about
elegance and simplicity.
I could go on all day, but I think I've made my point. Against this
mountain of empirical evidence, we have your claim that "you don't
program in assembly, and therefore you do no optimization". Either
you are using a different set of definitions from the rest of the
world, or you are so desparate to maintain the reputation of Rybka as
a high-knowledge program that you first obfuscated its output and now
are attempting to maintain that illusion despite the previously
mentioned mountain of evidence to the contrary. Mr Rajlich, if that
is your real name, let me remind you of an old quote: You can fool
some people all the time, and some people all of the time, but you
can't fool everyone all the time. The jig is up, and while your
pitiful efforts to maintain the facade may convince people who don't
read C++, those of us who do are only lowering our opinion of your
integrity even further.
Vas claimed these were mostly off the mark.
I infer, from his post, that his "point" was that Rybka was far faster than Vas claimed, and far faster than Rybka displayed. Which I happen to agree with 100%. But it certainly was not 3-4x faster than Crafty in terms of NPS. If he is talking about time to depth, I have not compared but I will just to see.
ompare strelka's SEE to Crafty's Swap(). Crafty's is about 2/3 as long. How something 50 lines longer is "simpler and more elegant" I won't try to guess.
Anthony is saying that Crafty's Swap() is much "simpler and more elegant", but that Strelka's SEE is faster.
But it certainly was not 3-4x faster than Crafty in terms of NPS. If he is talking about time to depth, I have not compared but I will just to see.
He saw nothing really special in the eval and attributed R1B's huge improvements to speed, both in NPS and in improved time to depth. And unlike your current revisionary historians, he didn't mince words about how R1B compared to its peers at the time:
Let me add one other thing: I'm talking about Rybka 1.0 Beta, that engine that took the chess world by storm and crushed everything that opposed it.
As far as the "revisionist" comment? Bullshit. You won't find a SINGLE person on the ICGA panel that denies that Rybka 1.0 beta was very strong, stronger than any contemporary of the time. So there is no "revision" to history, OTHER than the "minor detail" that much of that code came directly from Fabien. We all agree there was nothing special in the eval. It has been gone over with a fine-toothed comb during the investigation.
However, Cozzie DID explicitly state the NPS was 2-3 x faster than anybody else's. That's clearly wrong.
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill