Jump to content

Recommended Posts

Posted

Unless you absolutely KNOW that changing them will not be detrimental, leave them alone.

 

Processes that are unnecessary may be killed, but you have to know which ones are unnecessary, and generally it will make no difference at all.

 

Processes which are not using resources DCS needs, will not affect DCS running.

 

Generally, processes that just sit and wait to be called upon, have had their memory paged out to the page file, and the actual RAM usage freed up for other processes. So killing such a process will do nothing for you.

When you hit the wrong button on take-off

hwl7xqL.gif

System Specs.

Spoiler
System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB
CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27"
CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1
 
Posted (edited)

Test: Setting CPU Affinity

 

What does everyone use for settings on the rest of the windows o/s processes that are running? Are they left at default?

 

i don’t do anything fancy, just leave everything at defaults.

 

you have more cores than dcs has threads, so there really is no chance for core contention in the first place.

Edited by etherbattx
Posted
Unless you absolutely KNOW that changing them will not be detrimental, leave them alone.

 

Processes that are unnecessary may be killed, but you have to know which ones are unnecessary, and generally it will make no difference at all.

 

Processes which are not using resources DCS needs, will not affect DCS running.

 

Generally, processes that just sit and wait to be called upon, have had their memory paged out to the page file, and the actual RAM usage freed up for other processes. So killing such a process will do nothing for you.

 

keep it simple, sleek & robust :thumbup:

Gigabyte Aorus X570S Master - Ryzen 5900X - Gskill 64GB 3200/CL14@3600/CL14 - Sapphire  Nitro+ 7800XT - 4x Samsung 980Pro 1TB - 1x Samsung 870 Evo 1TB - 1x SanDisc 120GB SSD - Heatkiller IV - MoRa3-360LT@9x120mm Noctua F12 - Corsair AXi-1200 - TiR5-Pro - Warthog Hotas - Saitek Combat Pedals - Asus XG27ACG QHD 180Hz - Corsair K70 RGB Pro - Win11 Pro/Linux - Phanteks Evolv-X 

Posted

i found that changing the affinity for dcs isnt as good as advertised, so whats the whole point of it anyways? i get stuttering when i take it off the hyperthreads and stick to the actual cores.

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE | Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VPForce Rhino/VKB MCE Ultimate + STECS Mk2  MAX / Virpil MongoosT50+ MongoosT50CM | Virpil TCS+/ AH64D grip/custom AH64D TEDAC | Samsung Odyssey G9 + Odyssey Ark | Next Level Racing Flight Seat Pro | WinWing F-18 MIPS | No more VR for this pilot.
 My wallpaper and skins

On today's episode of "Did You Know", Cessna Skyhawk crashes into cemetery; over 800 found dead as workers keep digging.

Posted
ii get stuttering when i take it off the hyperthreads and stick to the actual cores.

 

it could be placebo.

hypethreads can’t do any processing on their own.

 

they only work when scheduled and executing on one of the physical cores, same as any thread.

 

if you have four cores, you can ONLY do FOUR things concurrently. no matter what type of threads you have. or what type of fancy affinity rules you put in place.

Posted

Its not a placebo. I tested this on the fly with process lasso in mission and had mixed results instantaneously. I had sound stuttering with the HT threads deselected and no sound stuttering with the HT threads activated. It was very pronounced too, and tried it in various scenarios - mostly light loads like in the AO server where you wouldnt expect to see much of a difference regardless.

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE | Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VPForce Rhino/VKB MCE Ultimate + STECS Mk2  MAX / Virpil MongoosT50+ MongoosT50CM | Virpil TCS+/ AH64D grip/custom AH64D TEDAC | Samsung Odyssey G9 + Odyssey Ark | Next Level Racing Flight Seat Pro | WinWing F-18 MIPS | No more VR for this pilot.
 My wallpaper and skins

On today's episode of "Did You Know", Cessna Skyhawk crashes into cemetery; over 800 found dead as workers keep digging.

Posted

It really cant be caused by disabling hyperthreading, unless something in the background is keeping 4 or 5 other cores fully occupied, but it could be some secondary effect, where disabling HT somehow affects your overclock or turbo boost speed or something else.

Posted

DCS was the only program I had running on only 6 cores, everything else was defaulted. It may be an o/c problem, but DCS was the only game I had where I tried running on actual cores and resulted in stuttering of any kind. It "may" have something to do with the way memory pools between HT and non-HT. Not sure if its something I want to research any further because its not going to do any bit of good for me anyways.

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE | Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VPForce Rhino/VKB MCE Ultimate + STECS Mk2  MAX / Virpil MongoosT50+ MongoosT50CM | Virpil TCS+/ AH64D grip/custom AH64D TEDAC | Samsung Odyssey G9 + Odyssey Ark | Next Level Racing Flight Seat Pro | WinWing F-18 MIPS | No more VR for this pilot.
 My wallpaper and skins

On today's episode of "Did You Know", Cessna Skyhawk crashes into cemetery; over 800 found dead as workers keep digging.

Posted

Test: Setting CPU Affinity

 

HTs are just normal threads. same as any execution thread.

 

and no thread can execute anything on its own (it’s just a logical construct) unless it’s assigned to one of the physical cores. only cores can process instructions as they are the only thing with a processing unit.

 

so there should be no memory pools between HT and non-TH or any other difference between the threads.

 

i’m not discounting your performance improvement, but it has something to do with other programs you are running in the background. it can’t be HT’s

Posted (edited)

Did you disable hyperthreading (in the bios) or did you set an affinity mask? Those are two very different things. Disabling hyperthreading really shouldnt cause any performance degradation on DCS. However, if you set an affinity mask to pin DCS to certain cores, its very easy to mess up and select HT cores that share the same physical core, basically giving you single core performance. My guess is that is what happened.

 

BTW, the original post is from 2013 and for an old AMD processor that used a very different form of hyperthreading. It is long obsolete. Unlike XP, or even 7, Windows 10 does a decent job managing hyperthreading cores. But if you wanted to experiment anyway, you dont need to mess with LUA, you can set core affinity directly in task manager with a few clicks.

Edited by Vertigo72
Posted (edited)
HTs are just normal threads. same as any execution thread.

 

and no thread can execute anything on its own (it’s just a logical construct) unless it’s assigned to one of the physical cores. only cores can process instructions as they are the only thing with a processing unit.

 

so there should be no memory pools between HT and non-TH or any other difference between the threads.

 

i’m not discounting your performance improvement, but it has something to do with other programs you are running in the background. it can’t be HT’s

 

I think you may be confused yourself. Hyperthreading is a hardware feature, that allows a single physical CPU core to work on 2 software threads. It doesnt really execute both threads in parallel, but it can switch instantly between threads without flushing the pipeline whenever one thread is stalled. This is usually beneficial and increases throughput when there are many software threads to work on. But if you have more physical CPU cores than software threads, its rather pointless. And it can hurt performance if the OS is scheduling those few threads on the same physical core as earlier windows versions did, because they didnt distinguish between logical and physical cores.

 

Current windows versions are fully aware of the difference between logical and physical cores and will already do what the OP in this thread wanted to force: schedule different CPU heavy threads on different physical cores.

 

This forum thread (no pun intended) should be locked and forgotten. Its no longer relevant.

Edited by Vertigo72
Posted
HTs are just normal threads. same as any execution thread.

 

and no thread can execute anything on its own (it’s just a logical construct) unless it’s assigned to one of the physical cores. only cores can process instructions as they are the only thing with a processing unit.

 

so there should be no memory pools between HT and non-TH or any other difference between the threads.

 

i’m not discounting your performance improvement, but it has something to do with other programs you are running in the background. it can’t be HT’s

For me, it is what it is. Figuring it out is counter productive for me as its fine the way it is anyways. I just got process lasso to see if it was going to offer me any kind of benefits, and a high end system like mine wont see much of an improvement. Im glad I made the testing though, seems to work fine for other apps.

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE | Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VPForce Rhino/VKB MCE Ultimate + STECS Mk2  MAX / Virpil MongoosT50+ MongoosT50CM | Virpil TCS+/ AH64D grip/custom AH64D TEDAC | Samsung Odyssey G9 + Odyssey Ark | Next Level Racing Flight Seat Pro | WinWing F-18 MIPS | No more VR for this pilot.
 My wallpaper and skins

On today's episode of "Did You Know", Cessna Skyhawk crashes into cemetery; over 800 found dead as workers keep digging.

Posted

Vertigo72, are you suggesting that the use of Process Lasso is pretty much unnecessary for DCS? I ask because quite sometime ago I installed it to deal with stutterng, and it seemed to smooth it out, then later in time I was experiencing stuttering audio. At a time, Process Lasso enabled resolved the audio issue when enabled, when I disabled it, the issue was present, so I stuck with it. I spent alot of time configuring profiles simply to dedicate 2 of the 4 cores for DCS, and at the time, it seemed to be effective. The audio stuttering has been back for some time and I have been just dealing with it. I have no idea how all this stuff works so I am just letting it go. if I dont need Procees Lasso for DCS, I just assume disable it.

Windows 10 Pro - 64 Bit / ASUS ROG Strix B650E-F Gaming / AMD 7800X3D / G.Skill Trident Z5 NEO 64GB DDR5 6000 Ram / SSD M.2 SK hynix Platinum P41 2TB / MSI Gaming GeForce RTX 4090 SUPRIM Liquid X 24G / SteelSeries Arctis 7 Headset /LG-Ultragear 38" IPS LED Ultrawide HD Monitor (3840 x 1600) / Track IR4 / Thrustmaster TPR Pendular Rudder Pedals / Virpil HOTAS VPC Constellation ALPHA-R & VPC MongoosT-50CM3 Throttle

 

Posted
Vertigo72, are you suggesting that the use of Process Lasso is pretty much unnecessary for DCS?

 

It is completely unnecessary for process scheduling / core affinity when you use windows 10 and any regular desktop CPU thats properly supported (edge cases might include NUMA processors like threadripper).

 

There may be situations where the "gaming mode" helps, by disabling clock scaling. Particularly on laptops. But this would only make a difference if you have a buggy bios or a bios that doesnt support your CPU, and the better solution there is upgrading your bios.

 

If thats not an option, you could achieve the same by disabling speedstep in the bios (for intel) or cool and quiet I think (AMD), but you shouldnt have to.

Posted
i found that changing the affinity for dcs isnt as good as advertised, so whats the whole point of it anyways? i get stuttering when i take it off the hyperthreads and stick to the actual cores.

 

It allows you to measure core/thread usage for DCS, which is otherwise impossible, because the task can be jumping about from core to core.

When you hit the wrong button on take-off

hwl7xqL.gif

System Specs.

Spoiler
System board: MSI X670E ACE Memory: 64GB DDR5-6000 G.Skill Ripjaw System disk: Crucial P5 M.2 2TB
CPU: AMD Ryzen 7 7800X3D PSU: Corsair HX1200 PSU Monitor: ASUS MG279Q, 27"
CPU cooling: Noctua NH-D15S Graphics card: MSI RTX 3090Ti SuprimX VR: Oculus Rift CV1
 
Posted
It allows you to measure core/thread usage for DCS, which is otherwise impossible, because the task can be jumping about from core to core.

 

sure, but what do you do with this information?

 

decide to get a faster cpu?

 

the answer is always yes! :)

Posted (edited)
sure, but what do you do with this information?

 

decide to get a faster cpu?

 

the answer is always yes! :)

Whats faster than an 8086k overclocked 5.4ghz?

 

 

Anyways, I see 74 some odd threads reported from DCS by process lasso. Leaving HT on to me serves a purpose; forcing it to certain cores probably means you lose some throughput and some overhead to keep all those threads running. We're not gaming on old AMD FX-57 chips with ATI 9600 pro video cards anymore. This probably would be better for those era computer systems IMO. Not saying I dont get any use out of process lasso, just saying that its kind of....redundant.

Edited by Hammer1-1

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE | Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VPForce Rhino/VKB MCE Ultimate + STECS Mk2  MAX / Virpil MongoosT50+ MongoosT50CM | Virpil TCS+/ AH64D grip/custom AH64D TEDAC | Samsung Odyssey G9 + Odyssey Ark | Next Level Racing Flight Seat Pro | WinWing F-18 MIPS | No more VR for this pilot.
 My wallpaper and skins

On today's episode of "Did You Know", Cessna Skyhawk crashes into cemetery; over 800 found dead as workers keep digging.

Posted

Anyways, I see 74 some odd threads reported from DCS by process lasso.

 

DCS only uses a single main thread that uses ~60-70% of the cpu time that DCS uses. It spawns a few other threads, including one for the GPU driver, a C runtime library and one for sound. Those combined account for ~30-40% at most, the bulk of it the GPU driver. The rest is essentially zero, literally a few microseconds of CPU time after a few hours of playing.

 

So basically DCS can only benefit from 2 hardware threads. One that is performance critical and runs the main DCS.exe thread, and one that will be idle much of the time doing the rest. If you want to be generous, add a third hardware thread for windows background tasks and kernel housekeeping, although that can likely run on the second core with no serious performance penalty and you pretty much reached the limit of DCS parallelism.

 

So you dont need hyperthreading for DCS, you dont need 6 cores/12 threads. A 4 core / 4 thread cpu is going to be exactly as fast (everything else being equal) and I even doubt it would be significantly faster than an otherwise identical dual core, if you could still buy one.

 

Dont believe me? Try it.

Start|Run|msconfig|Boot|Advanced options|Number of processors

Set it to 4 or even 3, and see if you notice a difference. Pretty sure you wont. Set it to 2, and there maybe a small difference.

 

All that said, as I said earlier, there is absolutely no reason to assume it makes performance worse if the OS is aware of hyperthreading so Im not advocating disabling it. I just wouldnt want people to go out and buy a threadripper or Skylake-X because "DCS uses 70 threads"

Posted
DCS only uses a single main thread that uses ~60-70% of the cpu time that DCS uses. It spawns a few other threads, including one for the GPU driver, a C runtime library and one for sound. Those combined account for ~30-40% at most, the bulk of it the GPU driver. The rest is essentially zero, literally a few microseconds of CPU time after a few hours of playing.

 

So basically DCS can only benefit from 2 hardware threads. One that is performance critical and runs the main DCS.exe thread, and one that will be idle much of the time doing the rest. If you want to be generous, add a third hardware thread for windows background tasks and kernel housekeeping, although that can likely run on the second core with no serious performance penalty and you pretty much reached the limit of DCS parallelism.

 

 

This was kinda what I was getting at. DCS isnt a multi threaded application and should theoretically work well on a single core chip...or a dual core chip with everything else mounted to one core and DCS mounted on its own. Thats what process lasso would be great at. But since all these new cores and threads that are open up lessen the workload all around, you still have plenty of head space to negotiate with and you shouldnt really see any problems regardless. It should only prove beneficial only when you have a lot of tasks taking up a lot of memory/cpu cycles hogging up all the resources. Thats not necessarily the case anymore.

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE | Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VPForce Rhino/VKB MCE Ultimate + STECS Mk2  MAX / Virpil MongoosT50+ MongoosT50CM | Virpil TCS+/ AH64D grip/custom AH64D TEDAC | Samsung Odyssey G9 + Odyssey Ark | Next Level Racing Flight Seat Pro | WinWing F-18 MIPS | No more VR for this pilot.
 My wallpaper and skins

On today's episode of "Did You Know", Cessna Skyhawk crashes into cemetery; over 800 found dead as workers keep digging.

Posted

 

Dont believe me? Try it.

Start|Run|msconfig|Boot|Advanced options|Number of processors

Set it to 4 or even 3, and see if you notice a difference. Pretty sure you wont. Set it to 2, and there maybe a small difference.

 

All that said, as I said earlier, there is absolutely no reason to assume it makes performance worse if the OS is aware of hyperthreading so Im not advocating disabling it. I just wouldnt want people to go out and buy a threadripper or Skylake-X because "DCS uses 70 threads"

 

I have tried it using process lasso to turn off cores. Stuttering mess (Large Difference) if you drop to two cores.

i7-7700K OC @ 5Ghz | ASUS IX Hero MB | ASUS GTX 1080 Ti STRIX | 32GB Corsair 3000Mhz | Corsair H100i V2 Radiator | Samsung 960 EVO M.2 NVMe 500G SSD | Samsung 850 EVO 500G SSD | Corsair HX850i Platinum 850W | Oculus Rift | ASUS PG278Q 27-inch, 2560 x 1440, G-SYNC, 144Hz, 1ms | VKB Gunfighter Pro

Chuck's DCS Tutorial Library

Download PDF Tutorial guides to help get up to speed with aircraft quickly and also great for taking a good look at the aircraft available for DCS before purchasing. Link

Posted
Thats what process lasso would be great at.

 

Not really. Even on heavily threaded workloads like rendering there is really no point in overriding the kernel. Manually setting core affinity is such a blunt tool compared to the smarts a kernel scheduler and dispatcher can have.

 

The only case where that makes sense is if you know something the kernel does not; as used to be the case when windows didnt properly handle logical cores sharing execution units on a single physical core, or when the OS isnt aware of NUMA in some CPUs like threadripper.

 

Another scenario where it *might* make sense if your desired outcome differs from process priority. Say you are doing a 10 hour 3d rendering job and gaming at the same time. You probably care more about the game frames being rendered asap than the 3d render. But then really, the better solution there is not setting core affinity, but setting process priority.

Posted
I have tried it using process lasso to turn off cores. Stuttering mess (Large Difference) if you drop to two cores.

 

Two physical or logical cores?

Two logical cores isnt going to be enough, and its going to have dramatic effects if those share the same physical core, you would essentially be testing a single core cpu.

 

2 physical / 4 logical could be enough, although I wouldnt be surprised if there where some hickups. 3 physical / 3 logical (no hyperhtreading) is almost certainly enough to be indistinguishable from 6/12 or more.

Posted (edited)
Q: Would it make sense in terms of cooling and stability to just overclock one or two of my cores (i7-8700K) and assign those to DCS while leaving the other cores at stock or only moderately overclock them?

 

No. First of all, windows and your bios will already downclock cores that are not heavily used, so they shouldnt get hot at all regardless of what you set the clocks at. Unless they are actually used, and then, well, you want them to be fast. Besides, even at high clock speeds, an idle core uses very little power compared to one thats actually running a task.

 

More over, if you where to lock DCS to a specific core, that core will get hot which will decrease your boost speeds and may even require downclocking to keep temps and power within specs. If instead you let windows juggle the thread(s) across multiple cores then the heat is spread more evenly across the entire die, giving you a larger surface area and thus cooler temps.

 

TL;DR. Intel/AMD and MS engineers do know what they are doing, and they are doing things for a reason. In fact AMD have gotten so good at it with precision boost, , they basically even made overclocking pointless, the cpu does it by itself, it figures out which cores have the most headroom and prioritizes those for boost speeds. There is almost nothing to be gained. You add better cooling and the chip will run faster, nothing else needed. To some extend this also applies to my nvidia GPU. Not worth the effort, boost speeds actually work to pretty much maximize the available headroom. Sort of takes the fun away but also the tedious testing. Intel still sells chips with some OC headroom, but increasingly its also barely worth the effort.

Edited by Vertigo72
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...