I was going to write that using 16 Threads on my overclocked 8-Core machine doesn't help, so HT gives no benefit.
But seeing your post above, I'll try with 12 or 14 Threads and see...
Some hyperthreading results
Moderators: hgm, Rebel, chrisw
-
- Posts: 1339
- Joined: Fri Nov 02, 2012 9:43 am
- Location: New Delhi, India
Re: Some hyperthreading results
i7 5960X @ 4.1 Ghz, 64 GB G.Skill RipJaws RAM, Twin Asus ROG Strix OC 11 GB Geforce 2080 Tis
-
- Posts: 10948
- Joined: Wed Jul 26, 2006 10:21 pm
- Full name: Kai Laskos
Re: Some hyperthreading results
Well, it seems I was not paranoid enough. I too trusted the O/S (Windows 8.1 in my case), and just performed some careless checks, seeing a negligible 1% difference between setting or no affinity. But remembering that Mark saw significant NPS difference, yesterday I investigated a bit more, and discovered that I ruined the whole test by not being careful enough, and trusting the O/S. The difference in speed by setting affinity can be as large as 20%. Carefully setting required affinities, the correct results on my desktop (4 core i7 4790, 3.6GHz, Turbo Boost OFF, Dynamic Frequency OFF) are:bob wrote:You can (a) go into the BIOS and disable hyper threading (on most machines, excluding apple) or (b) just run with N/2 threads and any recent/decent O/S will schedule each thread on a physical core.mjlef wrote:Kai,
How can both hyperthreading on and off be tested? Was this two identical machines or on 1 machine? I ask since I see a different nps with hyperthreading being off and using the half the thread, than hyperthreading on using half the threads. So I do not see how it can be tested on one machine.
If two identical machines could be setup and connected, one with hyperthreading on and one off, then that would rule out the issue. But nodes per second does not seem to be enough.
Mark
For testing, you can easily play 4 threads vs 8 threads on one machine. 4 threads will run on 4 physical cores, 8 threads will use all 8 logical processors (2 per core). If you are paranoid, you can resort to thread affinity.
NPS improvement 4 -> 8 threads, 10 seconds per position, 150 positions:
Lazy:
- Stockfish dev: 1.24
Komodo 10.1: 1.28
Andscacs 0.872: 1.19
- Houdini 4: 1.04
Crafty 25.01: 1.17
Direct matches of 8t vs 4t and 6t vs 4t shows that 6 threads on 4 physical cores gives the biggest gain:
Stockfish dev games at 10''+0.1'' :
- Score of SF 8 threads vs SF 4 threads: 416 - 387 - 1197 [0.507] 2000
ELO difference: 5.04 +/- 8.64
Score of SF 6 threads vs SF 4 threads: 425 - 356 - 1219 [0.517] 2000
ELO difference: 11.99 +/- 8.50
Sorry for my erroneous first results, and thanks to Mark for pointing to a possible large problem with O/S allocation of threads.
-
- Posts: 47
- Joined: Mon Mar 07, 2016 12:46 am
Re: Some hyperthreading results
So I am correct to assume from these results that possibly using 2/3 of the thread count on Lazy smp engines is ideal?
-
- Posts: 10948
- Joined: Wed Jul 26, 2006 10:21 pm
- Full name: Kai Laskos
Re: Some hyperthreading results
Yes, I guess so (with Stockfish at least). Although for very many cores and NUMA it might be different, say not using hyperthreads at all might be better. If you are using HT ON in BIOS and only the physical cores, make sure you set the affinity right.Tdunbug wrote:So I am correct to assume from these results that possibly using 2/3 of the thread count on Lazy smp engines is ideal?
-
- Posts: 1339
- Joined: Fri Nov 02, 2012 9:43 am
- Location: New Delhi, India
Re: Some hyperthreading results
So how many Threads to use with a 8-Core Processor ?Laskos wrote:Yes, I guess so (with Stockfish at least). Although for very many cores and NUMA it might be different, say not using hyperthreads at all might be better. If you are using HT ON in BIOS and only the physical cores, make sure you set the affinity right.
12, 14 or something else ?
i7 5960X @ 4.1 Ghz, 64 GB G.Skill RipJaws RAM, Twin Asus ROG Strix OC 11 GB Geforce 2080 Tis
-
- Posts: 5960
- Joined: Sun Jan 10, 2010 6:15 am
- Location: Maryland USA
Re: Some hyperthreading results
Wouldn't 3/4 be correct rather than 2/3 based on your results? I realize that the margin of error is probably larger than the difference between 3/4 and 2/3. Is there any theoretical reason why the ideal fraction should go up or down as cores increase?Laskos wrote:Yes, I guess so (with Stockfish at least). Although for very many cores and NUMA it might be different, say not using hyperthreads at all might be better. If you are using HT ON in BIOS and only the physical cores, make sure you set the affinity right.Tdunbug wrote:So I am correct to assume from these results that possibly using 2/3 of the thread count on Lazy smp engines is ideal?
Komodo rules!
-
- Posts: 10948
- Joined: Wed Jul 26, 2006 10:21 pm
- Full name: Kai Laskos
Re: Some hyperthreading results
Yes, it will go down from my 3/4 for more cores to 1/2. The scaling 4 --> 8 (physical) is better than 16 --> 32 (physical), in other words, the scaling is below linear, and there is some point with many cores where a "weak" hyperthread doesn't add more than it harms due to SMP overhead. I presumed 2/3 for the range of roughly 8-16 physical cores.lkaufman wrote:Wouldn't 3/4 be correct rather than 2/3 based on your results? I realize that the margin of error is probably larger than the difference between 3/4 and 2/3. Is there any theoretical reason why the ideal fraction should go up or down as cores increase?Laskos wrote:Yes, I guess so (with Stockfish at least). Although for very many cores and NUMA it might be different, say not using hyperthreads at all might be better. If you are using HT ON in BIOS and only the physical cores, make sure you set the affinity right.Tdunbug wrote:So I am correct to assume from these results that possibly using 2/3 of the thread count on Lazy smp engines is ideal?
-
- Posts: 10948
- Joined: Wed Jul 26, 2006 10:21 pm
- Full name: Kai Laskos
Re: Some hyperthreading results
I would guess 12 or 10. Depends on particular processor type and memory too.shrapnel wrote:So how many Threads to use with a 8-Core Processor ?Laskos wrote:Yes, I guess so (with Stockfish at least). Although for very many cores and NUMA it might be different, say not using hyperthreads at all might be better. If you are using HT ON in BIOS and only the physical cores, make sure you set the affinity right.
12, 14 or something else ?
-
- Posts: 5960
- Joined: Sun Jan 10, 2010 6:15 am
- Location: Maryland USA
Re: Some hyperthreading results
That sounds correct to me. So probably there is no reason for me to use hyperthreading on 24 core machine. Should I use "affinities" on such a machine, and what would you guess is the likely benefit?Laskos wrote:Yes, it will go down from my 3/4 for more cores to 1/2. The scaling 4 --> 8 (physical) is better than 16 --> 32 (physical), in other words, the scaling is below linear, and there is some point with many cores where a "weak" hyperthread doesn't add more than it harms due to SMP overhead. I presumed 2/3 for the range of roughly 8-16 physical cores.lkaufman wrote:Wouldn't 3/4 be correct rather than 2/3 based on your results? I realize that the margin of error is probably larger than the difference between 3/4 and 2/3. Is there any theoretical reason why the ideal fraction should go up or down as cores increase?Laskos wrote:Yes, I guess so (with Stockfish at least). Although for very many cores and NUMA it might be different, say not using hyperthreads at all might be better. If you are using HT ON in BIOS and only the physical cores, make sure you set the affinity right.Tdunbug wrote:So I am correct to assume from these results that possibly using 2/3 of the thread count on Lazy smp engines is ideal?
Komodo rules!
-
- Posts: 1339
- Joined: Fri Nov 02, 2012 9:43 am
- Location: New Delhi, India
Re: Some hyperthreading results
OK, thanks.Laskos wrote:]I would guess 12 or 10. Depends on particular processor type and memory too.
I suppose by memory you mean amount of Hash used ?
i7 5960X @ 4.1 Ghz, 64 GB G.Skill RipJaws RAM, Twin Asus ROG Strix OC 11 GB Geforce 2080 Tis