Jump to content

Test: Setting CPU Affinity


Recommended Posts

You should message Skatezilla as he could explain it better. As I understand it, it does not prevent it from happening rather DCS's engine isn't programmed to utilize Hyperthreading/Multithreading to the extent possible on modern CPUs.

 

A lot of people on these boards and in general interchange the terms multithreading and multiprocessing or incorrectly use the term.

 

https://en.wikipedia.org/wiki/Multithreading_(computer_architecture)

 

DCS does use multiprocessing i.e. 2 cores but does not use the two logical processing threads within a single physical processor core, if that makes sense.

 

My CPU has 8 physical cores and 16 logical cores. DCS still only uses 2 physical cores at this time. Now Windows might be doing some other stuff under the hood and with background processes that does use multithreading but it's not DCS using those threads.

 

Hopefully with the new Vulkan graphics engine the true power of our CPU cores working together in parallel will finally be unleashed. I think we need to be patient for that though as I'm sure it a time and labor intensive process that's akin to reprogramming the game from scratch.

 

https://superuser.com/questions/740611/what-is-the-difference-between-multithreading-and-hyperthreading

 

Now I'm not a graphics programmer and have never coded a graphics engine, but that's the extent of my understanding on the subject. Perhaps Skatezilla can shed more light on it then I can.

 

 

Link to comment
Share on other sites

I can't answer that question you'll have to ask Skatezilla or one of the developers why DCS doesn't use multithreading or more than two cores.

 

Hopefully the new Vulkan API comes out sooner rather than later, but there's a popular GA sim that's also doing a Vulkan conversion and it's taking a long time.

 

On a related note, Gamer's Nexus just recently did a really cool benchmark on Read Dead Redemption 2 and they saw better performance with the Vulkan API versus DX12 so it looks like ED made the right decision pursuing Vulkan.

 

 

Link to comment
Share on other sites

It’s more that it doesn’t use more than 2 cores usually cores 0/1, and doesn’t really make use of hyper threading (or SMT) at all. It will use VT just fine, but it’s confined pretty much to those two cores

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

Test: Setting CPU Affinity

 

It’s more that it doesn’t use more than 2 cores usually cores 0/1, and doesn’t really make use of hyper threading (or SMT)

 

 

this is what confuses me.

how does the dcs process limit itself to core0 and core1 without an affinity mask? that’s literally the only way to do it.

Link to comment
Share on other sites

it always uses my 2nd last core if left alone, not the 1st or 2nd. So it's not always 0+1

Gigabyte Aorus X570S Master - Ryzen 5900X - Gskill 64GB 3200/CL14@3600/CL14 - Asus 1080ti EK-waterblock - 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 PG278Q 27" QHD Gsync 144Hz - Corsair K70 RGB Pro - Win11 Pro/Linux - Phanteks Evolv-X 

Link to comment
Share on other sites

It really doesn't... But it only uses one or two cores at a time, it will swap around...

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

I look at it from a different angle. I don't really focus ONLY on DCS. DCS is not the only task running when I run DCS. There are dozens and dozens of jobs running when I play, some are there because I want them to run, some I have no direct control over and most of them are OS tied and are always there. That much to that soup.

 

We do know that DX11 can use up-to-2 cores for graphic related work, so that would total in 4 cores for DCS + DX11. Now add the apps most of us run aside: Afterburner, SRS, TacView, TS3, TiR to name the game related ones, plus the ones we usually have running out of the nature of a PC, like Antivirus, Motherboard Apps, LED Control apps, Nvidia/Radeon Apps, Cloud Storage Apps Apple Google MS Dropbox, and then the real wild ones that are hard to control, like Microsoft Store Updates, Windows Update pre-downloads, Antivirus Pattern Updates, Backup Software etc etc.

 

DCS only uses 1+1, true, but look at the rest as well. It's not that DCS runs on the chip all by itself. That's why you see a high CPU usage from time to time when you play DCS, there are things going on you won't see unless the disturb your CPU and you get a stutter. Who would feel that if he was reading a website, not at all. Only when pressed and under heavy throughput you will feel little annoyances and disturbings here and there if the undercarriage isn't firm enough to handle the WHOLE thing, not just DCS all by itself. That POV is somehow invalid as it is never the case IRL.

Gigabyte Aorus X570S Master - Ryzen 5900X - Gskill 64GB 3200/CL14@3600/CL14 - Asus 1080ti EK-waterblock - 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 PG278Q 27" QHD Gsync 144Hz - Corsair K70 RGB Pro - Win11 Pro/Linux - Phanteks Evolv-X 

Link to comment
Share on other sites

It really doesn't... But it only uses one or two cores at a time, it will swap around...

 

if you look at the DCS process, it has more than 50 threads.

 

you are suggesting all those threads, all 50 of them, run serially and take turns one after the other using one or two of the cores ?

 

unless artificially restricted (i.e. process lasso, etc), wouldn't the windows task scheduler schedule them to run as needed, on any available cpu core?

 

why would the DSC developers, limit the execution contexts to only one or two cores?

Link to comment
Share on other sites

Yep,yes, and nope in that order

 

Ever wondered how your cpu is only max 50% used on a for four core box etc...

 

You pretty much have to write the code to make use of smt properly with dx11 and. Earlier, and it’s non trivial

 

http://laurabernhardt.weebly.com/blog/directx-11-multithreaded-rendering

 

And then take the heritage of the code into account, some of this is quite old, and goes back pre directx-8... etc


Edited by speed-of-heat

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

You pretty much have to write the code to make use of smt properly with dx11

if you profile DCS in multiplayer mode, there are 3 threads consuming over 73% of the process compute time (38%, 23% 12%).

 

if the developers wanted those execution contexts to run serially one after the other, why bother splitting the tasks and introducing locking and latency to coordinate the order of execution?

 

could they not have used 3 sub method calls in a single loop and achieve the same effect with more performance and no latency?

Link to comment
Share on other sites

No idea, but, I try not to second guess organic software and architecture decisions that get made over a decade in development... In hindsight it always, always, looks silly... Especially to outsiders who have no direct knowledge of the source or its heritage...

 

I'm not saying you are wrong, or your observation is invalid, but, it strikes me as the sort of answer you get is usually the equivalent of "I wouldn't start from here if you want to get there"...

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

This is my rig during dcs with oculus rift:

 

Test-pd-1-6.png

 

”CPU13” and ”CPU15” is doing all the DCS-calculations. In my case its first thread on core 7 and 8.

Most of the other cores(physical or logical), isnt doing that much work at all.

Except for windows processes, oculus software, Asus GPU overclocking, a corsair fan software, also task manager, system resources to get the CPU workload and a picture sofrwarw to make that picture was running. When doing normal gaming the other cores would be slightly less loaded.

 

It is very easy to see that when core 15 maxes out to 100%, then the FPS would go below 90, kicking in ASW.

 

It is that core(thread) only.


Edited by Gunnars Driver

[T.M HOTAS Warthog Stick & Throttle + T.Flight pedals, Varjo Aero, HP Reverb pro, Pimax 8KX] 🙂

[DCS Mirage 2K; Huey; Spitfire Mk IX, AJS 37, F-14, F-18, FC3, A-10 Warthog II and a few more ]

i9 13900KF@5.8/32Gb DDR5@6400/ Gigabyte Gaming OC RTX4090, ASUS STRIX Z790-F , 2Tb m2 NVMe

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

you people are just a bunch of tweakers.

Intel 13900k @ 5.8ghz | 64gb GSkill Trident Z | MSI z790 Meg ACE| Zotac RTX4090 | Asus 1000w psu | Slaw RX Viper 2 pedals | VKB Gunfighter Mk3 MCE Ultimate + STECS/ Virpil MongoosT50+ MongoosT50CM |Virpil TCS+ AH64D grip + custom AH64D TEDAC | HP Reverb G2 | Windows 11 Pro | |Samsung Odyssey G9 | Next Level Racing Flight Seat Pro


 My wallpaper and skins

Link to comment
Share on other sites

I'm using FX-8320 What should I write in the autoexec.cfg?

2.5.6

 

https://www.gfsg.co.uk/affinitymask.aspx?SubMenuItem=utilties all the physical ones

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

Looks like setting affinity_mask in autoexec no longer works with 2.5.6...

 

 

Is this a valid statement?

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

 

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

Not sure this was already mentioned in the thread (sorry for not reading all 30 pages of posts).

 

Anyways, seeing that setting CPU Affinity in the autoexec.cfg is no longer possibile, it should be said there are plenty alternatives, by using certain (freeware) Apps (also) for this task.

 

You can define specific (or all) cores/threads to individual EXE processes (as a fixed rule, automatically and permanently), without having to do it manually each time, using any of these two:

 

 

 

:thumbup:

CGTC Caucasus retexture mod  |  A-10A cockpit retexture mod  |  Shadows reduced impact mod  |  DCS 2.5.6  (the best version for performance, VR or 2D)

DCS terrain modules_July23_27pc_ns.pngDCS aircraft modules_July23_27pc_ns.png  aka Luke Marqs; call sign "Ducko" =

Spoiler

Win10 Pro x64 | Intel i7 12700K (@5.1/5.0p + 3.9e) | 64GB DDR4 @3466 CL16 (Crucial Ballistix) | RTX 3090 24GB EVGA FTW3 Ultra | 2TB NVMe (MP600 Pro XT) + 500GB SSD (WD Blue) + 3TB HDD (Toshiba P300) + 1TB HDD (WD Blue) | Corsair RMX 850W | Asus Z690 TUF+ D4 | TR PA120SE | Fractal Meshify C | UAD Volt1 + Sennheiser HD-599SE | 7x USB 3.0 Hub | 50'' 4K Philips 7608/12 UHD TV (+Head Tracking) | HP Reverb G1 Pro (VR) | TM Warthog + Logitech X56 

 

Link to comment
Share on other sites

  • 3 months later...

LucShep, are you still using "Bills Process Manager"? It doesnt look like it has been supported since 2014?

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

 

Link to comment
Share on other sites

Snapshot

Bill2.thumb.jpg.54a727f3ef98b27827e289a3ab7cf54c.jpg

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

 

Link to comment
Share on other sites

BPM is an old app and its support is long gone, indeed.

But, for me, it still works fine, and for at least 6 years now on different computers, older and newer, of mine and of friends.

Can put individual processes run through all cores or just some, with different priorities set, no problem.

 

Maybe just try to run Windows' Program Compatibility Troubleshooter on the BPM's executable, as explained in this link:

https://www.laptopmag.com/articles/s...ode-windows-10

 

If I do in it my Win10 PC and then "try these settings", it's set with Win8 compatibility, and runs fine.

(note: I have the "run as admin" setting unselected)

 

Other than that, and unless it's now impossible with DCS executable (can't see how or why would it be?) then I don't know what to say...cry.gif sorry


Edited by LucShep

CGTC Caucasus retexture mod  |  A-10A cockpit retexture mod  |  Shadows reduced impact mod  |  DCS 2.5.6  (the best version for performance, VR or 2D)

DCS terrain modules_July23_27pc_ns.pngDCS aircraft modules_July23_27pc_ns.png  aka Luke Marqs; call sign "Ducko" =

Spoiler

Win10 Pro x64 | Intel i7 12700K (@5.1/5.0p + 3.9e) | 64GB DDR4 @3466 CL16 (Crucial Ballistix) | RTX 3090 24GB EVGA FTW3 Ultra | 2TB NVMe (MP600 Pro XT) + 500GB SSD (WD Blue) + 3TB HDD (Toshiba P300) + 1TB HDD (WD Blue) | Corsair RMX 850W | Asus Z690 TUF+ D4 | TR PA120SE | Fractal Meshify C | UAD Volt1 + Sennheiser HD-599SE | 7x USB 3.0 Hub | 50'' 4K Philips 7608/12 UHD TV (+Head Tracking) | HP Reverb G1 Pro (VR) | TM Warthog + Logitech X56 

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

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