floating point SSE eval

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

elcabesa
Posts: 855
Joined: Sun May 23, 2010 1:32 pm

Re: floating point SSE eval

Post by elcabesa »

thank you thomas and gerd.

I'll take a look at FMA instruction set but I think it's too advanced and it will end in an engine running only on very new hardware.
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: floating point SSE eval

Post by tpetzke »

And one more thing I just realized while playing my eval a bit

Due to some removal of terms I was able to converge two remaining expressions in my eval

score += a * c/d
score += b * c/d

into

score += (a+b) * c/d

This changed the benchmark node code signature of my engine (significantly). So I had to perform a regression test for such a simple change. At the end it turned out it wasn't a regression (as expected) but as I'm rather strict in testing (every change that changes the node count is tested) this was annoying.

Maybe you see more of this with floats, because here even the reorder of 2 additions might yield different results. So your testing effort might increase (at least if you are as paranoid as I am).

Thomas...
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine
elcabesa
Posts: 855
Joined: Sun May 23, 2010 1:32 pm

Re: floating point SSE eval

Post by elcabesa »

understood, I'm a control engineer and work with fixed point dsp and now even with floating point ones and understand some of the issue.

Up to now I have't been too much stressed by benchmark count.
what you mean by benchmark nodecount? ( nodecount of a predefined searchon a predefined set of position)
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: floating point SSE eval

Post by tpetzke »

yes, my benchmark signature is a node count of a set of 30 positions searched to a fixed depth.

If I change something in my engine that does not change the node count of this test, I don't do a regression test. I just look at nps then

Thomas...
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine