Jump to content
technoxwalrus

AMD CPU Bottleneck?

Recommended Posts

With multicore/multithread support but with an "abnormal" CPU demand. Why? Because AI. Do you know what AI means? Artificial Intelligence. Want to see less CPU on ARMA 3? Point a valid solution that can manage all the Artificial Intelligence involved without using CPU.

 

Doens't matter since the game can barely utilize more than 2 cores.. 

It can use 3 quite well. In what I tested it actually went ok, gaining ~40-50% more performance by adding 50% more power (by going from 2 to 3 cores). After 3 cores (by using 4), the increase is relatively small and it falls to around 3 cores performance once it gets busy. Of course, it was just a test scenario, it can go in a different way, depending on the situation.

 

I suggest you to try the following.

You can use ALive, its a good way to see how cpu interacts with AI and the game in general.

Set up a server and choose whatever Island, create a simple mission using ALive module where you spawn 300 AI at mission start.

Follow your steps and you will see that with 1 core it will take about 3 minutes (or more) to spawn all AI and with 4 cores will take 30 seconds. Also check your fps (as client) while you are adding more cores, you will see a big difference.

That's why I cant see all this "one core theory".

And yes, you cant compare with those games, in fact (being fair) there is no game that you can compare with Arma, in matters of architecture and operation concept.

 

If you're making a server the AI gets offloaded to a core of its own. I think it was a "cheat" used by some to get extra performance, but it didn't get "by default" in the base, vanilla game.

Share this post


Link to post
Share on other sites

I believe you have a AMD GPU.

Did you try already Crimson drivers? Are the best for ARMA 3, shader caching saves CPU from some work. In my end game runs better with it.

Share this post


Link to post
Share on other sites

It can use 3 quite well. In what I tested it actually went ok, gaining ~40-50% more performance by adding 50% more power (by going from 2 to 3 cores). After 3 cores (by using 4), the increase is relatively small and it falls to around 3 cores performance once it gets busy. Of course, it was just a test scenario, it can go in a different way, depending on the situation.

 

If you're making a server the AI gets offloaded to a core of its own. I think it was a "cheat" used by some to get extra performance, but it didn't get "by default" in the base, vanilla game.

Mate, the issues about performance with AI are not related with CPU, are related with memory and probably the fact of that this game is a 32 bit application.

With ARMA 3 the RAM (memory) management is something peculiar, and we can separate it in 2 subjects.

In first place read this:

https://www.bistudio.com/blog/breaking-the-32-bit-barrier

Now, this breaking barrier is because the game is using system Page File basically without limit and not physical memory, means that your Disk is being used as memory, let's say.

But, this architecture for memory management is only related with textures/terrain (shaders) means the shaders are being loaded into system Page File, this is useful for large environments (Altis for instance), still has some impact in performance because keeps being swapped between physical memory and Page File (your Disk). So, (unless you are using a RAMDISK or similar) if you have RAM enough, as a matter of performance the best for ARMA 3 is to set System Page File to 400 MB (the minimum accepted by the game). This will prevent Page File usage.

Now, AI is not related or linked to the archicture described above, is dependant of the amount of RAM used by the executable (arma.exe) which and because is a 32 bit app still is limited to 2048 Mb as maximum usage.

It has become clear that after some point (AI ammount) these 2 GB of RAM are enough to manage AI with acceptable performance. Maybe if one day this game become a 64 bit app we can have this fixed.

Want to make a experience? Use the startup parameter -maxMem= and set the limit to 1024, then open Altis and you will see that your performance is not affected. Next, add some AI and open it again, you will notice (for sure) the huge performance drop. Next, remove -maxMem= or set it to 2048 (max allowed) and open it again with the same AI, you will see a performance increase.

This is from where the AI impact in performance is coming, not from CPU.

Share this post


Link to post
Share on other sites

Now, AI is not related or linked to the archicture described above, is dependant of the amount of RAM used by the executable (arma.exe) which and because is a 32 bit app still is limited to 2048 Mb as maximum usage.

It has become clear that after some point (AI ammount) these 2 GB of RAM are enough to manage AI with acceptable performance. Maybe if one day this game become a 64 bit app we can have this fixed.

Want to make a experience? Use the startup parameter -maxMem= and set the limit to 1024, then open Altis and you will see that your performance is not affected. Next, add some AI and open it again, you will notice (for sure) the huge performance drop. Next, remove -maxMem= or set it to 2048 (max allowed) and open it again with the same AI, you will see a performance increase.

This is from where the AI impact in performance is coming, not from CPU.

 

That 2GB is not exactly correct, because large address aware 32bit applications like Arma can use up to 4GB in a 64 bit OS.

The maxmem parameter may have confused you here; it only determines the user defined memory usage (256-2047MB), not the total usage limit of the process.

 

Of course the game never reaches 4GB, but that's not because it can't, it just doesn't want to.

Share this post


Link to post
Share on other sites

The highest RAM memory usage I've seen Arma 3 using has been 3GB.

Share this post


Link to post
Share on other sites

That 2GB is not exactly correct, because large address aware 32bit applications like Arma can use up to 4GB in a 64 bit OS.

The maxmem parameter may have confused you here; it only determines the user defined memory usage (256-2047MB), not the total usage limit of the process.

 

Of course the game never reaches 4GB, but that's not because it can't, it just doesn't want to.

The executable never goes above 2 GB.

 

The highest RAM memory usage I've seen Arma 3 using has been 3GB.

It can use 20 gb (mixed with page file).

Share this post


Link to post
Share on other sites

The executable never goes above 2 GB.

 

It can use 20 gb (mixed with page file).

Can you or anyone else say what the Task Manager mean when it says like in the picture of this ticket? http://feedback.arma3.com/view.php?id=25344

It's not RAM usage but some kind of a mix?

Share this post


Link to post
Share on other sites

I

 

Can you or anyone else say what the Task Manager mean when it says like in the picture of this ticket? http://feedback.arma3.com/view.php?id=25344

It's not RAM usage but some kind of a mix?

I had the same when I was having triple crossfire with 9 GB of VRam. To me looks memory leak.

Now I am using 2 cards in crossfire and executable never goes above 2 gb, but RAM usage easily gets 12 GB (with limited pagefile). If I let pagefile managed by Windows, easily reachs 10 GB.

Share this post


Link to post
Share on other sites

Here is my version: I recently upgraded my AMD Phenom 2 to an Intel i5 6600K. Before that I usually had 30 FPS (graphic settings on High and about 2200 view distance)- now I get over 70 FPS in the same situations with the graphic settings on High and 4800 view distance . The worst performance I've experienced so far (in SP) is something about 60 FPS. I've never expected such a huge FPS change, but here it is, and now I really couldn't care less about Win10 and Dx12, etc. anymore. :>

Share this post


Link to post
Share on other sites

I have an i7 now. But I've used and like AMD systems. I ran A2,OA on an Athlon 640 with great results. Plus when I first got A3, to avoid putting it on my brand spanking new i7, I thought I'd see how the AMD did. The results are on my YT channel, it did very well to be fair.

O.k. it wasn't as good as the i7 is, but there again the i7 was nearly double the price, and I'll tell you I didn't get anywhere near double the performance. So AMD, provided they're lean and clean, can be fine with this series. For me anyway.

Share this post


Link to post
Share on other sites

Why do these topics get brought up every 2 days? 

 

AMD = poor single threaded performance

INTEL = superior single threaded performance

 

Arma uses 1 thread.... THUS

 

INTEL = better ARMA FPS.

 

This. AMD Bulldozer/Excavator CPUs aren't as bad as people say if you really manage to use all cores (such as on a server) - we use Opterons next to Xeons and they're still very capable. However most games are few-threaded, so ...

 

That being said, don't trash away AMD just yet, we'll see what the Zen architecture can do about single-threaded performance.

 

Maybe because AMD 8 core processors are in fact 4 core processors, similar to Intel HyperThreading. Probably courts will say.

http://www.pcworld.com/article/3003113/components-processors/lawsuit-alleges-amds-bulldozer-cpus-arent-really-8-core-processors.html

 

That was just a scam - the AMD CPUs have 8 integer units, just 4 FPUs. Historically, "N cores" usually means "N INT units", so really nothing more than a guy/company trying to get some compensation money out of another company.

 

That 2GB is not exactly correct, because large address aware 32bit applications like Arma can use up to 4GB in a 64 bit OS.

The maxmem parameter may have confused you here; it only determines the user defined memory usage (256-2047MB), not the total usage limit of the process.

 

Of course the game never reaches 4GB, but that's not because it can't, it just doesn't want to.

 

That's a bit misleading. First, you have DMA mapped addresses, which take a significant portion of the 4G space. Then there are global pages and while you could not mark them as global (so-called 4G/4G split we used to have on enterprise Linux in ~2003), it would result in a TLB cache flush of those addresses whenever you wrote to the CR3 register, ie. on a context switch. In other words, up to 30% (IIRC) performance loss. Since you map the same pages to the virtual 32bit space on a 64bit OS, the impact would be similar. (Or am I missing something?)

I'm not aware of Windows ever having that feature though, the 2G/2G (or 3G/1G) split is in effect to my knowledge.

 

Arma will spread the load across all cores/threads, but if you add the actual usage up, it always tops out at around 200% (2 cores worth of cpu utilization). 

 

That's b/c Arma's engine doesn't actually utilize more than about 2 cores/threads worth of available cpu power. Hence why a cpu with better per-thread performance (intel, in this case) tends to perform better with Arma, and why your amd doesn't seem to suffer as much in some other games, relative to an Intel CPU. B/c those other games more effectively make use of modern hardware.

 

Actually, the worst possible thing you might want is the load having spread evenly amongst all the cores if all you're doing is just selecting which core the next chunk of data is going to be processed, without any parallelism - this implies significant cache misses as well as context switch overhead. So unless the work is parallelized, you want to keep it localized to a single CPU core as much as possible - it's why "cpu pinning" exists, even though it often shouldn't be needed as CPU schedulers should have sufficient heuristics for the most part.

 

Mate, the issues about performance with AI are not related with CPU, are related with memory and probably the fact of that this game is a 32 bit application.

With ARMA 3 the RAM (memory) management is something peculiar, and we can separate it in 2 subjects.

In first place read this:

https://www.bistudio.com/blog/breaking-the-32-bit-barrier

 

Ah, that would explain the green triangle crashes I'm getting sometimes - I run with 16G RAM with the paging file disabled. Oh developers, always trying to get around the need to port their apps to 64bit. :)

Share this post


Link to post
Share on other sites

 

This. AMD Bulldozer/Excavator CPUs aren't as bad as people say if you really manage to use all cores (such as on a server) - we use Opterons next to Xeons and they're still very capable. However most games are few-threaded, so ...

 

That being said, don't trash away AMD just yet, we'll see what the Zen architecture can do about single-threaded performance.

 

 

That was just a scam - the AMD CPUs have 8 integer units, just 4 FPUs. Historically, "N cores" usually means "N INT units", so really nothing more than a guy/company trying to get some compensation money out of another company.

 

 

That's a bit misleading. First, you have DMA mapped addresses, which take a significant portion of the 4G space. Then there are global pages and while you could not mark them as global (so-called 4G/4G split we used to have on enterprise Linux in ~2003), it would result in a TLB cache flush of those addresses whenever you wrote to the CR3 register, ie. on a context switch. In other words, up to 30% (IIRC) performance loss. Since you map the same pages to the virtual 32bit space on a 64bit OS, the impact would be similar. (Or am I missing something?)

I'm not aware of Windows ever having that feature though, the 2G/2G (or 3G/1G) split is in effect to my knowledge.

 

 

Actually, the worst possible thing you might want is the load having spread evenly amongst all the cores if all you're doing is just selecting which core the next chunk of data is going to be processed, without any parallelism - this implies significant cache misses as well as context switch overhead. So unless the work is parallelized, you want to keep it localized to a single CPU core as much as possible - it's why "cpu pinning" exists, even though it often shouldn't be needed as CPU schedulers should have sufficient heuristics for the most part.

 

 

Ah, that would explain the green triangle crashes I'm getting sometimes - I run with 16G RAM with the paging file disabled. Oh developers, always trying to get around the need to port their apps to 64bit. :)

 

After 1.54 I've played several hours with pagefile disabled and the game did not crashed (before was crashing after a couple of minutes).

Still, with all settings in High, AA x4 and with view distance at 3000 is loading about 7 GB of RAM.

This in editor without AI.

http://i.imgur.com/ocaopRC.jpg

Share this post


Link to post
Share on other sites

That 2GB is not exactly correct, because large address aware 32bit applications like Arma can use up to 4GB in a 64 bit OS.

The maxmem parameter may have confused you here; it only determines the user defined memory usage (256-2047MB), not the total usage limit of the process.

 

Of course the game never reaches 4GB, but that's not because it can't, it just doesn't want to.

Are you sure?

 
And what about 10GB? This with graphics on high,  viewdistance 2000 and 4xAA.
 
Will post one later with view distance at 12000 and settings in Ultra, just to unleash the power.

Share this post


Link to post
Share on other sites

 

Are you sure?

 
And what about 10GB? This with graphics on high,  viewdistance 2000 and 4xAA.
 
Will post one later with view distance at 12000 and settings in Ultra, just to unleash the power.

 

- Do you've 16GB or 32GB of RAM? Can't remember anymore.

- Do you've page file disabled? It would be nice to see a picture from the task manager how much the arma 3.exe uses.

- Your MSI is monitoring RAM usage and not Page File usage? Next time monitor both of them to leave no doubts and it would be interesting to see.

- How much the other programs used RAM? Usually it's around 2GB unless I've more background stuff on for me.

 

I got to say that looks very smooth so it would be nice if you could share a bit more how you've done it. It's bit weird that I haven't heard anyone else report that high RAM usage other than you, so you might have some wizardy in the settings. I also noticed you getting more CPU usage all around the threads/cores. Need to check what's wrong with me because I remember seeing more also in my system. Maybe I've forgot to enable hyper-threading from some testing :D

/Oh yeah I had forget to disable core parking with the new motherboard.

 

My results:

 

In-game when going around with the camera for some time VD/Obj distances 12km/12km

odx4den.png

 

After shutting down game:

iXhF89g.png

I've only 8GBs of RAM as you can see in my signature. I'm interested because I've been thinking to get another 8GBs more if the game really utilizes it somehow.

As you can see when I shut down the game:

RAM usage dropped from 5534MB to 2218MB which is 3316MB difference

Page File dropped from 10092MB to 2345MB which is 7747MB difference      It's likely that the MSI Afterburner doesn't really show Page FIle...

Share this post


Link to post
Share on other sites

Here's my measurement, using mostly High options, view/object distance set to 12000, measured using Microsoft's built-in perfmon.msc.

In both of these,

  • red = read/written pages per second (unit = 1 page)
  • blue = free memory (unit = 10^-7 bytes, eg. 800 = 8GB)
  • green = page file usage (unit = 10^2 %, eg. 100 = 10%)
First an interesting sample of me just loading in the world, after previously quitting the game (so that there's tiny remainder of something in the paging file):

W6llnD1.png

Notice that Arma3 indeed eats up 2.75GB, but that's likely not the actual process itself, looking at allocated && used virtual memory for arma3.exe, I can see 1679MB, likely at the limit of its memory space. The extra RAM is probably allocated using the paging file API, but Windows is smart enough to not actually page it if not necessary.

Also note what's happening after the world load - it seems that Windows is making use of the "free time" by slowly (256 4K pages / second) freeing up the memory, moving it to the file, up to about 10% of the 8GB paging file (800MB).

The second sample shows me going back to the menu and selecting a Zeus 4+1 Altis mission (as I didn't have a zeus mission at hand), waiting for it to settle (red line goes down), and flying around (red line up again), high and low, as much as I could.

kk4QzDP.png

No noticeable free memory decrease or paging file growth. Actually, it seems that flying near the ground in heavily object-populated areas (low fps) helps both memory and the paging file.

As such, I cannot confirm any high memory usage on High settings. Maybe Ultra makes the extra 13GB difference?? Or maybe MSI AfterBurner doesn't measure correctly?

  • Like 2

Share this post


Link to post
Share on other sites

Here's my measurement, using mostly High options, view/object distance set to 12000, measured using Microsoft's built-in perfmon.msc.

In both of these,

  • red = read/written pages per second (unit = 1 page)
  • blue = free memory (unit = 10^-7 bytes, eg. 800 = 8GB)
  • green = page file usage (unit = 10^2 %, eg. 100 = 10%)
First an interesting sample of me just loading in the world, after previously quitting the game (so that there's tiny remainder of something in the paging file):

W6llnD1.png

Notice that Arma3 indeed eats up 2.75GB, but that's likely not the actual process itself, looking at allocated && used virtual memory for arma3.exe, I can see 1679MB, likely at the limit of its memory space. The extra RAM is probably allocated using the paging file API, but Windows is smart enough to not actually page it if not necessary.

Also note what's happening after the world load - it seems that Windows is making use of the "free time" by slowly (256 4K pages / second) freeing up the memory, moving it to the file, up to about 10% of the 8GB paging file (800MB).

The second sample shows me going back to the menu and selecting a Zeus 4+1 Altis mission (as I didn't have a zeus mission at hand), waiting for it to settle (red line goes down), and flying around (red line up again), high and low, as much as I could.

kk4QzDP.png

No noticeable free memory decrease or paging file growth. Actually, it seems that flying near the ground in heavily object-populated areas (low fps) helps both memory and the paging file.

As such, I cannot confirm any high memory usage on High settings. Maybe Ultra makes the extra 13GB difference?? Or maybe MSI AfterBurner doesn't measure correctly?

 

 

Yeah, that could explain the readings I get from msi.

So its labelled wrong then ?

Share this post


Link to post
Share on other sites

My son and I are both ARMA3 players. I just built him an i5-6500 skylake system (Gigabyte Z170XP SLI with 16GB of DDR4 3000) for Christmas and he's reusing the R9 280 he got last year for his birthday. Benchmarks are running the "Combined Arms" showcase @ 1920x1080 without touching a single thing beyond selecting the basic video quality setting and letting ARMA3 set everything automatically (helicopter insert and taking the first village):

"Low" 39-42 fps
"Standard" 29-36 fps
"High" 26-35 fps
"Very High" 24-32 fps
"Ultra" 22-27 fps 

With ALL post processing turned off (everything on that page including trees and grass, AA, etc.): "Ultra" = 35-48 fps, "High" = 44-60 fps. I've watched him crank the view distance all the way up to 12,000m and still get playable frames on "High" (25+) with these settings on his system. Makes me jealous! ouch.gif 
 
My system, by comparison, is older except for the video card. Water cooled AMD FX4100 OC'd to 4.4Ghz on a Sabertooth 990FX R2 with 16 GB of DDR3 1866. I bought myself a new XFX R9 390 "DD" for Christmas thinking that might keep me happy in ARMA3 for another year. My son's benchmarks, with "only" a R9 280??? I get those, subtract 10 fps. All the other games I play can be maxed out at their highest settings and I consistently get 60+. Not ARMA3! "Ultra" on that showcase is a slideshow around 15 fps average. Crank the view distance up and it becomes a screenshot.

In a nutshell, his "old" R9 280 on a 3.2Ghz i5 6500 system runs circles around my new R9 390 on an 4.4Ghz OC'd FX4100.  :huh:

Trying to figure out how to convince the wife that I need to build a second skylake system now...  or a different AMD chip?  Obviously the second choice is MUCH cheaper but it's money wasted if I can't get much better performance than I have with my OC'd FX4100...

Share this post


Link to post
Share on other sites

For ARMA 3, Nvidia performs much better than AMD (I know because I have both).

Also, Intel is better for ARMA 3 (and games in general).

Share this post


Link to post
Share on other sites

For ARMA 3, Nvidia performs much better than AMD (I know because I have both).

Also, Intel is better for ARMA 3 (and games in general).

The Nvidia claim is unfounded.  I've built a new computer every year (ok, sometimes every other year) for nearly the last 30 years.  I used to use nothing but nvidia gpus, but not because their hardware was better... but because they had better support under a custom linux kernel.

The AMD vs Intel claim is...  something we already knew?  ARMA3 is the *only* game that's pushed me into thinking about a new Intel (skylake) build.  Are intel better under other games?  That depends on the game.  But no other game I play is making me think of breaking out the credit card for an upgrade.

Share this post


Link to post
Share on other sites

The Nvidia claim is unfounded.  I've built a new computer every year (ok, sometimes every other year) for nearly the last 30 years.  I used to use nothing but nvidia gpus, but not because their hardware was better... but because they had better support under a custom linux kernel.

The AMD vs Intel claim is...  something we already knew?  ARMA3 is the *only* game that's pushed me into thinking about a new Intel (skylake) build.  Are intel better under other games?  That depends on the game.  But no other game I play is making me think of breaking out the credit card for an upgrade.

Where did I say that Nvidia is better hardware?
This is what I've said:
"For ARMA 3, Nvidia performs much better than AMD (I know because I have both)."
Now where, is your doubt?
 
Btw, 30 years is too much for me, my first Nvidia was MX440, which was beast at time.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×