- Joined
- Oct 28, 2018
- Messages
- 524
- Reaction score
- 934
Hey guys,
as I was struggling a bit with the framrate in my HP Reverb G2 in ACC at the last races, especially at race starts, I tried to get some more grunt out of my CPU and RAM to limit the CPU bottleneck you have in ACC in scenarios with a lot of enviroment and/or cars visible. I optimized my CPU by using the AMD curve optimizer and the Boost Override in the BIOS settings of the mainboard and the RAM by increasing the frequency and tighten the timings. I will show you what improvements I could achive and how I done this optimizations.
What we do now with the Curve Optimizer, is to find an optimium per core of frequency and the requested voltage. This itself does not really improve performance, but it makes the processor using a bit less energy and thus running a bit cooler to get the same results.
Performance is then improved by the Boost Override setting. This setting just ups the processor frequency curve in 50Mhz steps up to an increase of 200Mhz (on my Gigabyte Board).
Lets get started!
For stability test we now use the CoreCycler Tool.
When you finished that step, we want to check if our system is fully stable, so we increase the 'RuntimePerCore' to something like 20-30min and perform a stability test run over night. If you find any errors now, you still need to increase the value by 3 again and rerun the long test, so this step can be very time consuming.
After we found a stable setting for an overnight run, we want to increase the performance with the Boost Override setting. You can either start directly with +200Mhz, which gives the highest performance but on the other hand could be unstable, or you take the safe way and only use +100Mhz first and increase that if another overnight run was stable. There is no best way to do it, maybe the only advise I could give is to go the safe route with big processors like the 5900X and 5950X and use only +100Mhz at first. With the 5600X and the 5800X you can probably be a bit more aggressive at the beginning and go straight to +200Mhz.
Optimized CPU with 200Mhz Boost Override
For stability test we launch the DRAM calculator again.
Green is most beneficial, red the least.
This chapture is almost endless as you can always try to optimize the timings of the RAM a bit further and then test it again. Takes endless hours and a lot of nights to find the final setting
DRAM Calculator Safe - 3800Mhz CL16
Tuned - 3800Mhz CL16 with tight subtimings
Lap1 - XMP setting vs. 3800Mhz Safe settings
Lap2 - XMP setting vs. 3800Mhz Safe settings
Avg. framerate and the percentils are increased by around 12-13% and thats only the Safe setting from the DRAM calculator. The results in ACC for my the Tuned settings I used in the AIDA benchmark are a little bit cropped as they are worse than the Safe settings from the calculator. I try to redo them in the next days to see where I ended up for now.
Next step will be, to try to increase the frequency a bit more or to get to 3800Mhz CL14. But for now I have done enough overnight runs, my system needs a cooldown lap
Cheers,
Exited
as I was struggling a bit with the framrate in my HP Reverb G2 in ACC at the last races, especially at race starts, I tried to get some more grunt out of my CPU and RAM to limit the CPU bottleneck you have in ACC in scenarios with a lot of enviroment and/or cars visible. I optimized my CPU by using the AMD curve optimizer and the Boost Override in the BIOS settings of the mainboard and the RAM by increasing the frequency and tighten the timings. I will show you what improvements I could achive and how I done this optimizations.
CPU Optimizazions
Needed SW-Tools
Like I said the CPU Optimizations are only options in the mainboard BIOS, so you don't really need any tools to improve the performance here. But you can test the stability of your settings much better and easier if you use the following little tool. For performance measurements we use Cinebench R23.- Core Cycler
- Download here: https://github.com/sp00n/corecycler
- Short explanation what the tools does: https://www.overclock.net/threads/corecycler-tool-for-testing-curve-optimizer-settings.1777398/
- Cinebench R23
- Download: https://www.maxon.net/en/cinebench/
- HWinfo
- https://www.hwinfo.com/download/
- for monitoring the CPU temps
What to do?
Before I write down, what we actually change in the BIOS I will start with a short explanation what I understood the AMD Curve Optimizer is actually doing to give a direction where we need to go afterwards. Each core in our Ryzen CPU needs a certain voltage to get to a certain frequency. The processor checks which frequency he needs (workload, temperature, etc.) and tells the motherboard which voltage should be applied per core. This requested voltage seems to be higher for "bad" cores (core needs more voltage for certain frequency than other cores) than for "good" processor cores. AMD does that to be safe with the bad cores, so that even those cores are achieving a reasonable frequency and performance.What we do now with the Curve Optimizer, is to find an optimium per core of frequency and the requested voltage. This itself does not really improve performance, but it makes the processor using a bit less energy and thus running a bit cooler to get the same results.
Performance is then improved by the Boost Override setting. This setting just ups the processor frequency curve in 50Mhz steps up to an increase of 200Mhz (on my Gigabyte Board).
Lets get started!
- Download the tools
- Do one SC and MC run with CB23 to get your stock results
- Set 'Minium Test Duration' to Off
- Reboot your PC and go into the BIOS
- Set the PBO Limits to the Limits of your processor so that we don't violate the recommended values by AMD by some error
-
- Navigate to the Curve Optimizer option (can be different on every manufacturer BIOS)
- Activate it
- Set the Sign to 'Negative'
- Change the value for all cores
- on single CCD processors like the 5600X and 5800X you can start with 15
- on two CCD processors like the 5900X and 5950X I would start with 10
- Save that and Boot up your PC
For stability test we now use the CoreCycler Tool.
- Open up HWInfo
- Go to the Core Cycler directory
- Open up the Config.ini File
- Set 'RuntimePerCore' to 2-4min
- The longer the better the result, but bear in mind that a 2min test per core takes already 16min on a 8core processor for an initial conclusion how stable your system is still running
- Set 'NumberofThreads' to 2 to active Hyperthreading
- Set 'maxIterations' to something like 20
- Save the Config and run the tool with the 'Run CoreCycler.bat' File
- A console window opens we you can see the progress and in case of an error, which core produced the error
- Check the CPU temps, they should be always below 90°C, otherwise your CPU is too hot and you have thermal throttling
- every core which passed the test
- increase the magnitude by 5, this means we are going from e.g. -15 to -20
- every core which failed the test
- decrease the magnitude by 3, this means we are going from e.g. -15 to -12
When you finished that step, we want to check if our system is fully stable, so we increase the 'RuntimePerCore' to something like 20-30min and perform a stability test run over night. If you find any errors now, you still need to increase the value by 3 again and rerun the long test, so this step can be very time consuming.
After we found a stable setting for an overnight run, we want to increase the performance with the Boost Override setting. You can either start directly with +200Mhz, which gives the highest performance but on the other hand could be unstable, or you take the safe way and only use +100Mhz first and increase that if another overnight run was stable. There is no best way to do it, maybe the only advise I could give is to go the safe route with big processors like the 5900X and 5950X and use only +100Mhz at first. With the 5600X and the 5800X you can probably be a bit more aggressive at the beginning and go straight to +200Mhz.
Results
Stock 5800XOptimized CPU with 200Mhz Boost Override
RAM OC
Needed SW-Tools
For RAM OC you also don't really need SW-Tools, but they make life much easier, even more when you are doing this for the first time.- Thaipoon Burner
- Download: http://www.softnology.biz/
- DRAM Calculator for Ryzen
- ZenTimings
- Download: https://zentimings.protonrom.com/
- Aida Extreme Trial Version
- Download: https://www.aida64.de/downloads
What to do?
I can actually tell you details of what we are doing here. On one hand we are trying to speed up our internal memory controller of the CPU, the Infinity Fabric, we are trying to speed up the RAM for the same amount and we try to minizie those preparation, write, copy and end timings in our RAM memory to make data transfer faster. What especially every timing does for the RAM, I have no clue, but it is actually not really needed on the other handGetting the stock values
- Load the XMP profile of your RAM in the BIOS
- Boot up the PC
- Launch Aida64
- Launch the Cache and Memory Benchmark
- Tools -> Cache and Memory Benchmark
Testing out the Infinity Fabric
The first thing we want to do, is to check how fast our memory controller is able to run.- Set the SoC voltage to 1.05-1.125V (start with the higher)
- manipulate the IF frequency (or FCLK frequency) to 1900Mhz
- Try to boot up
- if not, reduce the frequency one setting
- Once booted, start Aida64 and launch the Stabiliy Test
- Tools -> Stability Test
- Check 'Stress cache' and 'Stress System memory'
- everything else is Off
- Test for up 10min
- If this setting was stable, go to Bios again and up that Frequency
- Test with Aida again until you reach 2100Mhz FCLK clock
- If this is still stable -> Congrats your CPU has a very very good memory controller
Get an initial RAM setting from the DRAM Calculator
Now we know how fast our memory controller is able to run, but how fast will our RAM kit be? For that we do the following.- Open up Thaipoon
- Click on Read and then on the first memory bank
- Click on Report, scroll all the way down to 'Show delay in nanoseconds' and click that one time
- Click on Export and save the file
- Open up the DRAM Calculator.exe
- click on 'Import XMP' and import your html file
- set the frequency in the left column to your max stable FCLK/IF frequency * 2
- A frequency of the IF od 1900Mhz runs in a 1:1 ratio with the RAM at 3800Mhz
- Click 'Calculate Safe' and 'Calculate Fast' and export a screenshot for each calculation
- if that frequency is not supported just go setting for setting lower until you can calcuate a RAM timing setting
- Send those screenshots to your laptop or mobile, becase we will need them in a second the Bios
- set your DRAM voltage to the Max. value suggest by the DRAM calculator
- should be around 1,42-1,5V
- I would not exceed 1,5V as this cause quite high RAM temperatures
- Set UCLK DIV1 Mode to 'UCLK==MEMCLK' to make the IF and the RAM run at a 1:1 ratio
- now copy all those values of the middle red rectangle into your BIOS (Stable calculation!)
- Safe those values in a profile in your BIOS and try to boot up your PC
- If this is not working, try to up the DRAM voltage a click (don't exceed 1,5V) or reduce the frequency of IF and RAM one click
Test the settings for performance and stability
For performance we again run a Aida64 Cache and Memory benchmark and check if our Read Value increased and the latency decreased. This is the direction we want to have.For stability test we launch the DRAM calculator again.
- Go to 'Membench'
- Set 'Membench mode' to Custom
- Set a 'RAM Size' which is 2-3Gb below your free physical RAM memory (see bottom right corner)
- Set 'Taskscope' to 10000% (this takes already 3-4h)
Optimizing RAM further
If the stable setting of the DRAM calculator works fine on your system you can try and see if the Fast setting is also running stable. If this is also running stable you can begin to decrease the timings manually even further. The following picture will help you to find the most beneficial settings in terms of performance and latency.Green is most beneficial, red the least.
This chapture is almost endless as you can always try to optimize the timings of the RAM a bit further and then test it again. Takes endless hours and a lot of nights to find the final setting
Results
Aida
Stock - 3200Mhz CL14DRAM Calculator Safe - 3800Mhz CL16
Tuned - 3800Mhz CL16 with tight subtimings
Assetto Corsa Competizione
I took the Nürburgring setting of my graphic card comparison and only changed the ingame time to 8am and upped the AI number to 29. Then I did the benchmarks by following the AI for two laps and captured the frame rate. For details check the other thread:[Benchmarking] Nvidia 1080 Ti vs. Nvidia 3080 vs. AMD 6900XT
Hey guys, since I had the chance (you really have to say it like that at the moment :confused:) to buy a RTX 3080 FE and a Radeon 6900XT pretty much at the same time, I thought I will do some benchmarking between the two new cards against my old EVGA 1080 Ti. For now I did only benchmarks in...
revolutionsimracing.com
Lap1 - XMP setting vs. 3800Mhz Safe settings
Lap2 - XMP setting vs. 3800Mhz Safe settings
Avg. framerate and the percentils are increased by around 12-13% and thats only the Safe setting from the DRAM calculator. The results in ACC for my the Tuned settings I used in the AIDA benchmark are a little bit cropped as they are worse than the Safe settings from the calculator. I try to redo them in the next days to see where I ended up for now.
Next step will be, to try to increase the frequency a bit more or to get to 3800Mhz CL14. But for now I have done enough overnight runs, my system needs a cooldown lap
Cheers,
Exited
Last edited: