Jump to content
  • 0

CPU affinity - two different approaches


Vond

Question

So, there are two different approaches to improving performance by changing CPU affinity from what I've seen. One is using Skyrim Extended Launcher to 'lock' Skyrim into using 2 specific cores (this is obviously only interesting for people with 4+ core CPUs), as the game only makes use of two anyway but what happens normally is that Windows spreads the load between all cores which means that CPU frequencies go up and down like crazy. Using SEL changes this as it will use those 2 cores fully improving stability and performance.

The other approach is to add some settings to your Skyrim.ini, assigning specific jobs to the different CPU cores. Following this guide assigns 2 cores to rendering, and 2 cores to AI and such.

 

The .ini additions (for 4 cores):

 

Skyrim.ini:

 

[General]

iNumHWThreads=4

iHWThread6=3

iHWThread5=3

iHWThread4=3

iHWThread3=2

iHWThread2=2

iHWThread1=2

iAIThread2HWThread=3

iAIThread1HWThread=2

iRenderingThread2HWThread=1

iRenderingThread1HWThread=0

 

bMultiThreadMovement=1

bUseThreadedParticleSystem=1

bUseThreadedBlood=1

bUseThreadedMorpher=1

bUseThreadedTempEffects=1

bUseThreadedParticleSystem=1

bUseThreadedTextures=1

bUseThreadedMeshes=1

bUseThreadedLOD=1

bUseThreadedAI=1

bUseHardDriveCache=0

 

[HAVOK]

iNumThreads=2

 

 

Now, you can't use both of these together, as doing one of these changes nullifies the other. Has anyone played around with these and can supply some insight on which approach seems to be working best for you? I will try out the .ini changes for starters myself, but actually comparing the two probably takes quite a lot of testing and thus if someone has already done so, sharing it would be great!

Link to comment
Share on other sites

  • Answers 78
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

I've used the windows performance supervisor tool (probably didn't translate it correctly.)

at least the values are identical. not even 30% at MOST through a whole game session of skyrim with fights, long distance travelling, from sun rise to sun set.

Tell me, what am I doing wrong, no, tell me, WHY IS SKYRIM SO CHEAP ON MY CPU? o_O

Link to comment
Share on other sites

  • 0

That makes a little more sense, though I'm surprised at the 8% average. I'm guessing you have some of the quality settings turned down? What are you using for AA? Shadow quality?

 

The 2% figure you can toss, that's when it started gathering data before TESV.exe launched. I did a test run with ugrids at default (5), ultra settings but with custom shadows. I got an average of 22% for total.

 

And that number was in line with what I got from Windows perfmon. I also gathered data from each core, and two of them averaged 32%, and two averaged 16 - 17%.

Link to comment
Share on other sites

  • 0

Posted Image Skyrim.ini

[General]
sLanguage=ENGLISH
uExterior Cell Buffer=36
sIntroSequence=

[Display]
fShadowLODMaxStartFade=1000.0
fSpecularLODMaxStartFade=2000.0
fLightLODMaxStartFade=3500.0
iShadowMapResolutionPrimary=4096
bAllowScreenshot=1
fNearDistance=25.0000
fSunShadowUpdateTime=0
fSunUpdateThreshold=2.0
fShadowBiasScale=1.0
fDecalLifeTime=900.0000

[Audio]
fMusicDuckingSeconds=6.0
fMusicUnDuckingSeconds=8.0
fMenuModeFadeOutTime=3.0
fMenuModeFadeInTime=1.0

[Grass]
bAllowCreateGrass=1
bAllowLoadGrass=0

[GeneralWarnings]
SGeneralMasterMismatchWarning=One or more plugins could not find the correct versions of the master files they depend on. Errors may occur during load or game play. Check the "Warnings.txt" file for more information.

[Archive]
sResourceArchiveList=Skyrim - Misc.bsa, Skyrim - Shaders.bsa, Skyrim - Textures.bsa, HighResTexturePack01.bsa, HighResTexturePack02.bsa, Skyrim - Interface.bsa, Skyrim - Animations.bsa, Skyrim - Meshes.bsa, Skyrim - Sounds.bsa
sResourceArchiveList2=Skyrim - Voices.bsa, Skyrim - VoicesExtra.bsa

[Combat]
fMagnetismStrafeHeadingMult=0.0
fMagnetismLookingMult=0.0
f1PArrowTiltUpAngle=0.7 
f3PArrowTiltUpAngle=0.7

[Papyrus]
fUpdateBudgetMS=1.6
fExtraTaskletBudgetMS=1.6
fPostLoadUpdateTimeMS=1000.0
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0
iMaxMemoryPageSize=8192
iMinMemoryPageSize=256
iMaxAllocatedMemoryBytes=8388608

[Water]
bReflectLODObjects=1
bReflectLODLand=1
bReflectSky=1
bReflectLODTrees=1

[MapMenu]
fMapWorldMaxHeight=130000.0000
fMapWorldMinHeight=1500.0000
fMapWorldMaxPitch=400.0000
fMapWorldMinPitch=0.0000
fMapWorldYawRange=3600.0000
fMapWorldCursorMoveArea=0.9000
fMapWorldHeightAdjustmentForce=100.0000
fMapWorldInitialPitch=55.0000
bWorldMapNoSkyDepthBlur=1
fWorldMapDepthBlurScale=0
fWorldMapNearDepthBlurScale=0
fWorldMapMaximumDepthBlur=0
fMapWorldZoomSpeed=0.0300
fMapLookMouseSpeed=3.5000
fMapMoveKeyboardSpeed=0.003
fMapZoomMouseSpeed=15.0000
sMapCloudNIF=0

[Camera]
fOverShoulderAddY=0.0000
fOverShoulderPosZ=10.0000
fOverShoulderPosX=0.0000
fOverShoulderCombatAddY=0.0000
fOverShoulderCombatPosZ=10.0000
fOverShoulderCombatPosX=0.0000
fMouseWheelZoomSpeed=60.0000
f1st3rdSwitchDelay=0.9500
iHorseTransitionMillis=001
fOverShoulderHorseAddY=-72.0000
fOverShoulderHorsePosZ=50.0000
fOverShoulderHorsePosX=35.0000
fActorFadeOutLimit=-100
Skyrimprefs.ini

[General]
fBrightLightColorB=1.0000
fBrightLightColorG=1.0000
fBrightLightColorR=1.0000
iStoryManagerLoggingEvent=-1
bEnableStoryManagerLogging=0
[Imagespace]
bDoDepthOfField=1
iRadialBlurLevel=2
[Display]
iBlurDeferredShadowMask=16
fInteriorShadowDistance=3000.0000
fShadowDistance=4000.0000
iShadowMapResolutionSecondary=2048
iShadowMapResolutionPrimary=4096
iShadowSplitCount=2
iMaxAnisotropy=1
fLeafAnimDampenDistEnd=4600.0000
fLeafAnimDampenDistStart=3600.0000
fTreesMidLODSwitchDist=5000.0000
fGamma=1.0000
fDecalLOD2=1500.0000
fDecalLOD1=1000.0000
fSpecularLODStartFade=2000.0000
fShadowLODStartFade=200.0000
fLightLODStartFade=3500.0000
iTexMipMapMinimum=0
iTexMipMapSkip=0
iWaterMultiSamples=0
iMultiSample=4
iShadowMode=3
bTreesReceiveShadows=1
bDrawLandShadows=1
bFull Screen=1
iSize H=1024
iSize W=1280
fMeshLODFadePercentDefault=1.2000
fMeshLODFadeBoundDefault=256.0000
fMeshLODLevel2FadeTreeDistance=2048.0000
fMeshLODLevel1FadeTreeDistance=2844.0000
fMeshLODLevel2FadeDist=10000000.0000
fMeshLODLevel1FadeDist=10000000.0000
iScreenShotIndex=2
bShadowMaskZPrepass=0
bMainZPrepass=0
iMaxSkinDecalsPerFrame=25
iMaxDecalsPerFrame=500
bFloatPointRenderTarget=1
sD3DDevice="NVIDIA GeForce GTX 570"
bFXAAEnabled=0
iShadowMapResolution=4096
fShadowBiasScale=1.0000
iShadowMaskQuarter=4
iAdapter=0
iPresentInterval=1
iShadowFilter=3
bTransparencyMultisampling=0
bDrawShadows=1
[Grass]
b30GrassVS=1
fGrassStartFadeDistance=7000.0000
fGrassMaxStartFadeDistance=7000.0000
fGrassMinStartFadeDistance=0.0000
[MAIN]
bGamepadEnable=0
bCrosshairEnabled=1
fHUDOpacity=1.0000
bSaveOnPause=1
bSaveOnTravel=1
bSaveOnWait=1
bSaveOnRest=1
fSkyCellRefFadeDistance=500000.0000
[GamePlay]
bShowFloatingQuestMarkers=1
bShowQuestMarkers=1
iDifficulty=4
[Interface]
bDialogueSubtitles=0
bGeneralSubtitles=0
fMouseCursorSpeed=1.0000
bShowCompass=1
[Controls]
fGamepadHeadingSensitivity=0.0000
fMouseHeadingSensitivity=0.0125
bAlwaysRunByDefault=1
bInvertYValues=0
bGamePadRumble=0
bMouseAcceleration=0
[Particles]
iMaxDesired=750
[SaveGame]
fAutosaveEveryXMins=15.0000
[AudioMenu]
fAudioMasterVolume=1.0000
fVal7=1.0000
uID7=0
fVal6=1.0000
uID6=0
fVal5=1.0000
uID5=0
fVal4=1.0000
uID4=0
fVal3=1.0000
uID3=94881
fVal2=0.4000
uID2=466532
fVal1=1.0000
uID1=554685
fVal0=0.8000
uID0=1007612
[Clouds]
fCloudLevel2Distance=262144.0000
fCloudLevel1Distance=32768.0000
fCloudLevel0Distance=16384.0000
fCloudNearFadeDistance=9000.0000
[TerrainManager]
fTreeLoadDistance=75000.0000
fBlockMaximumDistance=1000000.0000
fBlockLevel1Distance=300000.0000
fBlockLevel0Distance=100000.0000
fSplitDistanceMult=4.0000
bShowLODInEditor=0
[NavMesh]
fObstacleAlpha=0.5000
fCoverSideHighAlpha=0.8000
fCoverSideLowAlpha=0.6500
fEdgeFullAlpha=1.0000
fEdgeHighAlpha=0.7500
fEdgeLowAlpha=0.5000
fTriangleFullAlpha=0.7000
fTriangleHighAlpha=0.3500
fTriangleLowAlpha=0.2000
fLedgeBoxHalfHeight=25.0000
fEdgeDistFromVert=10.0000
fEdgeThickness=10.0000
fPointSize=2.5000
[Trees]
bRenderSkinnedTrees=1
uiMaxSkinnedTreesToRender=20
[Decals]
uMaxDecals=1000
bDecals=1
bSkinnedDecals=1
uMaxSkinDecals=100
uMaxSkinDecalsPerActor=60
[LOD]
fLODFadeOutMultObjects=15.0000
fLODFadeOutMultItems=8.6000
fLODFadeOutMultActors=15.0000
fLODFadeOutMultSkyCell=1.0000
[Launcher]
bEnableFileSelection=1
bShowAllResolutions=1
uLastAspectRatio=2
[BlurShaderHDR]
bDoHighDynamicRange=1
[BlurShader]
bUseBlurShader=0
[Water]
iWaterReflectHeight=1024
iWaterReflectWidth=1024
bUseWaterDisplacements=1
bUseWaterRefractions=1
bUseWaterReflections=1
bUseWaterDepth=1
Edit:

for the performance guide or sth like that:

https://perfectworlds.wordpress.com/2011/12/22/a-quick-and-basic-elder-scrolls-skyrim-install-and-optimise-guide-for-older-pcs/


+fullproc setting didn't increase the cpu usage by any bit, as well as increasing ugrids to 7. although i did get a game freeze using exterior cell buffer 64. I'll increase it again and try it another time using skse this time.

Link to comment
Share on other sites

  • 0

I used your nVidia settings and changed my AA/AF to match yours and I dropped 19% avg. Then disabled RCRN/ENB and it dropped to 17%. Then used your entire Skyrim.ini and SkyrimPrefs.ini and dropped to 16%. Now that figure is somewhat misleading, as one core averaged about 25%, one 20%, one 15%, and one 10%. All of my tests were also running around Whiterun.

 

But, I finally got down to an average of 8% by using your configs and loading into the world and just standing there, doing nothing.

Link to comment
Share on other sites

  • 0

Well I'm running through half Skyrim and there isn't a bit increase in CPU usage.

I keep getting permanent freezes entering the outerrims of whiterun using a uGrids value higher than 7. Increasing Exterior cell buffer to 100 didn't help a lot

could you tell me your settings? I already increased SGSSAA to 4 and use 4xMSAA instead of 2xSSAA.

Any other tweaks you did?

Link to comment
Share on other sites

  • 0

Go to Start->Run and type in "perfmon". In the left pane, click on "Performance Monitor" which will start the gathering process. Above the graph, hit the pause button. Below the graph, right click on the default counter and select "Remove All Counters" (click OK). Then above the graph, click the + button which will open an "Add Counters" window. Scroll to "Processor", expand the group and select "% Processor Time". Below that is an area titled "Instances of selected object:". Select " and click the "Add >>" button.

 

That will give you a counter for every CPU core, and one for "_Total". Clicking on any one of them while it's gathering statistics will show you the Last, Average, Minimum, and Maximum values in the appropriate boxes. Then click on the Instance counter for "_Total" and click on the Highlight button above the graph (looks like a pen). That will make the Total value in the graph bold.

 

Then click the Play button above the graph and launch Skyrim. Do your normal testing, running around for a couple minutes, then exit Skyrim. Go to the Process Monitor window and hit the Pause button to stop gathering information.

 

This is what it looks like on my system before starting the monitor:

 

Posted Image

Link to comment
Share on other sites

  • 0

Ok, so here are the results using all my new settings with ugrids 5 and uexterior cell buffer 144:

 

Total: Min: 0,0 Avg: 9,025 Maximum: 33,303

Core0: Min: 0,0 Avg: 27,33 Max: 92,153

Core1: Min: 0,0 Avg: 1,5 Max: 57,670

Core2: Min: 0,0 Avg: 19,616 Max: 70,312

Core3: Min: 0,0 Avg: 0,885 Max: 44,637

Core4: Min: 0,0 Avg: 9,609 Max: 59,157

Core5: Min: 0,0 Avg: 0,932 Max: 35,937

Core6: Min: 0,0 Avg: 13,257 Max: 82,737

Core7: Min: 0,0 Avg: 0,678 Max: 26,562

 

 

Next time I'll add the TESV.exe process, too.

Link to comment
Share on other sites

  • 0

So, new results with TESV.exe and oh wonder another CtD closing in on whiterun after 5 minutes of gameplay.

Core results are about the same but TESV.exe had a maximum cpu usage of 140% (explain that somehow) and an average of 65%.

This test had been done with OC'ed graphics card and cpu. maybe that's the reason for the 140%...

Link to comment
Share on other sites

  • 0

I have a i5-760 @2.8Ghz

And glad I'm not the only one that would freak out in that situation! :)

 

 

What is your mobo?

 

 

 

I also use that exact same processor. It is highly OC-able, and I have gone from 2.8 to 4.0 GHz, completely stable. Pretty significant performance increase too. My temps NEVER get above 75C and that only rarely when I am running Prime or stressing the CPU for stability testing.

 

I can give you specs that work well for the DP55KG mobo (my board), but you will need to pick up some quality RAM capable of running @ 1600. I use a particularly high-spec Corsair variety (with XMP) that I can recommend (7-8-7-20). My ENB results (do the same for a good compare).

 

Similar specs could also work for your board though.

Link to comment
Share on other sites

  • 0

Ok, so here are the results using all my new settings with ugrids 5 and uexterior cell buffer 144:

Total: Min: 0,0 Avg: 9,025 Maximum: 33,303

Core0: Min: 0,0 Avg: 27,33 Max: 92,153

Core1: Min: 0,0 Avg: 1,5 Max: 57,670

Core2: Min: 0,0 Avg: 19,616 Max: 70,312

Core3: Min: 0,0 Avg: 0,885 Max: 44,637

Core4: Min: 0,0 Avg: 9,609 Max: 59,157

Core5: Min: 0,0 Avg: 0,932 Max: 35,937

Core6: Min: 0,0 Avg: 13,257 Max: 82,737

Core7: Min: 0,0 Avg: 0,678 Max: 26,562

Next time I'll add the TESV.exe process, too.

 

Now those results explain a lot. I assume your CPU has hyperthreading which is why you have 8 cores showing up, and 4 of them pretty much unused. Those 4 nealry idle cores are bringing the average way down and skewing the results. If you average the values from the 4 most used cores, you get just over 17%.
Link to comment
Share on other sites

  • 0

 

I have a i5-760 @2.8GhzAnd glad I'm not the only one that would freak out in that situation! :)

 

 

 

What is your mobo?

 

 

I also use that exact same processor. It is highly OC-able, and I have gone from 2.8 to 4.0 GHz, completely stable. Pretty significant performance increase too. My temps NEVER get above 75C and that only rarely when I am running Prime or stressing the CPU for stability testing.

 

I can give you specs that work well for the DP55KG mobo (my board), but you will need to pick up some quality RAM capable of running @ 1600. I use a particularly high-spec Corsair variety (with XMP) that I can recommend (7-8-7-20). My ENB results (do the same for a good compare).

 

Similar specs could also work for your board though.

 

 

My mobo is a Gigabyte P55-USB3. I do have RAm capable of running at 1600 and higher (8gb Corsair Vengeance that are capable of running @ 1866, and 4gb of Corsair XMS3 that can go up to 1600. I only have stock cooling on the CPU, and have a Fractal Design Refine R3 chassi, again just with the coolers that came with it. Would be very interested anyways in safe OCing. :)

 

I did run the ENB test, but that was before getting new HDD and the 8gb Corsair Vengeance RAM that I picked up last week, so will have another go. Got 12.61 last time.

Link to comment
Share on other sites

  • 0

I recall having a turbo option on a motherboard at one time, but never used it. The biggest problem that you'll run into when motherboards attempt to automate OC (which I'm not sure if that is what this Turbo mode is doing), is that they pump the VCORE up too high which will shoot your temps up along with it.

 

 

Correct, Turbo is Intel's auto OCing system. You can control V-droop as well, and there are many fine-tuning options.... the P55-Extreme Intel boards are some of the best for OCing. Just google DP55KG and overclock.

 

Here are the doc for that board

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.