Jump to content
Sign in to follow this  
dadax

Arma 3 performance improvement

Recommended Posts

 

In this thread I would like to discuss ways and means that allow us to improve the clientside (serverside is of secondary relevance for this thread) performance in Arma 3
Installing MALLOCs, changing Windows settings, AMD/Nvidia settings and Arma 3 settings/profile settings for example.
 

Share this post


Link to post
Share on other sites

Let us start with a new alternative MALLOC.

 

Performance increase in Arma 3 using Intel AVX512(F) – A brief, first analysis

 

Foreword - a short history of performance development in Arma 3

 

We all know the lamenting about low fps in the Arma (3) franchise. A substantial amount of

low fps can be attributed to unoptimized client and server PCs. For example: you simply cannot expect your PC RAM to perform well in Arma with JEDEC timings and disabled XMP profile. You cannot compare the Arma 3 simulation with a simple, trivial game. Arma 3 delivers and computes so much more.

 

BI constantly updates Arma 3 and communicates with the community about performance thanks to the work of dedmen and Dwarden. A lot of development is still done for us and Arma 4 - as of 2022 - might still be three or four years away, albeit we are all eager to test Enfusion/Reforger.

 

Intel has finally shrunk its CPU die size to 10nm with large effects in performance.

MSI has delivered a motherboard that allows for AVX512 instruction set to be enabled if the E-Cores are turned off.

 

The addition of new mallocs by BI and modders/progammers allows to improve performance even more.

 

Why this short sketch of history? Well, simply put, since the days when Ryzen 1st Gen. and Intel 6th Gen. were top-notch CPUs this process has allowed to increase the fps by almost 90 fps, making Arma 3 a smoother and more pleasant experience in the field of simulation.

 

1 Test System
Reduced the settings to get 365/24/7 stability. All system components are not pushed to the limit.
system-shot-png.1168266


In words: CPU 12900K@5.3 Ghz, Cache Frequency@4.8 Ghz, E-Cores, AVX512 offest=0, Guardband Voltage=128, HT-off, Battle Eye off , nologs on, RAM 3866 CL14-14-14-30-1N Gear 1, RTX 3060 TI non-OC, G-Sync/V-Sync off, Arma 3 Full HD Standard Settings, Windows 11with "Lock pages in memory".

(An un optimzed system with JEDEC RAM times, Gear 2 mode and stock CPU and Cache settings reduces the FPS by half to 70 FPS. You need to work on your system for Arma 3. HT on has not shown a consistent increase of performance but a measurable and repeatable decrease of 2-7 FPS and is hence turned off. Further testing is needed.)


2 Test results
 

The following test runs were done.

1. Vanilla official Tbb (no matter if huge pages is enabled, as it does not utilize it)
2. Legacy CMA with huge pages enabled in cma.ini - one run only displayed in Table1 but mutiple test runs were done to ensure consistency
3. GJK's Tbb v2021.5.0 w/o AVX (github.com/GoldJohnKing/oneTBB/releases/tag/Arma-3-v2021.5.0-20211230)
4. GJK's Tbb v2021.5.0 w AVX2 (not yet published)
5. GJK's Ampersand Edition Tbb v2021.5.0 w AVX512 (see below)
6. GJK's mimalloc v2.0.3 (github.com/GoldJohnKing/mimalloc/releases/tag/Arma-3-v2.0.3-20211230)
7. GJK's mimalloc v1.7.3 (github.com/GoldJohnKing/mimalloc/releases/tag/Arma-3-v1.7.3-20211230) - one run only displayed in Table1 but mutiple test runs were done to ensure consistency

 

final-benchmarl-ampersand-for-gold-john-

Table 1

 

On the new Malloc GJK's & Ampersand Edition Tbb v2021.5.0 w AVX512

It has now been released. It is the product of collaboration between Gold John King and Ampersand (dadax) and does include the AVX512 Intel instruction set in an alternative Arma 3 memory allocator.
https://github.com/GoldJohnKing/oneTBB/releases/tag/Arma-3-v2021.5.0-20211230

 

3 Analysis
 

Key findings
1641428503977-png.1168271

-The GJK's & Ampersand Edition Tbb v2021.5.0 w AVX512 Mallocs results in the highest result
and highest minimum fps and should be applied to all capable Intel CPUs.

-The Delta between GJK's Ampersand Edition Tbb v2021.5.0 w AVX512 Malloc and the Vanilla official Tbb was up to 10% (see Table 1)

 

-The GJK's mimalloc v2.0.3 and GJK's Tbb v2021.5.0 w AVX2 Malloc both resulted also in very high fps, albeit lower minimum fps. They are both a viable alternative for the majority of desktop CPUs that don't allow for the application of the AVX512(F) instruction set. GJK's mimalloc v1.7.3 showed some instability issues in a 25+ multiplayer enviroment, further testing of GJK's mimalloc v2.0.3 is therefore necessary and advised. 32GB of RAM are recommended

----------------------------
Further findings of this and previous test runs

 

-Higher overall system performance with Intel's 12th Gen. CPUs results in more consistent test runs and therefore reduces the need for more test runs drastically to avoid observational errors.
-Disabling E-Cores in Intel's 12th Gen. CPUs allows not only to use AVX512, but improves results in all possible scenarios
 

4 Future development of AVX512

 

Leaks have shown that it is highly probable that the AVX512 instruction set will be introduced to the future Ryzen Zen 4 platform in 2022

 

Thus the relevance of this memory allocator might even increase, beyond the present Intel Server, HEDT and select 12th Gen. desktop CPUs.

 

5 A thank you list

 

Thanks for GrooveC and Eszett for personal advise on RAM tuning.

 

 

-Ampersand (dadax in the BI forum) and Gold John King 2022-3-1 (revised 2022-5-1)

P.S.: I am not identical with Ampersand38 - but I appreciate his work highly

 

 


 

  • Thanks 1

Share this post


Link to post
Share on other sites
12 hours ago, dadax said:

Let us start with a new alternative MALLOC.

 

Performance increase in Arma 3 using Intel AVX512(F) – A brief, first analysis

...........

4 Future development of AVX512

 

Leaks have shown that it is highly probable that the AVX512 instruction set will be introduced to the future Ryzen Zen 4 platform in 2022

 

Thus the relevance of this memory allocator might even increase, beyond the present Intel Server, HEDT and select 12th Gen. desktop CPUs.

 

"Future development of AVX512" don't go anywhere because Intel disable AVX512 in last microcode https://www.guru3d.com/news_story/intel_will_disable_support_for_avx_512_on_alder_lake_processors.html

Share this post


Link to post
Share on other sites

AVX 512 has a wide base.

  • Intel 11th Gen. desktop PC has it,
  • Intel 10th Gen. HEDT has it ,
  • also Intel 12th Gen. HEDT as stated in the article you linked will have it.
  • Zen 4 is very likely to have it.


So we - as the ARMA3 Community - can and will hopefully profit from this MALLOC now and in the future.

You have a point about Intel 12th Gen. desktop, but with DDR4 memory the need for updates is not so high, I installed the last BIOS from late December and it works fine even with very demanding RAM timings.

Does your system allow to use AVX512 - are you interested in running benchmarks for comparison? Your feedback would be very valuable.

 

Share this post


Link to post
Share on other sites

I get about 122 fps at 12700k with the overclocking settings indicated by dadax
memory BL2K16G36C16U4BL 16-20-20-40-CR1 gear1 3900 MHz

cache 4.8

cpu 5.1

malloc GJK_Ampersand_Edition_Tbbmalloc_v202150_AVX512.dll

on a Ryzen 5900x with the same memory 3733 I had a maximum of 90fps

  • Like 1

Share this post


Link to post
Share on other sites

Simulated your settings. Very close.
And thanx again for your testing. It helps a lot to inform the community.

 

 

emulated-runs-12700k-cropped-png.1171793

Share this post


Link to post
Share on other sites

Have you done any performance profiling on the usage of PhysX on Nvidia/Amd cards? Would switching to the usage of FEMFX - GPUOpen be a lot of work?

 

It is very odd that no matter what I do, even dropping all settings to low/off, I my computer has a difficult time breaking ~48fps.

Hardware: AMD 5800x, Radeon rx 6800 xt, 64Gig ram.

Share this post


Link to post
Share on other sites

RIG: i74790 3.6 ghz 1060 GTX 6 GB / 16GB RAM / SSD   YAAB 42 FPS(Highest iv heard of anyone with my particular set up)

 

I dont have any graphs to share,but testing Arma3 and editing windows settings and lots and lots of other things for years.. managed through testing over a year and trying new things out to get from YAAB 32 FPS(wild variations 30-35) to 42 and no wild variations(41.5-42.5 consistently)  by doing the following things:

 

1) Enabling windows large page file(run arma as admin)

2)Using CMA Malloc with large pages setting(very important)

3)Antivrus OFF. (really,if on i never get above 40FPS EVEN WITH Arma3 exe. excluded)

4)DISABLE Hyper threading( serious negative imapct)

5)Nothing else running and steam offline mode

6) PIP OFF shadow distance 50

7)object distance ow so cpu isnt calculating object position update requests

8)deleting all triggers when use is served/not using alot of repeatable ones/

 

In general during gameplay the biggest things are to reduce the amount of active scripts running  "diag_activeSQFScripts"

 

 

keep particle effects low

if many AI make bigger groups rather than lots of smaller(more leader brains) ones.

disable simulation/show-hide objects units when not needed/ simple object setting.

Avoid scripts that are constantly calculating especially AI functions. Scripts like GAIA destroy my FPS with modest amount of units.

Mods like ALIVE that can cache/virtualise AI in theory are good,but what happens when the "spawn" in..and combat starts,and its still running alot of functions,terrible FPS drop with 50 v 50 AI yet ifyour running with vanilla waypoints/BIS/CBA patrol scripts,FPS is fine.

 

I run combined arms scenarios with at any one time,100 infantry and maybe 7-15 vehicles and all or most incontact at same time and i have 50 FPS on average.

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
Sign in to follow this  

×