DustyMonkey wrote: ↑Sat Jul 14, 2018 10:04 am If I want an engine to use a 1GB transposition table, attempting to set the parameter to 1GB isnt enough under HGM's definition, as the value I asked for is not the value that I will get. I will also need to know how much the engine is going to deduct from the value that I asked for, and that may even be based on the value of another setting.
Now I am juggling several settings just to set what was otherwise just a single setting. I guess HGM thinks this makes it twice as fun? I don't think he realizes that it actually makes it HARDER to achieve fairness when setting interact in poorly defined and absurdly specified ways.
UCI isnt a same-resources-please tournament specification. That would be somewhat... not Universal.
The point is that the typical user never wants to use 1GB (or whatever) TT hash. Because he has no clue about the difference between TT, Pawn Hash, eval cache, NN weight cache, counter-move table, ... (or a hole in the ground, or that matter). These are concepts only meaningful to engine programmers or other CC experts like testers. A very small group. The average user is just interested in setting a value that makes his engine make best use of the computer he has. If he sets 1GB, he wil do it because he found that setting 'Hash size' to 1GB works for all other engines, not because he wants a TT of 1GB. In fact most GUIs would do this automatically, applying a general hash setting to all engines. And he will be very (unpleasantly) surprised when the engine then does not work at all, while all other engines do. And he will have no clue how to cure this.
Because GUIs automatically apply the same value to all engines, it is important that all engines behave the same for the same setting of this parameter. Making some engines work fine, while others would be totally wrecked (hashing on disk) for a universally applied setting does not serve the interest of the typical user.
I am not sure what you mean by the 'fairness' remark. We have had this discussion before. What do you consider 'fair'? If they both run with equal hash, despite that the other uses 2 times as much memory for other purposes (say memory-loaded bitbases), or if they can both fully use the resources of the same computer? Anyway, it was pointed out many times that fairness is not amongst the goals of UCI. But making things work smoothly for the user is. Forcing him to alter hash size on a per-engine basis for technical reasons he does not understand definitely does not qualify as 'smooth operation'.