AMD Ryzen Game Performance Fix?

Discussion in 'AMD Processors' started by SvenBent, Mar 4, 2017.

  1. Ocellaris

    Ocellaris Ginger Ale, an alcoholic's best friend.

    Messages:
    17,591
    Joined:
    Jan 1, 2008
    Where are some of your benchmarks showing any improvement using this? You made a tool and you want other people to experiment with it for you. You would be doing a lot better if you actually provided some performance data instead expecting others to do it for you.
     
    Last edited: Mar 19, 2017
  2. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    Is that the correct arrangement for logical and virtual cores confirmed or was that used for a description on the reasoning?
     
  3. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    1: Look up
    2: Thats one of the reasons (The other, and more important, is CCX) we have this thread is to get benchmarks on this. So why don you try it out? The software is free or you can do it manually with affinity.


    This has been the correct layout for ALL Intel CPU's I've tested that every 2 logical cores are one physical core but please not i only have access to older generations of Core i7/I5/I3

    I believe it the same way for the CMT desing on the previous generations of AMD CPU's but im unsure on this but i can double check it.
    You would just have to replace Logical core with physical inter gear core. and physical cores with FPU
     
  4. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    It is just working on the threads of the main process as it is here most of the load is.
     
  5. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    I could test like Cinebench with core 0 and 1 and then compare it to core 1 and core 2 using affinity to confirm. Do that in the morning.
     
  6. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Thats pretty much how i've been doing it. which is why most my testing is with cinebench.
    1: easy to get
    2: distributed load very good among threades (7-zip is not that good at this)
    3: free :D
     
  7. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    I got my core numbers wrong, test 0 and 1 (same core) and then 0 and 2 (two different cores).
    I could also compare 6 and 8 and compare it to the test for 0 and 2 to see if going across the two CCXs makes a difference (in this case I would expect a gain due to each having a dedicated L3 cache). But then most work in this case is probably done with the L1 and L2 cache, have to test to see.
     
  8. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    For CCX distribution &-zip would probably be best in 2 thread mode. because 7-zip worksin threads pairs. and the 2 threads in a pair are depending on data from thread 1 to thread 2 (one does the data modeling modelling the other does the entropy coding)
    So they should be hit hard once they are not on the same CCX due to all data has go between the threads


    Just remember to do any testing with core parking disabled if you are running windows 7
     
    Last edited: Mar 19, 2017
  9. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    Win 10 and core parking in High Performance mode is off, so that is what I will use.
     
    SvenBent likes this.
  10. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Just a small update.
    I've finnally made a more smarter "No SMT conflicts" method. now its no a dumb aprroches (enable or disable it)
    it should now automatically disable when software has enough thread to utilize more than physsical cores. and enable it self when the main process has to few CPU heavy thread.

    I am compiling and uploading tommorow
     
  11. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    Well using Cinbench does not work, set Cinbench Affinity for 0 and 1, hit run and it uses all the cores/threads - go back into process affinity and all cores are checked. Looks like the program is automatically configuring the cores/threads. Did this several times, applying closing and reopening affinity which shows core 0 and 1 but as soon as you start to render it uses all the cores.

    Now when I do the single core render from the program - the Task manager shows four cores being used and not just one - weird - something is not right here. I would expect one core to be pegged not four at 20-50%. That is all I can do today.
     
  12. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Sorry that s my fault i completle forgot about this.
    You have to set affinity AFTER you click start render. for some reason cinebench make sure to set affinity to all whenever you hit that start button.
    I had forgotten about this issue.
     
  13. mat9v

    mat9v [H]Lite

    Messages:
    98
    Joined:
    Dec 23, 2005
    Process Lasso has a function to constantly monitor and correct program affinity, you could try that.
    Forced Mode (continuously reapply settings) in Options.
     
  14. CSI_PC

    CSI_PC 2[H]4U

    Messages:
    2,080
    Joined:
    Apr 3, 2016
    Is Lasso fully working-compatible with Ryzen?
    I read conflicting reports from Anandtech forum but maybe down to user settings *shrug*
    Thanks
     
  15. mat9v

    mat9v [H]Lite

    Messages:
    98
    Joined:
    Dec 23, 2005
    Worth a try anyway. I think they had problems with bios there so maybe a combination? There were some strange things happening like with affinity set programs were running on only 2 cores or something like that...
     
    CSI_PC likes this.
  16. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    I am not confident in trying tweaking programs while still testing out, configuring my new system. Once I stabilized my OCs and settings I will have more leeway in exploring other options.

    I think maybe you might think in getting a RyZen system to really get down into the nit and gritty for your software development. The tool looks very cool but I am not at a point to test it out yet. My earliest estimates would be 2 weeks. I can do tests that are already part of the OS or other software I use, thinking of using maybe Aida64 with the affinity test to verify the core configurations, that gives very precise measurements or data.
     
  17. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Ryzen is definatly going to be in my next build becuase must of my CPU power is beeing utilized for non gaming task. i do a severe among of data pattern recognition and brute force compression optimization. we are talking task thatcan scale to sevelrea hundred threads and easily takes weeks on my current system.
    Sadly my money situation is not for it.
    But i do now thee SMT fixing stuff for intel I3 I5 i7 and xeon are working i've tested that over several dozen systems

    Its more the CCX im interestde in or at leats just which (logical) cores are in which CCX
     
  18. noko

    noko 2[H]4U

    Messages:
    2,515
    Joined:
    Apr 14, 2010
    Well that need will probably grow when the server chips hit with multiple CCXs - so being ahead of game, even if a little could pay off big. At least it will help future developers maybe understand earlier what works better on threading.
     
  19. CSI_PC

    CSI_PC 2[H]4U

    Messages:
    2,080
    Joined:
    Apr 3, 2016
    Can I suggest those looking to test this also consider AoTS.
    The game improves works with SMT in a positive/neutral way and also scales to work well beyond 4 Core CPUs.
    However it is a good example for this program because disabling SMT improves performance by around 10% on Ryzen and also does not scale performance to the 8 primary cores (sensitive to the CCX latency).

    So has a bit of everything to improve.

    Here shows negative performance with SMT and also negative performance scaling beyond 4 Cores (inter-CCX) relative to Intel.

    [​IMG]


    Shows here working positive/neutral with SMT on Intel for 7700K and 6900K

    [​IMG]


    Cheers
     
  20. CVNet1

    CVNet1 [H]ard|Gawd

    Messages:
    1,069
    Joined:
    Oct 10, 2002
    So SvenBent, how many people do you have testing your Ryzen SMT/CCX Affinity forcing program?

    After it is working as desired, do you think it will be mostly automated, or do you expect to have users set profiles for the specific processes that need to be targeted for modified processor affinity settings?
     
  21. toxsickcity

    toxsickcity n00bie

    Messages:
    30
    Joined:
    Mar 22, 2014
    I found a program recently that saves affinity settings and automatically reapplying it every time the app runs

    It simply adds a checkbox to task manager to save settings..

    I forget the name

    I just brought a ryzen and will trial this over next few days
     
  22. toxsickcity

    toxsickcity n00bie

    Messages:
    30
    Joined:
    Mar 22, 2014
    Prio is the app you looking for..
     
  23. KD5ZXG

    KD5ZXG n00bie

    Messages:
    54
    Joined:
    Mar 24, 2017
    Your fixer is a praiseworthy effort.

    I'm having a tough time trying to observe where focused threads go.
    Perhaps when I put task manager in focus, that confuses things???
    I can barely switch fast enough to catch the tail end of what might
    have been happening earlier.

    Can Ryzen fixer be made to ignore task manager in focus? When
    might we experiment with your new Mercury?
     
  24. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    I am so sorry for late feedback. for some reaons i didnt get alarms on this thread.

    Currently im just working on SMT and not so much CCX issues. even thoug the solutions are almost the same.
    In my current experimental build SMT swithcing it automatic. but i butched up the code so it goes haywire if i also enable "No ccx switching"
    The goal so far is that you have to select either "No SMT conflcits" or "no CCX swithing" and it will automatically apply this when its appriore for you game.
    no profile is needed.

    Once this automatic mode is working. Then i will look into profile. so you can force a specific handling of SMT and CCX depedning on what process is you active process




    Ryzen fixer is a cutout of Project Mercury it mean it applies the settings and removes them immediately when you change app.
    Similiar programs use a time loop cycle with make them slow to response and sukc up CPU, power. Avoiding the time loop cycle is actually a thing im pretty proud of.
    nevertheless it means you cant switch to taskmanager to see affinity because it gets release the moment you click taskmanager.

    One way to see it is to use the performance pane and notice how the load is now only on certain cores instead of spread out.
    I've tried to find a better affinity monitoring tool but came up short

    I cant easily set it to ignore taskmanager because Project mercury of this moment work on PIDs and PID are different from system to system.
    However i could disable the part that restore affinity when you leave it.

    I have 4 branches of PRoject mercury atm.
    The public released one (dont thinkg it has"no CCX functionaltiy in it yet"
    The beta ( basic CCX functionalty
    Experimental ( Intelligetn SMT handling but ass broken "no CCX swithing"
    Uncompiled (bug fixes from the public release

    i need to consolidate some of that shit and i will release a new public and beta

    I'll send you info to get the beta/experimental build
     
  25. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Just fixed some bugs in Project Mercury in regards to core park disabling and a lot of new bugs i had introduced in my current code to try automatic SMT control.
    for some reason affinity recover broke. so i had to fix that as well. that what you get for having 3 different branches you are working on.
    nevertheless a new version should be uploaded tomorrow both public and beta ( eta has the CCX no switching feature.

    I have asked AMD for a testkit but I'm not holding my breath for it. but it would make me able to run my test in regards to CCX good/bad things myself
     
  26. toxsickcity

    toxsickcity n00bie

    Messages:
    30
    Joined:
    Mar 22, 2014
    Hey guys..

    I like testing stuff, i have a few interesting benches for you to look at.
    I have to say with simply using affinity not much improvement but some. And not at high resolutions!

    I use vanilla skyrim and I play the intro at 720p and fraps it. It has automated moving and i dont reposition the camera view.
    This way the engine is loading new textures etc.. and each retest is very much the same
    I use to bench walking in a straight line but the sandbox game type is often causing a npc or animal to effect the bench

    I tried your app using that google link on first post, upon running, it brought up memory access read errors for hwinfo app and another i forgot.

    But it ran skyrim and i benched the intro and fraps it

    I have interesting results.. looks to improve performance i will reveal more later..

    Anyway about thread usage

    I have found thus far that running a game with even threads only, provides best gaming
    Not much increased.. about 2-3%..
    I will post my findings later..

    I am intrigued by your app and wait for the update

    I hear ryzen relies on ram speed and i am excited to replace my 2133mhz with 3000mhz and see if it will make much difference...
    Currently for testing i got a single 4gb ddr 2133 ram.
    I will run same tests with a single 8gb corsair 3000mhz
    Than i will retest with dual channel!

    I hope that my testing will help with development, if not than something to read haha
     
    Last edited: Mar 28, 2017
  27. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Thank you for the feedback. it can be difficult to show it in game as mostly they are GPU dependent so i think it more evident in minimum FPS.
    I'll try to see what the bug with hwinfo can be. however i think i have lost he code for ryzen game fix.
    its a part of project mercury and i kinda just went on developing on project mercury

    2-3% is all im asking for :D im not expectiong 50% increase. somewhere along the line of 0-15%. Cinebench did 14% and that pure CPU so under games i expect the different to be smaller.

    i have just uploaded a beta of Project mercury that can both lock you game into the samme ccx and disable SMT and both at the same time.

    I'll give you a login code in PM. then you can see if the SMT fix is better than the CCX swith and if combined them help outs.
    Stuff like that will help me make the automatic version making smarter decisions



    Also if you happen to check cinebench you need to clik on something else than cinebecnh and then back onto cinebench as soon asyou see the orange render boxes. that way you set the affinity after CB has changes its own affinity
     
  28. toxsickcity

    toxsickcity n00bie

    Messages:
    30
    Joined:
    Mar 22, 2014
    Okay,

    I am trying my Best to keep this clear as possible..
    The Fallout4 is looking ahead in the stadium where a fight between two npcs thinking they are a synth! the scene lasta 3 minutes.
    Skyrim is the intro part. I run ENB hack only to allow FPS over 60! no graphic mods just vanilla game.
    The resolutions are choosen at 720p.

    I have to say, memory does play a big part in performance, going from 2133 to 2666 didnt do much as shown below!
    if you don't already have.. go get high speed memory, NOW! I seen major improvement from 2666 to 2933!

    Please remember this round of benches are cpu bound, not GPU! so I doubt you will see alot of improvement when playing games at high resolution due to the gpu slowing things down!


    1 Single Stick Hyper X 2133 RAM 4GB DDR4 @ 2133MHZ


    2017-03-29 13:41:50 - Fallout4 Threads 0,2,4,6,8,10,12,14 enabled
    Frames: 8791 - Time: 180000ms - Avg: 48.839 - Min: 2 - Max: 52

    2017-03-29 13:45:48 - Fallout4 Threads 0-15 Enabled + Ryzen Tweak App
    Frames: 9124 - Time: 180000ms - Avg: 50.689 - Min: 45 - Max: 53




    1 Single Stick Corsair 3000MHZ 8GB DDR4 @ 2133MHZ

    2017-03-29 13:57:28 - Fallout4 Threads 0-15 Enabled + Ryzen Tweak App
    Frames: 9568 - Time: 180000ms - Avg: 53.156 - Min: 41 - Max: 55

    2017-03-29 14:01:11 - Fallout4 Threads 0,2,4,6,8,10,12,14 enabled
    Frames: 9492 - Time: 180000ms - Avg: 52.733 - Min: 46 - Max: 55



    2 Sticks (Dual Channel) 3000MHZ 16GB DDR4 @ 2133MHZ

    2017-03-29 14:10:10 - Fallout4 Threads 0,2,4,6,8,10,12,14 enabled
    Frames: 10673 - Time: 180000ms - Avg: 59.294 - Min: 31 - Max: 119

    2017-03-29 14:14:13 - Fallout4 Threads 0-15 Enabled + Ryzen Tweak App
    Frames: 10314 - Time: 180000ms - Avg: 57.300 - Min: 46 - Max: 59




    2 Sticks (Dual Channel) 3000MHZ 16GB DDR4 @ 2666MHZ

    2017-03-29 14:36:33 - TESV Threads 0,2,4,6,8,10,12,14 enabled
    Frames: 13427 - Time: 180000ms - Avg: 74.594 - Min: 36 - Max: 107

    2017-03-29 14:40:25 - TESV Threads 0-15 Enabled + Ryzen Tweak App
    Frames: 13569 - Time: 180000ms - Avg: 75.383 - Min: 43 - Max: 110




    2 Sticks (Dual Channel) 3000MHZ 16GB DDR4 @ 2933MHZ


    2017-03-29 14:50:23 - TESV Threads 0-15 Enabled + Ryzen Tweak App
    Frames: 14730 - Time: 180000ms - Avg: 81.833 - Min: 46 - Max: 120

    2017-03-29 14:54:33 - TESV Threads 0,2,4,6,8,10,12,14 enabled
    Frames: 13947 - Time: 180000ms - Avg: 77.483 - Min: 46 - Max: 112


    ------------------------------------------------------------------------------------------------------------

    2017-03-29 15:00:19 - Fallout4 Threads 0-15 Enabled + Ryzen Tweak App
    Frames: 11374 - Time: 180000ms - Avg: 63.189 - Min: 56 - Max: 65

    2017-03-29 15:07:42 - Fallout4 Threads 0,2,4,6,8,10,12,14 enabled
    Frames: 11143 - Time: 180000ms - Avg: 61.906 - Min: 55 - Max: 64
     
    Last edited: Mar 29, 2017
  29. toxsickcity

    toxsickcity n00bie

    Messages:
    30
    Joined:
    Mar 22, 2014
    To get to the similar results of ryzen app
    You can use windows task manager switch task from game to task manager use affinity and enables threads
    0,2,4,6

    I get similar results to ryzen app

    A free app called prio can saves the affinity so you dont have to change affinity everytime
    Prio remembers affinity for each app or game

    I find the murcury app does not work as well as the older ryzen performance app
    I think this is due to selecting performance tweak type. Might not be activating properly thus not activly changing affinity

    I also notice ryzen performance app forces all threads to 16 usable.
    When using prio this murcury app didnt force the app to use 16 threads and the prio would only run my perferred threads and actually cause game to run slower.
     
  30. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008




    You can use windows task manager switch task from game to task manager use affinity and enables threads
    0,2,4,6
    I get similar results to ryzen app


    Ryzen gameFixer does the same it just does it automatically whenever you you active you game. so you should experience the same behavioer. just less to fiddle with


    A free app called prio can saves the affinity so you dont have to change affinity everytime
    Prio remembers affinity for each app or game

    The problem wit prio is you need to set it up for all your games you want to use it on
    With Project Mercury. just just enable one tic in the settings and you are going whatever you are playing one of you older games or a brand new installed one.


    I find the murcury app does not work as well as the older ryzen performance app
    I think this is due to selecting performance tweak type. Might not be activating properly thus not activly changing affinity


    The code is the same. Ryzen Game fix is literally copy pasted from withing Project Mercury. unless some mistake poped up it should be identical as well
    however I do not have the sourcecode for ryzen performance fix anymore, so i cant 100% confirmed it.


    I also notice ryzen performance app forces all threads to 16 usable.
    When using prio this murcury app didnt force the app to use 16 threads and the prio would only run my perferred threads and actually cause game to run slower.


    I am not sure i understand what you are trying to say her by forcing it to use all 16 threads.
    again Ryzen game fix is simply been copied pasted form Project Mercury.
    however icnat recall if Ryzen GAme fix adjuster it to lock on one CCX ( aka the first half of the logical cores) or to disable SMT (aka every other core)

    However if you are going into taskmanager to see the priority you will not be able to see it as it changes it back to normal as soon as you activate another programs.
    that way backgrounds programs still have access to the extra logical cores while you main process avoids SMT conflicts.
    You will need some kind of live monitoring while you have the game active/focused to see the affinity being handled
     
  31. cbutters

    cbutters Limp Gawd

    Messages:
    474
    Joined:
    Dec 30, 2005
  32. CAD4466HK

    CAD4466HK Limp Gawd

    Messages:
    410
    Joined:
    Jul 24, 2008
  33. cbutters

    cbutters Limp Gawd

    Messages:
    474
    Joined:
    Dec 30, 2005
    Thanks

    Still interested in whether the thread locking to certain cores discussion in this thread are gains that would be in in addition to the gains earned by setting the power plan to "high performance" or this special ryzen balanced plan.

    Edit: I'm kindof answering my own question...
    In the link I posted; in the AMD statement I'm reading the following:

    "The March 27th Bretonnia update helps the underlying game engine better understand the topology of Ryzen with respect to the number of logical vs. physical cores. Overall, this helps Total War: WARHAMMER better schedule threads on the processor to reduce resource contention.

    Thanks to the great work from our friends over at Creative Assembly™ and SEGA®, we saw an uplift of up to 10.5% with the “High” preset and up to 7% with the more GPU-bound “UItra” graphics preset."

    This sounds like it totally validates the concept of this thread which is encouraging and seems to mean that not only can you boost performance with setting "high performance" but additional gains are there when you properly spread workload across the proper cores.
     
    Last edited: Apr 7, 2017
  34. SvenBent

    SvenBent [H]ard|Gawd

    Messages:
    1,504
    Joined:
    Sep 13, 2008
    Yup SMT/CMT thread conflicts has been an issues for years. Since the first i7. however the penalty is pretty "small" and very dependant on the software


    However. Project Mercury 1.2.8.0 is out and has the improvements for Ryzen features in the public release now

    V1.2.8.0
    – Implemented AutoSMT (beta)
    – Implemented “NO CCX Switching” feature for Ryzen™ processors
    – Temporarily Fixed Affinity inherit issue
    – “Disable CoreParking” is now on as default
    – “Windows FastReact” is now on as default
    – Default icon click action is now “Settings” instead of “Pause”
    – Optimized some IF settings for minuscule reduced CPU usage
    – Optimized exit procedure for faster exit
    – Changed prev Core Parking fix to not use temp file

    http://techcenter.dk/

    I would highly recommend to give the AutoSMT a try, which will automatic enable/disable SMT on the main program depending on load. this should give us the best of both world scenarios.
    Aka games where SMT Helps SMT will be available, and where it hurts threads will be locked away from using SMT.
     
  35. Immolation1991

    Immolation1991 [H]Lite

    Messages:
    93
    Joined:
    Feb 23, 2016
    Could someone test this with Arma or Squad running 4C/4T or 4C/8T?