Split Index Super Set Yielding (SISSY) Bitboards

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Michael Sherwin
Posts: 3191
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Split Index Super Set Yielding (SISSY) Bitboards

Post by Michael Sherwin » Mon Feb 17, 2020 7:07 pm

mar wrote:
Mon Feb 17, 2020 6:15 pm
Michael Sherwin wrote:
Mon Feb 17, 2020 4:40 pm
@Martin - If you haven't given up yet on SISSY then I have the following code I'd like you to try. If you have given up then what is your conclusion? I'm kinda hanging out in the wind here.
I haven't given up Michael, I'll look at it in the coming days, no worries :)
I'm glad that you have not given up! :) About the move eax, eax I do not see right off how it would be useful but I will give it some thought. Thanks!
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through

mar
Posts: 2111
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Split Index Super Set Yielding (SISSY) Bitboards

Post by mar » Mon Feb 17, 2020 7:25 pm

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
Martin Sedlak

Michael Sherwin
Posts: 3191
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Split Index Super Set Yielding (SISSY) Bitboards

Post by Michael Sherwin » Mon Feb 17, 2020 10:33 pm

What's a Creel? on his YouTube channel featured a benchmark that he wrote to test various assembly language instructions. Bottom line for this thread is avoid shift instructions on intel as much as possible. His base machine was an 11 year old Phenom II which he normalized to 1.0. An i9-9900k running at 5ghz on all 16 threads only did 0.7731 Phenom II 810 quad core with 4 threads.

The benchmark: https://github.com/TheRainDoodle/Phenom-II-Benchmark
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through

mar
Posts: 2111
Joined: Fri Nov 26, 2010 1:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Split Index Super Set Yielding (SISSY) Bitboards

Post by mar » Thu Feb 20, 2020 6:59 pm

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?
Martin Sedlak

Michael Sherwin
Posts: 3191
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Split Index Super Set Yielding (SISSY) Bitboards

Post by Michael Sherwin » Fri Feb 21, 2020 12:26 am

mar wrote:
Thu Feb 20, 2020 6:59 pm
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?
I have been a bit under the weather for the last few days so I have not done much. Was -22 degrees fahrenheit (-30c)here this morning! My thoughts about folding the bishop is to shift down the upper 32 bits by 24 after masking out the non relative bits. That will make 3 ranks of relevant bits instead of 6. Then the initialization will have to continue with merging the upper suppersets with the lower supersets. All that would save a little time but how much idk.

You mentioned cache aligning so I am very interested in those figures combined with the rnk included improvement. That would tell me a lot. Also the Clang timings. I don't think the timings you gave previously included the better Clang code.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through

Michael Sherwin
Posts: 3191
Joined: Fri May 26, 2006 1:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Split Index Super Set Yielding (SISSY) Bitboards

Post by Michael Sherwin » Fri Feb 21, 2020 5:33 pm

NVM. I have decided to implement SISSY bitboards within a SearchOnePlyQ() function written entirely in x64 assembler. That method of move generation would have several advantages. It allows the efficiency of pseudo legal move generation that nonetheless produces a legal list of moves each of which has a score from the Eval() function. Assembler would allow the use of true jump table code which C/C++ just can't generate. The most time consuming part of the search at the leaves would totally be in one very efficient function. It can be programmed as a DLL (.dll) or an SLL (.lib) file that others could use in their projects. This is what I want to do. This is what makes sense to me at this time. :idea:
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through

Post Reply