Search found 2052 matches

by mar
Mon Feb 24, 2020 12:47 am
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: hash collisions
Replies: 370
Views: 27992

Re: hash collisions

I also use a language that is probably better at reducing bugs (the D language), as it uses a garbage collector and help to write things in less line of codes. I won't go into why I don't think garbage collection is the way to manage memory, but I don't see how D is any safer than C or C++ or Pasca...
by mar
Thu Feb 20, 2020 6:59 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Split Index Super Set Yielding (SISSY) Bitboards
Replies: 45
Views: 5385

Re: Split Index Super Set Yielding (SISSY) Bitboards

So what's the current status?
I'm not going to try any assembly, I think your last improvement was to reuse part of qss for the rnk table?
Also I think you were talking about reducing the number of lookups for bishops as well?
by mar
Wed Feb 19, 2020 6:37 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: SIMD methods in TT probing and replacement
Replies: 15
Views: 1704

Re: SIMD methods in TT probing and replacement

BTW, I don't like aging in general. It requires you to modify the bucket even on a hit that caused a hash cutoff. That dirties the cache line, so that it will have to be written back when it finally gets flushed out of the cache. This causes a lot of extra memory bandwidth. Perhaps we should only u...
by mar
Wed Feb 19, 2020 3:49 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: EPD destruction tests
Replies: 81
Views: 6378

Re: EPD destruction tests

chrisw wrote:
Wed Feb 19, 2020 1:35 pm
While my test engine doesn't return in any sensible time in the case of 30 queens.
qs explosion. the cure is simple: limit minimum depth (I never go deeper than -3*root_depth)
by mar
Wed Feb 19, 2020 2:47 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: SIMD methods in TT probing and replacement
Replies: 15
Views: 1704

Re: SIMD methods in TT probing and replacement

I think I still like the idea of 7 entries + extended signature better, because in the case of a TT store the 7-entry version does 2 writes instead of 3 and would require more exotic packing/unpacking (plus I like having 7 entries/bucket rather than 6, even though the 6-entry version could store lar...
by mar
Tue Feb 18, 2020 3:42 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: hash collisions
Replies: 370
Views: 27992

Re: hash collisions

I've just realized that my code (I haven't touched it for the past 5 years except for minor bugfixes - no pun intended) relies on move flags (validation) so I'll probably stick with 4-entry buckets, bob's xor trick and 64-bit keys. I still like your idea a lot - certainly worth trying, but maybe for...
by mar
Tue Feb 18, 2020 1:17 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: hash collisions
Replies: 370
Views: 27992

Re: hash collisions

The method I proposed above uses 9 instructions to collect the difference bits in one place (3 x (MOVE, SHIFT, OR)). It can be done with fewer instructions, and without shifts (which can be a bottle-neck, as there usually is only a single shift unit per core, as opposed to 3 ALUs), making use of ca...
by mar
Mon Feb 17, 2020 8:40 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: hash collisions
Replies: 370
Views: 27992

Re: hash collisions

I don't think this works. You can also get zero during squashing when all key extensions differ from the sought one, but all in different bits. So you would get a lot of false potential hits. I often regret that there doesn't exist something like a 'logical multiply', which does a binary multiplica...
by mar
Mon Feb 17, 2020 7:25 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Split Index Super Set Yielding (SISSY) Bitboards
Replies: 45
Views: 5385

Re: Split Index Super Set Yielding (SISSY) Bitboards

Michael Sherwin wrote:
Mon Feb 17, 2020 7:07 pm
About the move eax, eax I do not see right off how it would be useful but I will give it some thought. Thanks!
Of course, that was a bad example :) What I meant was that add eax,edx will clear upper 32 bits of rax, the same applies to mov eax,edx and so on
by mar
Mon Feb 17, 2020 6:24 pm
Forum: Computer Chess Club: Programming and Technical Discussions
Topic: Split Index Super Set Yielding (SISSY) Bitboards
Replies: 45
Views: 5385

Re: Split Index Super Set Yielding (SISSY) Bitboards

For registers r8, r9 I did not see that there were r8l ... or r8h ... registers. I only saw r8b ... registers. If there are r8h ... registers then I prefer your code. Yes, they gave up on xh registers (in 64-bit mode with rex prefix, otherwise old ah, bh etc. still work) but instead you have sil, d...