Jump to content

Are there any plans to allow DCS to use multiple cores?


MobiSev

Recommended Posts

As we can have a quick and easy way to multithread using the dedicated server, I have hopes ED can implement this concept into the single player game without busting the bank. First cloud sync needs to hit multi player, though.

Windows 10 64bit, Intel i9-9900@5Ghz, 32 Gig RAM, MSI RTX 3080 TI, 2 TB SSD, 43" 2160p@1440p monitor.

Link to comment
Share on other sites

Sure it won't triple it, it may be another +50% tho, it may be +30% on average and holding those numbers more stable without drops, and that's a big deal.

 

I'm still planning to do the 2.5.4 vs 2.5.5 threads comparison, but it may take more time to do right, and present it. Yeah, I might not need to rush with showing how the state is on 2.5.4, rather wait until both are tested and then show all the results.


Edited by Worrazen

Modules: A-10C I/II, F/A-18C, Mig-21Bis, M-2000C, AJS-37, Spitfire LF Mk. IX, P-47, FC3, SC, CA, WW2AP, CE2. Terrains: NTTR, Normandy, Persian Gulf, Syria

 

Link to comment
Share on other sites

Vulkan is the asnwer

 

 

 

s008j9ibbfpx.jpg

 

 

 

Or just use multiple processing cores, so the others don't sit idle, leaving the one thread to do all the work . Oh you know just like many other developers from various other games have already been taking advantage of multi core processor potential for many years.

 

Build:

 

Windows 10 64 bit Pro

Case/Tower: Corsair Graphite 760tm ,Asus Strix Z790 Motherboard, Intel Core i7 12700k ,Corsair Vengeance LPX DDR4 64gb ram (3600 mhz) , (Asus strix oc edition) Nvidia RTX 3080 12gb , Evga g2 850 watt psu, Hardrives ; Samsung 970 EVo, , Samsung evo 860 pro 1 TB SSD, Samsung evo 850 pro 1TB SSD,  WD 1TB HDD

 

Link to comment
Share on other sites

Best pic ever Kev

New hotness: I7 9700k 4.8ghz, 32gb ddr4, 2080ti, :joystick: TM Warthog. TrackIR, HP Reverb (formermly CV1)

Old-N-busted: i7 4720HQ ~3.5GHZ, +32GB DDR3 + Nvidia GTX980m (4GB VRAM) :joystick: TM Warthog. TrackIR, Rift CV1 (yes really).

Link to comment
Share on other sites

Yeah... it is a great photo. But I still want to know where the F*K is CPU 11?

 

12-15 are back in the hut making tea.

System: 9700, 64GB DDR4, 2070S, NVME2, Rift S, Jetseat, Thrustmaster F18 grip, VPC T50 stick base and throttle, CH Throttle, MFG crosswinds, custom button box, Logitech G502 and Marble mouse.

Server: i5 2500@3.9Ghz, 1080, 24GB DDR3, SSD.

Link to comment
Share on other sites

12-15 are back in the hut making tea.

 

Are they hyperthreading?

New hotness: I7 9700k 4.8ghz, 32gb ddr4, 2080ti, :joystick: TM Warthog. TrackIR, HP Reverb (formermly CV1)

Old-N-busted: i7 4720HQ ~3.5GHZ, +32GB DDR3 + Nvidia GTX980m (4GB VRAM) :joystick: TM Warthog. TrackIR, Rift CV1 (yes really).

Link to comment
Share on other sites

Are they hyperthreading?

 

That’s cores 16-31, who are offsite, conducting project management, vendor management, account management, HR and a really important health and safety ISO validation to allow the guy to get in the hole.

System: 9700, 64GB DDR4, 2070S, NVME2, Rift S, Jetseat, Thrustmaster F18 grip, VPC T50 stick base and throttle, CH Throttle, MFG crosswinds, custom button box, Logitech G502 and Marble mouse.

Server: i5 2500@3.9Ghz, 1080, 24GB DDR3, SSD.

Link to comment
Share on other sites

Well... 8 core is now mainstream nowadays anyway for new CPUs. My little 6 core was never cutting edge, but now it is looking rather blunt in contrast to 5 GHz all 8 core Intel CPU and 3800X and potential 3950X AMD CPUs.

 

It makes sense for software developers to invest programming resources into this. Even if some of their user base will be using older 4 core legacy computer systems.

 

Very few games use 4 cores as its not an easy thing to change or put into software. Multi Cores help with multi tasking however when it comes to gaming speed is king not cores. I do agree it would be nice but it would mean a huge project in the scale of going form DCS 1.5 to DCS 2.5

Link to comment
Share on other sites

Or just use multiple processing cores, so the others don't sit idle, leaving the one thread to do all the work . Oh you know just like many other developers from various other games have already been taking advantage of multi core processor potential for many years.

 

 

and Vulkan or something similar will greatly increase scalability on multiple cores:smilewink:

Link to comment
Share on other sites

I discovered DCS on my rig was only using 1 core and VR multiplayer was almost unplayable. I set it to 2 cores as suggested, but had sound issues. Set it to use all cores, and my VR issues disappeared. Can now fly VR multiplayer with no stutters. Performance is brilliant.

 

Had a mate try the same, but he found on his PC, setting it to 2 cores worked for him.

 

Other mates already had DCS using all cores by default.

 

It seems to default to a number of cores based on the PC build and the Intel Turbo boost can interfere with the number of cores being utilised as well.

i9 12900KS, ASUS ROG Maximus Z790 APEX, 64 GB DDR5 4700 mhz, ASUS RTX4090, Water cooled, C - NVME SSD, 😧 DCS on SSD, TM HOTAS Warthog Stick & Throttle, Crosswind rudder Pedals, 2 x Thrustmaster MFDs on LCD Screens, Varjo Aero VR, Logitech game controller

Link to comment
Share on other sites

I discovered DCS on my rig was only using 1 core and VR multiplayer was almost unplayable. I set it to 2 cores as suggested, but had sound issues. Set it to use all cores, and my VR issues disappeared. Can now fly VR multiplayer with no stutters. Performance is brilliant.

 

Had a mate try the same, but he found on his PC, setting it to 2 cores worked for him.

 

Other mates already had DCS using all cores by default.

 

It seems to default to a number of cores based on the PC build and the Intel Turbo boost can interfere with the number of cores being utilised as well.

how did you set DCS to use all the cores?

Link to comment
Share on other sites

how did you set DCS to use all the cores?

 

The following YouTube clip provides an example of how to change settings to use more cores - whereas I found I could set my rig to use ALL to work best.

 

i9 12900KS, ASUS ROG Maximus Z790 APEX, 64 GB DDR5 4700 mhz, ASUS RTX4090, Water cooled, C - NVME SSD, 😧 DCS on SSD, TM HOTAS Warthog Stick & Throttle, Crosswind rudder Pedals, 2 x Thrustmaster MFDs on LCD Screens, Varjo Aero VR, Logitech game controller

Link to comment
Share on other sites

Vulkan is always the answer.

 

Vulkan forever.

vulkan wont do much at all. vulkan doesnt magically transform a single-threaded simulation into multi-threaded simulation.

 

 

it only lowers rendering API overhead and allows to send commands to GPU in a multi-threaded manner. however rendering is only a tiny portion of what the game does in the main thread, so increase in performance will be marginal.

 

 

what needs to be separated into other threads is physics and AI.

CPU: AMD Ryzen 5 1600X

GPU: AMD RX 580

Link to comment
Share on other sites

they already use 3 or 4, but there is nothing preventing them from using more.

 

the trick is finding tasks that can be offloaded without adding latency and locking.

 

it’s not easy and most sims don’t do it, either.

 

Only two cores.

1-core for audio

1-core for everything else

 

i don't think that's correct. and you can't really think of "cores" when it comes to an executing process. it's more about the "threads".

 

in modern operating systems, an application creates and uses a thread for it's execution. some apps create one, some create 200+.. but in either case, the "thread" is the unit of execution. the "core" is just a compute resource where the thread executes or "runs".

 

if you launch DCS and let it go for a while and look at the threads (units of work, which get assigned to 'run' on a core), you will see that there is around 50 different threads for the DCS process.

 

if you examine the total execution time for each thread, you will see that while most are idle, some do real work. in my multiplayer caracas test case:

34 threads didn't do much at all (almost no execution time)

13 threads "ran" for more than 1% of the total DCS process execution time

3 threads consumed more than 73% of the process execution time (38%, 23% 12% each)

 

given the data, we can see that DCS used 13 threads (out of 50) to do the work of the sim, and 3 of those threads were doing the bulk of the work.

 

it doesn't make sense that one core does "audio", and one does "everything else".

there is a lot more going on than that.

 

in any case, those threads will be assigned to a physical "core" when they are "ready" to run. if you only have a single core machine, all those threads will be assigned to that single core and be forced to run serially, one after the other. but if you let windows do it's job, it will assign as many "ready" threads to run as it can, onto any of the available free cores.

 

so, those 3 main threads do a lot of work. and the 10 other active threads do work too (but less). and that means there are 13 threads that will be scheduled onto cpu cores every time they are "ready" to run.

 

so rather than saying DCS "only uses 2 cores, 1 for audio and 1 for everything else", i would say DCS uses 3 'main' threads heavily and 10 quite a bit less often. and for sure you don't want 13 threads running on a 2-core Core-Duo chip.

 

DCS is not just a 2 core sim, it's definitely more.


Edited by etherbattx
Link to comment
Share on other sites

Also - & I'm a bit sketch about this - there's only one floating point calculator per physical core, so if you see 4 logical cores, you've only got 2 floating point calculators.

If you split some type of jobs up over too many threads, they just end up waiting for that resource.

 

case in point - I run a simulation at work on machines that have 44 (2 x 22) physical cores, and show as having 88 logical cores (& 256GB RAM).

 

We can specify how many cores to use, and which processor core to allocate them to.

Performance improves linearly as you spread the jobs over cores (44 cores takes 1/2 the time that 22 does), but caps out at 44. assigning 88 'cores' is no faster than assigning 44 because the threads just end up waiting for the numeric processor.

 

It may be that on home PCs with until recently 2 or 3 physical cores, there wasn't much point in trying to multi-thread beyond splitting out the sound (& perhaps some AI logic)

Cheers.

Link to comment
Share on other sites

i don't think that's correct. and you can't really think of "cores" when it comes to an executing process. it's more about the "threads".

 

in modern operating systems, an application creates and uses a thread for it's execution. some apps create one, some create 200+.. but in either case, the "thread" is the unit of execution. the "core" is just a compute resource where the thread executes or "runs".

 

if you launch DCS and let it go for a while and look at the threads (units of work, which get assigned to 'run' on a core), you will see that there is around 50 different threads for the DCS process.

 

if you examine the total execution time for each thread, you will see that while most are idle, some do real work. in my multiplayer caracas test case:

34 threads didn't do much at all (almost no execution time)

13 threads "ran" for more than 1% of the total DCS process execution time

3 threads consumed more than 73% of the process execution time (38%, 23% 12% each)

 

given the data, we can see that DCS used 13 threads (out of 50) to do the work of the sim, and 3 of those threads were doing the bulk of the work.

 

it doesn't make sense that one core does "audio", and one does "everything else".

there is a lot more going on than that.

 

in any case, those threads will be assigned to a physical "core" when they are "ready" to run. if you only have a single core machine, all those threads will be assigned to that single core and be forced to run serially, one after the other. but if you let windows do it's job, it will assign as many "ready" threads to run as it can, onto any of the available free cores.

 

so, those 3 main threads do a lot of work. and the 10 other active threads do work too (but less). and that means there are 13 threads that will be scheduled onto cpu cores every time they are "ready" to run.

 

so rather than saying DCS "only uses 2 cores, 1 for audio and 1 for everything else", i would say DCS uses 3 'main' threads heavily and 10 quite a bit less often. and for sure you don't want 13 threads running on a 2-core Core-Duo chip.

 

DCS is not just a 2 core sim, it's definitely more.

 

We only say that for the sake of communicational convenience, you're absolutely correct. There's a ton of more detail in that past forum thread. The other threads just weren't contributing as much so we didn't talk about them.

 

They are referring to my tests from I think more than a year ago now, if I remember correctly that test may have had one potentially fatal flaw in that it wasn't stressing out DCS but instead it was very barebone, however I did a lot of stuff at the time so I don't remember if that's true or not for the WPA tests, I did a video where it was barebone, no action, no flight, no airplanes, no terrain movement, raw rendering and audio, I fiddled with affinity and very clearly saw how enabling the second core had an big effect, while enabling the third core not so much, only 2-3 FPS. At least it proved that audio does take a good chunk and it's working right, so technically it is multi-threaded already in that sense if you use the english meaning of multi ... if it matters at all for me naturally that wouldn't be multi, because the concept of duality is strict with no exceptions in my language.

 

I did a brief test now but I'm still preparing, majority part of the time it takes is learning how to use WPA and creating a proper custom mission inside DCS, then it'll take some more time to do the screenshots all over again with in depth explanation so a totally non-tech person can understand it, and I saw 2 more threads doing ~15% if I'm not mistaken each but this is all grain of salt as I was just browsing through the graphs, ofcourse you can as well do it yourselfs if I'm not fast enough, it's a moment when I'm also busy with other stuff, otherwise I would have done it already last week.


Edited by Worrazen
wording

Modules: A-10C I/II, F/A-18C, Mig-21Bis, M-2000C, AJS-37, Spitfire LF Mk. IX, P-47, FC3, SC, CA, WW2AP, CE2. Terrains: NTTR, Normandy, Persian Gulf, Syria

 

Link to comment
Share on other sites

i’ve tested in single player and multiplayer

with monitor and with VR,

 

and DCS always uses multiple threads and more than 2 cores.

 

4 cores seems to be the sweet spot, but the details don’t really matter, since all modern cpu’s have at least 4 cores.

Link to comment
Share on other sites

they already use 3 or 4, but there is nothing preventing them from using more.

 

the trick is finding tasks that can be offloaded without adding latency and locking.

 

it’s not easy and most sims don’t do it, either.

Actually there are quite a few sims that can do it.

And the separation is usually graphics/main, physics, AI and maybe audio (so that'd be 4 threads, but possibly more if you split AI and physics onto multiple cores each).

 

 

On the commercial versions of the sims they often offload the physics calculation to a second computer even.

 

 

No idea though how it's done on DCS.

Link to comment
Share on other sites

Anyone else out there to confirm this?

 

 

I'm using stable DCS. Just curious.

 

After the latest update DCS.exe now defaults (on my PC at least) to use all cores! Thank you ED!

i9 12900KS, ASUS ROG Maximus Z790 APEX, 64 GB DDR5 4700 mhz, ASUS RTX4090, Water cooled, C - NVME SSD, 😧 DCS on SSD, TM HOTAS Warthog Stick & Throttle, Crosswind rudder Pedals, 2 x Thrustmaster MFDs on LCD Screens, Varjo Aero VR, Logitech game controller

Link to comment
Share on other sites

Just a thought on this.

If you take a scan at the resource usage when running a dedicated server, it's generally very low, i.e. rarely more than 50% of a single CPU core (now the fix is in) and around 4GB of ram.

That suggests to me that the majority of the processing for DCS is NOT being taken up by core logic, but by supporting the graphics.

So if Vulkan will help spread the load across multiple CPU cores for the graphics side of things, then maybe we don't need to worry about parallel processing of game logic.

System: 9700, 64GB DDR4, 2070S, NVME2, Rift S, Jetseat, Thrustmaster F18 grip, VPC T50 stick base and throttle, CH Throttle, MFG crosswinds, custom button box, Logitech G502 and Marble mouse.

Server: i5 2500@3.9Ghz, 1080, 24GB DDR3, SSD.

Link to comment
Share on other sites

Vulkan is actually pretty bad for smaller game studios. Sure, it's amazing for studios that focus on game engines. It offers little gain over dx12 but requires tons of expertise.


Edited by VitS
Link to comment
Share on other sites

  • Recently Browsing   0 members

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