Reducing AC CPU usage

Edit: this appears to be mostly related to AMD Crossfire - if you have any experience with that, please contribute anything you can! there is plenty of cpu available with a single GPU.

This is not anything about the 99% occupancy warning which the game hasn't given me for quite a while - I've just been tweaking my current rig and finding it's noticeably CPU bound.

Last benchmark results - was fiddling with AA ( no FXAA & 2xAA makes a big difference ) and reflections ( basically no difference between everything full & everything as low as it'll go without crossfire artifacts ).

Code:
AC VERSION: 1.16.3 (x64)
POINTS: 8541
FPS: AVG=58 MIN=30 MAX=117 VARIANCE=19 CPU=96%

LOADING TIME: 16s
GPU: Radeon RX 580 Series (7680x1440)
OS-Version: 6.1.7601 (Service Pack 1) 0x100-0x1
CPU CORES: 12
FULLSCREEN: ON
AA:2X AF:16X SHDW:2048 BLUR:0
WORLD DETAIL: 5 SMOKE:2
PP: QLT:5 HDR:1 FXAA:0 GLR:5 DOF:0 RAYS:1 HEAT:1

I have FFBClip running in the background usually ( and helicorsa but I don't think that'll make a noticeable difference anywhere ) and FFB half update rate - has anyone got any other tips to lean out CPU use a bit? I do notice a little grumbling from the game when it's sending a lot of FFB info ( admittedly that's usually in a corner when there's also a lot of screen movement ).

CPU is an i3930k O/C'd to 4.4Ghz, it's not going to go any faster unfortunately.
 
Last edited:
If "no FXAA & 2xAA makes a big difference" then it's likely that resolution is the main CPU draw.
Disabling as much apps as possible and reducing world detail might help a little but the only major change would be to drop down to 5760x1080 i think.
For example: with performance similar hardware (gtx1070 and 4670k oc'd to 4.4) im getting 120fps averages at 5760x1080 in benchmark (with only 65% cpu load too).

ps: looking at some specs of your radeon, you might be above design limit for amount of pixels, so CPU probably does some overtime work to help gpu handle that resolution.
 
Last edited:
If "no FXAA & 2xAA makes a big difference" then it's likely that resolution is the main CPU draw.
Disabling as much apps as possible and reducing world detail might help a little but the only major change would be to drop down to 5760x1080 i think.

ps: looking at some specs of your radeon, you might be above design limit for amount of pixels, so CPU probably does some overtime work to help gpu handle that resolution.

There's a RX570 in there as well which doesn't show up on the benchmark - crossfire does seem to have a CPU hit by itself though. I can try a lower rez I guess, there's as few apps as possible running; I'd rather not really because it looks astonishing and it's not going to be native rez, but if needs must.
 
Here's my "7680x1440" result.

Code:
 AC VERSION: 1.16.3 (x64)
POINTS: 10612
FPS: AVG=72 MIN=6 MAX=94 VARIANCE=0 CPU=39%

LOADING TIME: 18s
GPU: NVIDIA GeForce GTX 1070 (7680x1440)
OS-Version: 6.1.7601 (Service Pack 1) 0x100-0x1
CPU CORES: 4
FULLSCREEN: OFF
AA:4X AF:16X SHDW:2048 BLUR:0
WORLD DETAIL: 4 SMOKE:1
PP: QLT:3 HDR:1 FXAA:0 GLR:3 DOF:0 RAYS:1 HEAT:0

CPU=39% and we both have same clock speed, with your CPU being one year older and having double my cache - so definitely similar.
Idk maybe try without crossfire ? or mess around with the gpu drivers... idk but you should not be CPU limited in benchmark as it is a replay. And graphics bottlenecks/incompatibilities can be a reason for excessive CPU load so it's hard to say what exactly is happening.
 
Last edited:
@Andrew_WOT I find the ability to quickly switch window focus* more important than V-sync. Beside little bit of tearing (running 100fps at 120hz and it's pretty small/rare) there is no downside to FS off.

* - can read/answer messages mid race, or even watch twitch streams on second monitor when driving casually etc.
 
Maybe a stupid question but did you even monitor your gpu load(s)? You state it's cpu bound but I read a lot of things that where a bit different in the end in my life so I better ask :)

AA shouldn't make any difference when cpu bound from my experience. My system is cpu bound too, online, with I7 2600k @4.4 GHz. Sometimes struggling with 60 fps. I know that it's substanding with the full leaderboard that's causing it but I need that when I'm the race host...

What makes a difference from my testing:
- reflection frequency (have it on static now)
- amount of apps
- World detail a little

Of course crossfire might add some cpu overhead but if AA makes a difference it looks like it's gpu bound actually.
How much vram do you have? You know that with crossfire/sli the vram isn't doubled?
8k x 1440 seems like a lot. If your vram is filled it might explain why both, gpu and CPU aren't at 100% load.
 
@Andrew_WOT I find the ability to quickly switch window focus* more important than V-sync. Beside little bit of tearing (running 100fps at 120hz and it's pretty small/rare) there is no downside to FS off.

* - can read/answer messages mid race, or even watch twitch streams on second monitor when driving casually etc.
For me, with vsync forced in the nvidia drivers, running borderless windowed causes some micro stuttering. Like hiccups every now and then and it's really annoying!
But I get that with most games if I run them in borderless mode for some reason, didn't bother to really look into it yet.
 
Worth noting that apps still run when hidden, unless they are unticked in settings->general
Yes and no.
Having Substanding hidden compared to unticked in the settings: 1-2fps. Hidden to actively shown: ~20 fps.

It's worth to really deactivate apps you don't need in summary but compared to having them hidden or actively running them, it's not a big deal.
 
As far as I'm aware only the primary card VRAM is used - that one has 8GB. GPU use is hard to monitor well with crossfire but they're flat out when they're rendering ( as they should be! ) - it's harder to see what the inter-frame handover period is ( as in - you can't ), but I have a little feeling that could be shorter. I only use fullscreen because crossfire needs it, borderless windowed always worked fine when I wasn't trying to use crazy huge resolutions - admittedly my old GPU was a gem until it burned out.

Still 95% cpu use in crossfire on a single monitor. Worth noting that I did a completely clean gpu driver install recently, so there's probably something more esoteric going on.

Apps running in the background will take a little ( hopefully miniscule ) CPU - apps rendering on screen will need rendering on top of the rendered game image, which is not remotely fast.
 
Last edited:
For me, with vsync forced in the nvidia drivers, running borderless windowed causes some micro stuttering. Like hiccups every now and then and it's really annoying!
But I get that with most games if I run them in borderless mode for some reason, didn't bother to really look into it yet.
Maybe it's DX11 issue, but v-sync never really worked properly in borderless for me. When forced framerates settle at monitor refresh rate properly, but some tearing still happens. And it gets bad when gpu can't do 120fps - all kinds of small and medium stutters happen that kills it.

What OS you are on?

AA shouldn't make any difference when cpu bound from my experience
Yeah it shouldn't but AFAIR AA is memory/data bandwidth expensive, and when there is too much data for GPU to fit in/go through all at once CPU power might be used to help pump the rest. Thou his system should handle it i think... i bet it's crossfire (or a driver/windows service) bottlenecking something.
 
3dmark scores are slightly under their benchmark 4k system 2xGTX980 - I'm not too surprised there because the ( second card ) rx570 isn't great ( and of course my cpu is older ) but I do think there's something underperforming overall. However AC's behaviour is a bit more odd.

Incidentally both cards are in the recommended PCIEx16 slots, board is an Asus Sabertooth X79 & I don't remember any bios settings that matter. I guess if it really came down to it I could try clocking the bus speed up but that sounds like the wrong place to look.

For Win7 & borderless windowed, make sure to disable desktop composition.
 
Last edited:
It's worth to really deactivate apps you don't need in summary but compared to having them hidden or actively running them, it's not a big deal.
Well it depends on what the app does and also how "well" it's written. Apps can choose to do most of the work in the acUpdate() (always called) irrespective of whether it's really needed. They can also choose to put stuff that only needs to be run when the app is "active" into the onFormRender() function. I imagine that some authors may have been a bit careless and put lots of stuff into acUpdate() that needn't be there, and those apps won't change their CPU consumption much when you hide them...

As far as I'm aware only the primary card VRAM is used
Really? I've never had to use SLI of any form, but that sounds very unlikely to me.
 
Well it depends on what the app does and also how "well" it's written. Apps can choose to do most of the work in the acUpdate() (always called) irrespective of whether it's really needed. They can also choose to put stuff that only needs to be run when the app is "active" into the onFormRender() function. I imagine that some authors may have been a bit careless and put lots of stuff into acUpdate() that needn't be there, and those apps won't change their CPU consumption much when you hide them...

Really? I've never had to use SLI of any form, but that sounds very unlikely to me.
Makes sense, thanks for the insight! My post was based on testing with my apps :)

To sli: yes, one vram, two cores. Or maybe it gets mirrored actually, no idea. But either way you don't get more vram out of it! It's important to know. Read quite often that people wondered why their 2x2gb sli stuttered like hell at "only 3gb used"..
 
Makes sense, thanks for the insight! My post was based on testing with my apps :)

To sli: yes, one vram, two cores. Or maybe it gets mirrored actually, no idea. But either way you don't get more vram out of it! It's important to know. Read quite often that people wondered why their 2x2gb sli stuttered like hell at "only 3gb used"..
My post is based on guesswork about how apps work, so it's just a warning that hiding an app *might* not have the desired effect with a new one that behaves badly, IF any such apps exist ;)

As for the VRAM thing, I'm utterly confused (maybe should google a bit) because I always assumed that both cards needed more or less the full dataset in order to do the rendering. They can't communicate over the PCI/AGP/PCIe bus because it's not fast enough, and clearly the skinny little cable on some cards doesn't carry high bandwidth... hence my assumption that both of them had the full data. I know that there are different ways to do SLI (alternate scan lines, alternate frames, to name just two) but I can't readily think of any way to partition the problem so that each card needs ~ half of the data... (But - yup, that's just more semi-educated guesswork on my part! :p)
 
Back
Top