Jump to content

Hyperthreading reduces fps in games ? Less 1 core performance ?

Hello. Currently i got an i7 7700k. Before that i had an i5 6600k. I have ordered a i9 9900k wich is coming tomorrow. My question is, and it is for skyrim mainly cause i heard rumors it runs 1 core only more than the other cores.. and i am going to heavily mod skyrim with lots of 4k textures, scripts etc. Would a non-hyperthreaded cpu work better with skyrim ? What do you guys think. Thanks for any answers ! My rig. 

 

Mobo: asus maximus x hero

Gpu: evga 1080 ti ftw3 ( getting a second one tomorrow too gonna run SLI )

Ram: 32 gig corsair vengeance something

Psu: corsair hx750i

Storage: samsung 970 plus 1tb , and 970 pro 512gb

Hmmmm yea thats it some fans from corsair ll120 and ll140 6 in total two of them are ll140 

Oh and nzxt kraken x72

Corsair crystal 570x case.

Link to comment
Share on other sites

Link to post
Share on other sites

It is a possibility but you'd have to test it. When HT is on, and you have an important (time critical) thread going through a core, if anything else at all goes on the other thread, it will slow the 1st one down. With HT off, this can't happen.

Gaming system: R7 7800X3D, Asus ROG Strix B650E-F Gaming Wifi, Thermalright Phantom Spirit 120 SE ARGB, Corsair Vengeance 2x 32GB 6000C30, RTX 4070, MSI MPG A850G, Fractal Design North, Samsung 990 Pro 2TB, Acer Predator XB241YU 24" 1440p 144Hz G-Sync + HP LP2475w 24" 1200p 60Hz wide gamut
Productivity system: i9-7980XE, Asus X299 TUF mark 2, Noctua D15, 64GB ram (mixed), RTX 3070, NZXT E850, GameMax Abyss, Samsung 980 Pro 2TB, random 1080p + 720p displays.
Gaming laptop: Lenovo Legion 5, 5800H, RTX 3070, Kingston DDR4 3200C22 2x16GB 2Rx8, Kingston Fury Renegade 1TB + Crucial P1 1TB SSD, 165 Hz IPS 1080p G-Sync Compatible

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, w33dhit said:

Would a non-hyperthreaded cpu work better with skyrim ?

No.

1 minute ago, porina said:

It is a possibility but you'd have to test it. When HT is on, and you have an important (time critical) thread going through a core, if anything else at all goes on the other thread, it will slow the 1st one down. With HT off, this can't happen.

That's not true. HT is an efficiency measure, it uses unused parts of a core's pipeline to run other commands - this doesn't affect the performance of the core, otherwise it would just be normal scheduling. If you turn HT off, that hypothetical task will just have to take turns with the game and THAT would reduce the core's performance.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Sauron said:

No.

That's not true. HT is an efficiency measure, it uses unused parts of a core's pipeline to run other commands - this doesn't affect the performance of the core, otherwise it would just be normal scheduling. If you turn HT off, that hypothetical task will just have to take turns with the game and THAT would reduce the core's performance.

No.

That's not true. HT has an overhead. It's like 1% (or less) in most cases, and about 5% at most IIRC. It only really matters for certain workloads. Most will see the multithread improvements of a bit more than 5% anyhow (intel claims 15-30%). So for everyone else it's a net performance increase (on average).

 

It would take some time to find the tests, but IIRC it's a scheduling/sorting performance impact. The CPU literally has to decide on what thread to put it in, if it can put it in, and if/how the memory (cache/registers etc) are divided. In all it's a tiny impact, but it's there. I think only a small subset of heavy compute systems would ever bother turning it off though.

 

Quote

Hyper-Threading can improve the performance of some MPI applications, but not all. Depending on the cluster configuration and, most importantly, the nature of the application running on the cluster, performance gains can vary or even be negative. The next step is to use performance tools to understand what areas contribute to performance gains and what areas contribute to performance degradation.

Now we are hitting 5GHz, the time to check if the HT compute is needed/correct/predicted is less and less of that % hit compared to the P4 days... but it is technically still there.

 

Remember, gravity is one of the weakest forces known. Yet we cannot say "it's so small, we will say it does not exist". ;)

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, Sauron said:

If you turn HT off, that hypothetical task will just have to take turns with the game and THAT would reduce the core's performance.

While it sounds right in theory, in practical terms we have seen the i7 9700K normally be like 2~3 fps faster than the i9 9900K when matching clocks and settings and all else, HT doesn't seem to help in games averages and may even hurt them ever so slightly HOWEVER it has shown to help in minimums when you compare the i5 9600K vs i7 8700K...

 

I'm honestly intrigued on game engines vs HT...

 

All in all though I still consider being better to have it than not have it if you've the alternative since multi-tasking and multi-threading always benefits.

Personal Desktop":

CPU: Intel Core i7 10700K @5ghz |~| Cooling: bq! Dark Rock Pro 4 |~| MOBO: Gigabyte Z490UD ATX|~| RAM: 16gb DDR4 3333mhzCL16 G.Skill Trident Z |~| GPU: RX 6900XT Sapphire Nitro+ |~| PSU: Corsair TX650M 80Plus Gold |~| Boot:  SSD WD Green M.2 2280 240GB |~| Storage: 1x3TB HDD 7200rpm Seagate Barracuda + SanDisk Ultra 3D 1TB |~| Case: Fractal Design Meshify C Mini |~| Display: Toshiba UL7A 4K/60hz |~| OS: Windows 10 Pro.

Luna, the temporary Desktop:

CPU: AMD R9 7950XT  |~| Cooling: bq! Dark Rock 4 Pro |~| MOBO: Gigabyte Aorus Master |~| RAM: 32G Kingston HyperX |~| GPU: AMD Radeon RX 7900XTX (Reference) |~| PSU: Corsair HX1000 80+ Platinum |~| Windows Boot Drive: 2x 512GB (1TB total) Plextor SATA SSD (RAID0 volume) |~| Linux Boot Drive: 500GB Kingston A2000 |~| Storage: 4TB WD Black HDD |~| Case: Cooler Master Silencio S600 |~| Display 1 (leftmost): Eizo (unknown model) 1920x1080 IPS @ 60Hz|~| Display 2 (center): BenQ ZOWIE XL2540 1920x1080 TN @ 240Hz |~| Display 3 (rightmost): Wacom Cintiq Pro 24 3840x2160 IPS @ 60Hz 10-bit |~| OS: Windows 10 Pro (games / art) + Linux (distro: NixOS; programming and daily driver)
Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, Sauron said:

That's not true. HT is an efficiency measure, it uses unused parts of a core's pipeline to run other commands - this doesn't affect the performance of the core, otherwise it would just be normal scheduling. If you turn HT off, that hypothetical task will just have to take turns with the game and THAT would reduce the core's performance.

What I wrote is true and trivial to prove if you set up a test for it. As an example, turning off HT is a common technique for competitive overclockers going for single thread benchmarks. You're talking about a difference scenario than I proposed, and may not apply to OP's case. It was stated that it was suspected single thread performance matters. If so, you don't want anything else to slow that down. HT could. Now if the software was something else and used all cores/threads equally, then losing threads might impact things overall.

Gaming system: R7 7800X3D, Asus ROG Strix B650E-F Gaming Wifi, Thermalright Phantom Spirit 120 SE ARGB, Corsair Vengeance 2x 32GB 6000C30, RTX 4070, MSI MPG A850G, Fractal Design North, Samsung 990 Pro 2TB, Acer Predator XB241YU 24" 1440p 144Hz G-Sync + HP LP2475w 24" 1200p 60Hz wide gamut
Productivity system: i9-7980XE, Asus X299 TUF mark 2, Noctua D15, 64GB ram (mixed), RTX 3070, NZXT E850, GameMax Abyss, Samsung 980 Pro 2TB, random 1080p + 720p displays.
Gaming laptop: Lenovo Legion 5, 5800H, RTX 3070, Kingston DDR4 3200C22 2x16GB 2Rx8, Kingston Fury Renegade 1TB + Crucial P1 1TB SSD, 165 Hz IPS 1080p G-Sync Compatible

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, Sauron said:

it uses unused parts of a core's pipeline to run other commands

That an ideal case. If 2 threads are binded on the same physical CPU, and one thread is doing 100% of compute cycles, then the scheduler have to "stop" the first thread to let the other execute. In this case, you end up with 100% CPU usage, but poor performance.

Link to comment
Share on other sites

Link to post
Share on other sites

Yeah. Probably best to test. Newer games with lots of MT will benefit hugely with HT on. Older games/engines (Is Skyrim still single threaded?) may benefit a few % on having it off.

Also depends how well the OS does it's job. Some coding/optimisation might already exist to help this (though that's mainly AMD, right?).

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, TechyBen said:

Yeah. Probably best to test. Newer games with lots of MT will benefit hugely. Older games/engines (Is Skyrim still single threaded?) may benefit a few % on having it off.

Also depends how well the OS does it's job. Some coding/optimisation might already exist to help this (though that's mainly AMD, right?).

OG Skyrim is single threaded. The special edition they released a few years ago had some limited multithreading.

I'm pretty sure my purpose in life is to serve as a warning for others.

Link to comment
Share on other sites

Link to post
Share on other sites

Keep the comments coming guys !!  I shoulda mentioned i was going to mod oldrim ( not special edition ) and yeah gonna test tomorrow and give a reply. 

Link to comment
Share on other sites

Link to post
Share on other sites

50 minutes ago, porina said:

What I wrote is true and trivial to prove if you set up a test for it. As an example, turning off HT is a common technique for competitive overclockers going for single thread benchmarks. You're talking about a difference scenario than I proposed, and may not apply to OP's case. It was stated that it was suspected single thread performance matters. If so, you don't want anything else to slow that down. HT could. Now if the software was something else and used all cores/threads equally, then losing threads might impact things overall.

Overclocking is a completely different matter, HT is turned off there for stability and power draw concerns. Most extreme overclockers are also going to disable all cores but one for the same reason, that doesn't mean having more cores hurts single core performance (given the same clock speed and IPC).

52 minutes ago, Mesterial said:

That an ideal case. If 2 threads are binded on the same physical CPU, and one thread is doing 100% of compute cycles, then the scheduler have to "stop" the first thread to let the other execute. In this case, you end up with 100% CPU usage, but poor performance.

That's what happens without HT. That's literally normal OS scheduling. HT allows you to use extra resources in the CPU that would otherwise not be accessible by the OS.

54 minutes ago, Princess Luna said:

While it sounds right in theory, in practical terms we have seen the i7 9700K normally be like 2~3 fps faster than the i9 9900K when matching clocks and settings and all else, HT doesn't seem to help in games averages and may even hurt them ever so slightly HOWEVER it has shown to help in minimums when you compare the i5 9600K vs i7 8700K...

2-3 fps is within the margin of error in most cases. Same goes for the thread you linked @TechyBen, 3 fps out of 185 are well within the range of variation you can expect between separate runs of a benchmark. There might be a very slight overhead on full load where scheduling multiple demanding processes can place an extra burden on the scheduler but those are edge cases that don't apply to playing skyrim with little else going on on the system.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, Sauron said:
1 hour ago, Mesterial said:

That an ideal case. If 2 threads are binded on the same physical CPU, and one thread is doing 100% of compute cycles, then the scheduler have to "stop" the first thread to let the other execute. In this case, you end up with 100% CPU usage, but poor performance.

That's what happens without HT. That's literally normal OS scheduling. HT allows you to use extra resources in the CPU that would otherwise not be accessible by the OS.

1 physical cpu = 2 logical cpus ?

 

During HPL, HT would hurt performance by 50%. This is the worse case possible. 

But as gamers are really not like HPL in terms of load, then "production"-wise, HT has some benefits. But games just can't be compared to a throughput workload. 

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Mesterial said:

1 physical cpu = 2 logical cpus ?

And? HT and normal scheduling are drastically different. If you need to schedule 2 processes on a single core you switch from one process to the other every other cycle (depending on the scheduling algorithm the rate of switching may vary wildly). This inevitably causes some performance loss on those processes. HT allows you to run two processes in the same cycle by having one process use the currently inactive stages of the pipeline - keyword is INACTIVE. The higher priority process uses whatever parts it wants, the other process gets the scraps - this means there is no performance overhead on the main process.

5 minutes ago, Mesterial said:

During HPL, HT would hurt performance by 50%. This is the worse case possible. 

But as gamers are really not like HPL in terms of load, then "production"-wise, HT has some benefits. But games just can't be compared to a throughput workload. 

Exactly, that's a scheduling overhead that doesn't apply to single threaded processes on an otherwise idle system, which is what we're talking about here.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

Games are often single thread, so the only bad thing that could happen is the OS binding the game thread not smartly enough to a cpu having other things to do (or an idle task is woken up on the same cpu). That's why "HT is bad for games", but as the game is not as intensive as the HPL, and the background task isn't as well, it is most of the time not humanly visible for the performance (you don't recode a movie while gaming on a 4 cores machine, and Windows understands more and more what a game is ("game mode", etc)). 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Sauron said:

Overclocking is a completely different matter, HT is turned off there for stability and power draw concerns. Most extreme overclockers are also going to disable all cores but one for the same reason, that doesn't mean having more cores hurts single core performance (given the same clock speed and IPC).

While I agree that disabling HT can also help with power and max overclocking headroom, assuming the same stable clock for either case you would still want to turn off HT to prevent it interfering with a single thread run. More cores doesn't hurt and can help with unavoidable background processes, more threads per core can have a negative impact. This is the exact scenario posed by OP.

 

Maybe I could put it more clearly as: if you are not multi-thread CPU resource limited, having HT off will potentially lead to more consistent performance.

 

HT is a way to extract more throughput out of a core, but it doesn't mean you will get faster single thread performance from having it. In another thread, I have posed the question, it may be time for HT/SMT to be killed off if real core counts continue to rise. 

Gaming system: R7 7800X3D, Asus ROG Strix B650E-F Gaming Wifi, Thermalright Phantom Spirit 120 SE ARGB, Corsair Vengeance 2x 32GB 6000C30, RTX 4070, MSI MPG A850G, Fractal Design North, Samsung 990 Pro 2TB, Acer Predator XB241YU 24" 1440p 144Hz G-Sync + HP LP2475w 24" 1200p 60Hz wide gamut
Productivity system: i9-7980XE, Asus X299 TUF mark 2, Noctua D15, 64GB ram (mixed), RTX 3070, NZXT E850, GameMax Abyss, Samsung 980 Pro 2TB, random 1080p + 720p displays.
Gaming laptop: Lenovo Legion 5, 5800H, RTX 3070, Kingston DDR4 3200C22 2x16GB 2Rx8, Kingston Fury Renegade 1TB + Crucial P1 1TB SSD, 165 Hz IPS 1080p G-Sync Compatible

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, porina said:

HT is a way to extract more throughput out of a core, but it doesn't mean you will get faster single thread performance from having it. In another thread, I have posed the question, it may be time for HT/SMT to be killed off if real core counts continue to rise. 

I never said single core performance gets better with HT...

 

I stand by my position that having HT on while playing skyrim makes no significant difference. It would be nice to have some specific benchmarks but right now I'm not in a position to run them since I'm studying abroad and my laptop can't run skyrim well enough to perform a test like this. If you can show me any proof that HT negatively impacts a single threaded game's performance beyond the margin of error of the benchmark I'll change my mind but you still haven't presented a theoretical explanation for why that would be the case - how could HT "interfere" with a single thread run? If there is an overhead it's almost certainly due to scheduling, not to processes on the "fake" core stealing resources from the ones on the regular cores.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Sauron said:

Overclocking is a completely different matter, HT is turned off there for stability and power draw concerns. Most extreme overclockers are also going to disable all cores but one for the same reason, that doesn't mean having more cores hurts single core performance (given the same clock speed and IPC).

That's what happens without HT. That's literally normal OS scheduling. HT allows you to use extra resources in the CPU that would otherwise not be accessible by the OS.

2-3 fps is within the margin of error in most cases. Same goes for the thread you linked @TechyBen, 3 fps out of 185 are well within the range of variation you can expect between separate runs of a benchmark. There might be a very slight overhead on full load where scheduling multiple demanding processes can place an extra burden on the scheduler but those are edge cases that don't apply to playing skyrim with little else going on on the system.

No. The thread I linked has 30% difference in single core performance for older code that is not threaded and where cpu ghz matter. Even when not OCing the boost clocks *will* be different as HT silicone will put out some heat and have some power draw (mainly from constantly filling those registers). Yes, even that is small, but may affect older games a LOT.3

Link to comment
Share on other sites

Link to post
Share on other sites

34 minutes ago, Sauron said:

I stand by my position that having HT on while playing skyrim makes no significant difference. It would be nice to have some specific benchmarks but right now I'm not in a position to run them since I'm studying abroad and my laptop can't run skyrim well enough to perform a test like this. If you can show me any proof that HT negatively impacts a single threaded game's performance beyond the margin of error of the benchmark I'll change my mind but you still haven't presented a theoretical explanation for why that would be the case - how could HT "interfere" with a single thread run?

I don't know if it will affect that specific game, hence my original statement that it would have to be tested. I only said it could.

34 minutes ago, Sauron said:

If there is an overhead it's almost certainly due to scheduling, not to processes on the "fake" core stealing resources from the ones on the regular cores.

That is the scenario I'm thinking of. Assume we have 2 cores, with 2 threads on each to keep things simple.

 

Case A: With HT off, critical path thread runs on core 1, other stuff can run on core 2.

Case B: With HT on, if critical path thread runs on core 1 (either thread), and other stuff runs on core 2 (either thread), result will be essentially same as case A.

Case C: With HT on, if critical path thread runs on core 1 (either thread), and other stuff runs on core 1 (other thread), result will be slower critical thread.

 

By turning off HT, we prevent case C from happening. I have no idea how many threads are floating around with Skyrim. Turning off HT would only help if there is enough CPU to go around still, so that you don't run out of resource which would also start to take time away from the critical path thread.

Gaming system: R7 7800X3D, Asus ROG Strix B650E-F Gaming Wifi, Thermalright Phantom Spirit 120 SE ARGB, Corsair Vengeance 2x 32GB 6000C30, RTX 4070, MSI MPG A850G, Fractal Design North, Samsung 990 Pro 2TB, Acer Predator XB241YU 24" 1440p 144Hz G-Sync + HP LP2475w 24" 1200p 60Hz wide gamut
Productivity system: i9-7980XE, Asus X299 TUF mark 2, Noctua D15, 64GB ram (mixed), RTX 3070, NZXT E850, GameMax Abyss, Samsung 980 Pro 2TB, random 1080p + 720p displays.
Gaming laptop: Lenovo Legion 5, 5800H, RTX 3070, Kingston DDR4 3200C22 2x16GB 2Rx8, Kingston Fury Renegade 1TB + Crucial P1 1TB SSD, 165 Hz IPS 1080p G-Sync Compatible

Link to comment
Share on other sites

Link to post
Share on other sites

Yeah, it seems skyrim sets to cores 0 and 1, so can get stuck on a full (so interrupted/slow) virtual core.

 

Besides. Opinions are great, but facts are real: 

A generality, is not a specific case. Sauron, you are correct about general systems. But the question is for a *specific* one.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, TechyBen said:

No. The thread I linked has 30% difference in single core performance for older code that is not threaded and where cpu ghz matter. Even when not OCing the boost clocks *will* be different as HT silicone will put out some heat and have some power draw (mainly from constantly filling those registers). Yes, even that is small, but may affect older games a LOT.3

From what I see in that thread the age of the game is irrelevant, it seems to be completely arbitrary if HT is going to make things better or worse and in very few cases the difference is meaningful. here be older benchmarks and the only game where the non-ht chip comes out on top is SC2 which is notoriously poorly optimized.

Just now, TechyBen said:

Yeah, it seems skyrim sets to cores 0 and 1, so can get stuck on a full (so interrupted/slow) virtual core.

 

Besides. Opinions are great, but facts are real: https://forums.nexusmods.com/index.php?/topic/505642-fix-fps-drop-on-multicorehyperthread-cpus/

Then I stand corrected on skyrim specifically, but that thread says you can get rid of the performance problem by forcing it to use "physical" cores - so having HT on or off ultimately doesn't matter.

4 minutes ago, porina said:

Case C: With HT on, if critical path thread runs on core 1 (either thread), and other stuff runs on core 1 (other thread), result will be slower critical thread.

That shouldn't happen if the software properly supports HT - though apparently it turns out skyrim doesn't.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

17 minutes ago, Sauron said:

From what I see in that thread the age of the game is irrelevant, it seems to be completely arbitrary if HT is going to make things better or worse and in very few cases the difference is meaningful. here be older benchmarks and the only game where the non-ht chip comes out on top is SC2 which is notoriously poorly optimized.

Then I stand corrected on skyrim specifically, but that thread says you can get rid of the performance problem by forcing it to use "physical" cores - so having HT on or off ultimately doesn't matter.

That shouldn't happen if the software properly supports HT - though apparently it turns out skyrim doesn't.

(Sorry, I changed the link, I had multiple tabs open, but both stand)

Quote

Then I stand corrected on skyrim specifically, but that thread says you can get rid of the performance problem by forcing it to use "physical" cores - so having HT on or off ultimately doesn't matter.

Yes. Both are solutions. Turning off HT or changing the .ini files/windows launch options.

 

Quote

That shouldn't happen if the software properly supports HT - though apparently it turns out skyrim doesn't.

Yes. The thread asking if Skyrim supports it, we checked, and answered regarding Skyrim. We said (paraphrasing) "for this specific workload it probably will help to turn off HT, in general it will not".

 

Specifically, in a certain workload, there is difference. Old AMD CPUs shared registers and thus made them only Single precision, not Double when hyperthreading (though physical cores in AMDs case on the old A8s and the likes). Theoretically there is always overhead for any type of multitasking/split workload. That's mathmatically proven, physics or not, CPU or industrial factory. Car or stellar collisions... it's a fact. :/

 

For example:

Quote

 How much HT hurts application performance depends on design:

  • Compute intensive application with small working set that fits into cpu caches are the one impacted the most with HT enabled.
  • Lack of concurrency in application resulting higher contention for shared resources. More processors means more contention. Higher contention will cause less execution and thus processors will be either sitting idle or doing no productive work due to waiting for lock (context switch) or spinning on lock (busy-waiting).

 

http://techblog.cloudperf.net/2016/07/measuring-intel-hyper-thread-overhead.html

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, TechyBen said:

Yes. Both are solutions. Turning off HT or changing the .ini files/windows launch options.

Well I would say that's a pretty big step away from "having HT enabled lowers performance". Binding the game to real cores still lets you use HT with background processes, disabling HT does not.

10 minutes ago, TechyBen said:

Old AMD CPUs shared registers and thus made them only Single precision, not Double when hyperthreading (though physical cores in AMDs case on the old A8s and the likes).

Not really the same idea as HT - FX modules were symmetrically meh whereas SMT gives you a good core and a meh one that uses parts of the physical core which aren't currently in use. Big difference.

12 minutes ago, TechyBen said:

Theoretically there is always overhead for any type of multitasking/split workload. That's mathmatically proven, physics or not, CPU or industrial factory. Car or stellar collisions... it's a fact. :/

That's not quite how it works, multitasking doesn't depend on having a CPU with multiple cores (or with HT for that matter). Multitasking has existed since the UNIX days, long before the idea of multiple cpus came to be. You can do multitasking on a single core. Therefore, the overhead is there regardless. Now, complex scheduling can cause overheads in some scenarios in exchange for benefits in others - but that doesn't really apply to a case so plain as running a game with two threads. All it takes is to make sure the game avoids the HT cores, which would happen automatically if the core numbers weren't hardcoded in (bethesda btw).

 

The quote refers to programs that spawn enough threads to occupy the fake cores but then have to wait for each other to continue execution - that's our case only if you let skyrim choose what cores to use (note that the quote mentions application design, it's not a problem inherent to HT).

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

32 minutes ago, Sauron said:

That shouldn't happen if the software properly supports HT - though apparently it turns out skyrim doesn't.

Based on earlier comment on Sykrim, that would seem like worst case.

 

In general, I still find the Windows scheduler doing stupid non-optimal things. This is more when multiple unrelated threads are running, and don't get some coordination from thread-aware code. At least on Win7 when I did most of my testing, running compute tasks one per core with HT on resulted in ~10% less performance that with HT off. I nicknamed it core smear as it looked like work was going for a walk around all the CPU threads, some sometimes they may overlap with others. I think it still happens on Win10 but didn't explicitly test it. My workaround was to manually set affinity to prevent it. I didn't observe the same on Linux so it could be done more smartly.

Gaming system: R7 7800X3D, Asus ROG Strix B650E-F Gaming Wifi, Thermalright Phantom Spirit 120 SE ARGB, Corsair Vengeance 2x 32GB 6000C30, RTX 4070, MSI MPG A850G, Fractal Design North, Samsung 990 Pro 2TB, Acer Predator XB241YU 24" 1440p 144Hz G-Sync + HP LP2475w 24" 1200p 60Hz wide gamut
Productivity system: i9-7980XE, Asus X299 TUF mark 2, Noctua D15, 64GB ram (mixed), RTX 3070, NZXT E850, GameMax Abyss, Samsung 980 Pro 2TB, random 1080p + 720p displays.
Gaming laptop: Lenovo Legion 5, 5800H, RTX 3070, Kingston DDR4 3200C22 2x16GB 2Rx8, Kingston Fury Renegade 1TB + Crucial P1 1TB SSD, 165 Hz IPS 1080p G-Sync Compatible

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, porina said:

Based on earlier comment on Sykrim, that would seem like worst case.

 

In general, I still find the Windows scheduler doing stupid non-optimal things. This is more when multiple unrelated threads are running, and don't get some coordination from thread-aware code. At least on Win7 when I did most of my testing, running compute tasks one per core with HT on resulted in ~10% less performance that with HT off. I nicknamed it core smear as it looked like work was going for a walk around all the CPU threads, some sometimes they may overlap with others. I think it still happens on Win10 but didn't explicitly test it. My workaround was to manually set affinity to prevent it. I didn't observe the same on Linux so it could be done more smartly.

Yeah, as I said, scheduling problems. For skyrim you can just hard set the affinity and the problem is gone regardless of whether HT is on or off.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×