You misunderstand. You did the right thing and I am not blaming you or your decision in this particular case, but what really didn't seem right and what annoyed me was the discussion on what was best for you to use for AMD. For example would you have used an AMD optimized version had one been available?IWB wrote:I remember vaguely that we discussed that problem about your compiles and I don't get it completly anymore (would have to check my emails) but I think it can only be to avoidDon wrote:
It wouldn't be fair to run a 32 bit Stockfish and nobody would be happy with this solution and I would be on Stockfish's side if you had done this.
On the other hand it also doesn't seem fair to have a list of compiles that you choose from where you pick the best one for your hardware. Why would that not be fair? Because I am not allowed to do that. I tried to do that and was rebuked for it. Our plan was to provide an official version in the distribution for each processor family, including multiple ones for older Intel and newer Intel if we could make it work - and YOU told me that only 1 official version could be used on your test.
So I'm more than a little annoyed that so much effort is spend on finding the one perfect compile of stockfish that you can use - that the rules changed for Stockfish and that it's even a question which one you should use. Even if there is a link to multiple compiles on their website that seems like a workaround - for example if someone produces a special Haswell compile that only worked well on Haswell then are you saying that all they have to do is add that to their growing list of binaries on that site and that it's all ok?
To be completely clear, I think there SHOULD be multiple compiles for multiple platforms and that this SHOULD be allowed - so I'm not saying Stockfish users should not enjoy this advantage and I advocate this kind of free choice - but what I am saying is that if it's ok for them it should be ok for any of us and not JUST them.
As I said before this is an issue that is not going to go away because I expect future processors to have more and more capabilities that might be utilized in chess programs just as popcount has been. So I strongly suggest that all the major testers agree upon some rules here and this not become an ad-hoc per-program decision.
I propose a liberal policy that lets a program author include in his release as many binaries as the author wishes to produce - but that for official tests this is confined to what is available at release time. For casual users there is no problem with allowing compiles to be added to a growing list if that can benefit the end-users. But for testing it is equivalent to having a new release every time a new compile is produced and I don't think anyone wants that.
What is NOT acceptable is for a program author to work with each tester to make a specialized compile just for the test - which is not what I'm saying is happening here but I could see this happening in the future if there is not some rules.
a) confusion on the customer side and
b) one compile suitable for 95% of all users would be the best.
I have to appologie because you are anoid by my decision but what else could I have done. "Officialy" I could have only used the 32 bit version and you yourself wrote that this would be wrong and you would support the Stockfish team in that. So I had to make a reasonable decisiion and that was to use a compile from a site where even the Stockfish team was refering to (and taking their comples). Right now I can not get closer to "official" than this. So, sorry again, but what else to do?
Neither am I against the Stockfish team for providing such choices - I think they SHOULD provided choices - that is never bad. However, I remember that in more than one case I was not allowed to do so (not just you) and that really annoyed me.
I was not upset by you or any particular individual, it was the implicit assumption that you should use the best compile for your platform - an assumption that I happen to agree with on general principle but only if the rules are the same for everyone. Am I wrong to expect that?
Besides that. If one would make special compiles for individual CPUs I don't think that is a good solution. I think a "general" compile, maybe detecting some hardware specialities for 64 and 32 bit is enough even if it might lose 2,3,4% of performance. If you start with individual compiles you have to do a lot of work with every new generation AND you will get request for this special Samsung CPU, Android devices, Intel ad AMD low power version ... it will never end. Do you really want to run behind every fraction of a percent to pelase every possible CPU owner?
Sorry for having you upset but I dont think it is something special for Stockfish but more finding a practical solution - which basicaly all rating lists have choosen as I have heard ...
It is easy for a distribution to provide a number of binaries and have a front-end script select that based on the hardware. The front end script could even be an executable. Basically the script makes the determination and it runs the appropriate binary.
I think this is a lot more problematic on Windows, which treats scripts and native executable's differently - but Unix tends to have much better abstractions - a script is no different than an executable. I tried running a chess program from a batch file years ago in windows and Fritz couldn't load the script as if it were the program but in Linux there is no distinction that would defeat any GUI. But if there is a way to work around this in windows a simple solution is that the program author provides a single entry point (such as a windows batch file) called "stockfish-4.bat" that figures out which DISTRIBUTION PROVIDED binary to run and just runs it transparently.
Anyway, that is just one possibility, but what is important to me is that there are consistent rules that testers must follow - or at least that each testing group publishes a clear policy on this matter.
Bye
Ingo
