Yes, I know, but I tend to compile with mtune=native which will allow the program to run on other platforms.syzygy wrote: ↑Fri Sep 04, 2020 11:43 pm-march=native implies -mtune=native.Dann Corbit wrote: ↑Thu Sep 03, 2020 6:32 am I am not seeing a huge difference now.
I got for 1 thread from the root node 26 ply search):
AVX:
nps 2364000
No popcount:
nps 1867000
Modern:
nps 2360000
I have a lot of things going on on this machine, like database servers, so I think I must have been fooled by something.
I got a 40% boost for Cfish.
I thought I saw a good boost for Ethereal, and when it started solving effectively a batch of difficult mates, I thought I had found something.
Sorry for the trouble.
Something I did differently with Cfish is that I did not use march=native, but instead mtune=native.
The simplest thing is:This compiles Cfish with profile-guided optimization and automatically selects the best flags for your CPU (and adds -march=native).Code: Select all
make pgo
Howerver, having chosen AVX2, I have already severely limited the target platforms in this case, so I should problably just follow your advice.
I also do several platform specific builds that have low requirements so that I can run it on old machines. I don't want to install complers on all of them.
There is a caution with march=native in that the CPU reports BMI and if BMI instructions are used on AMD threadripper, the results go straight in the crapper. So I will test a few configurations.