Page 1 of 13
1
2
3
11
... LastLast
  1. #1

    Multi-Core Cpu Architecture and WoW / Lag and Graphical tweaks...Guide

    Multi-Core Cpu Architecture and WoW / Lag and Graphical tweaks...Guide

    The TLDR version of this guide

    Also, as a little side note. If you decide to edit your config file you obviously need to open it. Right click on it, click open with, and open it in notepad, word, or any other text editor.



    Updated for 4.0:
    They changed wow in 3.1 to run on more processor threads. Originally it was running on 2 main threads with several smaller threads handling simpler tasks. As of 3.1 there are now 3 main threads, and many more smaller threads. This means that forcing wow to run over all 3 cores may prove more beneficial then having it run over only 2 cores, as now you can"force" it to use all of the available cores.


    If you want more information on what exactly setting the masks values does, and how it works, look in the CPU stuff section of the article.

    These are the new recommended affinity mask values taking into account three available cores:

    Intel:
    i7 Qudcore with Ht- 84
    i5 Quadcore which does not have HT - 14
    i5 Dualcore with HT- 5 (note - wow will default run over both availabile processors in dual core systems - no gain may be experienced)
    Dualcore with HT- 5 (note - wow will default run over both availabile processors in dual core systems - no gain may be experienced)
    Dualcore without HT - 3 (note - wow will default run over both availabile processors in dual core systems - no gain may be experienced)
    I7 - Hex core (6 logical / 6 virtual) - 1344


    AMD:
    AMD tricore - 7
    AMD quad core ( Phenom series ) - 14
    AMD hex core - 56




    TCPAckFrequency portion of the latency fixes can be done manually or by using the Leatrix utility. Look at the bottom of this post for the steps or download Leatrix's Latency fix from WoWInterface. Its verified to work, and does exactly what the manual steps illustrated below will do. I have examined his code myself, it's visual basic, and it emulates the exact functionality that I go over in this thread. If you're lazy and like using apps, try his. If you prefer to learn and do things yourself, take a look at the lag stuff portion of the article.

    However, the Leatrix tool will not be able to to the TCPNoDelay tweak, that one must be done on your own. As mentioned, the steps are listed below.



    So I have some news. That above line is totally inaccurate as of today.

    Up until now there has been two parts to the Latency tweaks. Part 1 is installing the Leatrix TCPAckFrequency tweak. Part 2 was to manually do the TCPNoDelay in the registry - Nagle Disable ...

    Well, I have looked further into it and I found a way to incorporate the TCPNoDelay tweak into Leatrix's original script.

    So, I have edited it and added in both of the lag tweaks into a single .vbs script!

    This means and end to having to dig through the registry in order to do the lag tweaks.

    Figuring out where to host it now, and will update the OP when I do.


    Without further delay below are the download mirrors:


    www.informationleak.net/LINKS/naglefreq.zip

    If you are a windows 7 user, you may have to run the following .reg file. (I created this, so its safe)

    http://www.pclive-assistance.fr/shar...2DfEzL/lag.zip

    or here

    http://www.informationleak.net/LINKS/lag.zip

    That will add the proper msmq keys for you. Then run the naglefreq script form above.

    Run script / reboot - easy peasy.
    CPU STUFF


    The CVAR value which controls what cores wow ill run over is SET processAffinityMask ""

    If fore whatever reason this is missing from your config file you can manually add it, by copying and pasting it from above. In between the quotes is where the number for the mask value goes. For example, SET processAffinityMask "84"

    This should clear up any confusion some people were having.


    I recently have been toying around with assigning certain running processes on my computer to certain cores on my PC via Affinity I/O controls. I have an Intel i7 quad core. I know a lot of people use this processor, and a few others use AMD phenom cores. In any event whether you use dual core, quad core, or hexcore the following information pertains to you.

    Config.wtf is located in the WoW/WTF game folder. Contained in this file is CVAR's a.k.a console variables or in some cases referred to as configurable variables. These variables allow you to manipulate program settings often found in games and other applications. I used to edit this config file a lot in the past to manipulate camera settings but never really paid much attention to the CVAR's. There is a ton of variables that can be changed and manipulated within this file, but for the purpose of this write up we will only talk about AffinityMask CVAR.


    WoW is a threaded application meaning it can take advantage of more than 1 single core. However, no matter how many cores you have, WoW cannot take advantage of more than 3 main threads(after patch 3.3.3). After monitoring process activity on each core, I saw that when I started WoW, core 1's activity spiked while my other cores were remaining pretty low. The majority of applications that run on my computer are not threaded meaning that for the most part they either default to core 1 or windows will dictate which core the application is processed through. Having WoW run on core 1 as well as all my other programs run on it seems counter productive as the other cores have no work load. This is the main point behind why you want to set affinity mask values. So that you can force WoW to run over less busier cores therefore reducing any type of cpu bottleneck that may occur during heavy gaming sessions.

    The whole point of this is we can force WoW to run on whatever cores we want, up to 3 cores in total. We can change the Affinity CVAR value from the default which is 3. The default value of 3 has wow running over cores 1 and 2. You have to think though that this isn't really running over physical cores 1 and 2. Instead it is running over 1 physical core/ and one virtual core.See below chart I put it in quotes:

    A Dual Core processor :[CORE1][CORE1Virtual][CORE2][CORE2Virtual]
    Core numbers: 1 2 3 4
    A Quad Core: [CORE1][CORE1Virtual][CORE2][CORE2Virtual][CORE3]
    Core numbers: 1 2 3 4 5
    [CORE3Virtual][CORE4][CORE4Virtual]
    6 7 8


    This is what is called hyper threading which basically splits each core into 2. 1 physical core and 1 virtual core. Which means that on quad cores we have a total of 8 cores. It isn't really a virtual core, but for the sake of argument we can call it that. Each core on the chip has circuitry on it that splits that core into two separate entities in software. Look up hyper threading if you want more of an explanation its to long to write out and really off topic for this.

    This is also the reason the default value of 3 is not recommended. If you reference the above chart, a value of 3 has wow running over only the first core. Which means that's, even in a dual core system, the second core is not being utilized.

    If you have a dual core processor with hyper threading you can stop reading here and set your CVAR value for affinity mask to 5. What this does is force wow to run over the actual hardware cores of your computer instead of having it run over 1 physical and 1 virtual. Make sense?

    Dual core set your value to 5 and your done. This will force WoW to run on cores 1 and 3 which in actuality represent the 2 physical cores in a single processor w/ dual cores.

    ____________________________

    For single processor/ quad core it becomes somewhat more complex because instead of being

    [CORE1][CORE1Virtual][CORE2][CORE2Virtual]

    it turns into

    [CORE1][CORE1Virtual][CORE2][CORE2Virtual]
    [CORE3][CORE3Virtual][CORE4][CORE4Virtual]

    4 phyiscal cores / 4 threaded (virtual) cores = 8 logical cores (the chart above also shows this)



    The mask/CVAR values also become more complex. See my chart below.

    Logical Cores: |C1|C(v)1| |C2|C(v)2| |C3|C(v)3| |C4|C(v)4|

    Core Number: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

    Mask Values: 1 2 4 8 16 32 64 128




    Binary translation: We have to reverse the processor cores around since binary is read right to left, like Hebrew.


    |C(v)4|C4| |C(v)3|C3| |C(v)2|C2| |C(v)1|C1|



    In dual core systems setting the value to 5 would allow you to make wow run on physical core 1 and core 2, which we already went over. The default value of 3 has wow running on 1 physical core and 1 virtual core which are both parts of the same core in reality, which we also went over. In quad core systems you can set it to 5 as well like we do for dual cores, but you can also set different numbers. You want to stay away from running the game on virtual cores and run it only on 3 out of the 4 physical cores. The beauty of quad core is that we do not have to run anything on core 1, like you do with dual core processors. Core 1 is the most used core of all the 4 physical cores since it is the default core most applications run on. In my case I wanted wow to run over physical cores 2/ 3/ 4.

    I typed in 80 which would be cores 3 and 4 as per the above chart, you have to add the decimal values that I listed in the chart above that correspond to the core numbers that you want to enable. Now if you convert 80 to its binary equivalent 1010000 *Remember binary is read from right to left* Now if you match up that number to the binary translation chart.

    for cores 3/4 - CVAR value 80

    |C(v)4|C4| |C(v)3|C3| |C(v)2|C2| |C(v)1|C1|
    0 1 0 1 0 0 0 0

    for cores 2/4 - CVAR value 68

    |C(v)4|C4| |C(v)3|C3| |C(v)2|C2| |C(v)1|C1|
    0 1 0 0 0 1 0 0

    you could even have it run on cores 1/4 if you wanted with the value 65

    |C(v)4|C4| |C(v)3|C3| |C(v)2|C2| |C(v)1|C1|
    0 1 0 0 0 0 0 1

    For most people I would recommend a value of 84. Cores 2, 3 and 4 are used virtually never.



    People who have done this tweak report, in some cases, double their fps.



    LAG STUFF

    I have been using this for a while, and I noticed substantial results with it. If you have random lag spikes, lag all the time, or internet problems this may help you out a bit.

    Its kind of old school now, but a lot of people don't seem to know about it though so figured I would include it here. Depending on your system settings it can drastically improve ping times due to TCP/ACK response times.

    Basically at the root of this tweak is changing the frequency at which TCP ACKS's or acknowledgments are sent out, it also disables NAGLE. Most know that TCP/IP works with data packets, the header of the packet contains destination port information as well as source port, followed by sequence and acknowledgment numbers, data offset, and then lastly the data itself.

    By default the TCPackfrequency is set to 2 in windows. Other programs that you might have installed can manipulate this number though, some network drivers for certain cards also can edit it as well. A value of 2 means that for every 2 tcp packets you computer receives an acknowledgment packet is sent. It basically tells the sending end, in the case of wow the server, that I received the data you sent me. The below reg tweak changes this value from whatever it is set to on your PC to a value of 1. It takes about a total of 2 minutes to make this change anyway, it is very simple.


    TcpAckFrequency defaults to 2. At this setting, copying a
    250 MB file from the server takes 45 seconds. That's not a terrible
    result, but I'm just establishing a baseline.

    Microsoft Windows 2003 performance guidelines recommends a setting for TCP
    ACK of 13 for gigabit Ethernet. Setting TcpAckFrequency to 13 on the
    client yields copy time of 20+ minutes!!

    Microsoft recommends a TCP ACK setting of 5 for 10/100 networks. Setting
    to 5 yields copy time of 18 minutes!!


    Finally, I tried setting to TcpAckFrequency of 3. This yields copy time of
    13 minutes.

    In the case of wow a much higher number will generate a retarded amount of lag while a lower number should remove it.

    The second part of the hack is TCP no delay. Setting this value to 1, disables the Nagle algorithm in the TCP stack. The nagle algorithm buffers up TCP packets and arranges them in a way that balances the size of the packets with the delay in sending it. It can rearrange different packets of different sizes coming from different programs on your computer and it sends out the bits and pieces that are easier to send first. It prioritizes and it also will wait for a packet to fill until sending it. Its kind of like QOS on a router, prioritizing certain pieces of data over others.

    This is normally a good thing as it balances the load of a network if you have multiple PC's going at a time, and the delay is typically not noticeable with normal internet surfing etc. However, with WoW, any bit of lag is noticeable. Any bit of delay can mean the difference between living and dieing, wiping the raid or being the hero. On our level of internet usage, the TCP buffer/prioritization from nagle can affect performance. The second part of the tweak disables this. Instead of allowing Nagle to do its thing we are basically telling it, "choke and die, do not buffer the packets and wait to send them, just push them out NOW!!! NO u no u."

    Here are the actual tweak steps:


    -TcpAckFrequency -

    Type "regedit" in windows "run.." dialog to bring up registry menu

    Then find:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

    There will be multiple NIC interfaces listed in there, find the one you use to connect to the internet, there will be several interfaces listed (they have long names like{7DBA6DCA-FFE8-4002-A28F-4D2B57AE8383}. Click each one, the right one will have lots of settings in it and you will see your machines IP address listed there as one of the values.

    -Right-click in the right hand pane and add a new DWORD value, name it TcpAckFrequency, then right click the entry and click Modify and assign a value of 1.

    You can change it back to 2 (default) at a later stage if it affects your other TCP application performance. it tells windows how many TCP packets to wait before sending ACK. if the value is 1, windows will send ACK every time it receives a TCP package.

    Again make sure you set it to 1.

    - TCPNoDelay -
    This one is pretty simple

    Type "regedit" in windows "run.." dialog to bring up registry menu

    Then find:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters

    Right-click in the right hand pane and add a new DWORD value, name it TCPNoDelay, then right click the entry and click Modify and assign a value of 1.

    Click Ok and close the registry editor, then reboot your PC.

    FOR WINDOWS VISTA/7 HOME ONLY PEOPLE:

    If you prefer to do the below tweak yourself manually you can. However, I have created a .reg file that will add the appropriate keys for you. You can find it here.

    http://www.vindicatum.com/sep/lag.zip

    I just want to note that the MSMQ key DOES NOT EXIST IN WINDOWS VISTA/7 HOME BY DEFAULT. If you cannot find the MSMQ key, then please do this instead:


    Open up notepad and paste in the following:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters]
    "TCPNoDelay"=dword:00000001

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\OCMsetup]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security]
    "SecureDSCommunication"=dword:00000000

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\setup]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Setup]

    Save the file as Lag.reg ---- Run the file, say yes to the prompt. This will automatically enter all the above reg values for you.





    WINDOWS 7/VISTA STUFF


    This section is dedicated to core parking. Core parking is a feature that will disable cores in real time that are not being used, as a power saving feature. The OS will then switch them back on as needed.

    This poses a problem while gaming at times, because if you are out farming herbs/ore and their isn't very much graphical intensive activity going on some of the cores on your cpu may be disabled.

    Lets say you then take a queue for Tol Barad, and you are shot right into the midst of angry battle. Fire is raining from the sky, green little lasers are flying at your face, and there are 25 angry alliance bum rushing your node. The OS will then flick the cores back on again.

    The problem is that sometimes this process of turning the cores on and off causes noticeable video lag or screen tearing. Neither of which you want to deal with especially in pvp.

    The following steps will disable this annoying feature.

    Shut off Core parking:



    - Go to Regedit

    - Find this key:- " 0cc5b647-c1df-4637-891a-dec35c318583 "

    - Within this key, there is a value called: " ValueMax "

    - This value represents the % number of cores the system will park - the default 100% ie: all Cores are potentially park-able

    - Change the value from 64 to 0 so the " ValueMin " and " ValueMax " are both zero

    - You will have to find the key a few times and repeat the process for each time it is found - the number of instances will depend on the number of power profiles in your system

    - Do a full shutdown and power-off and cold-re-start



    GRAPHICAL/DX11 STUFF

    If you have a graphics card that supports DX11, and are running on Vista/7, then you can potentially unlock a 20-30% gain in FPS while playing WoW by doing the following:

    -Open your config.wtf file (located in ...\World of Warcraft\WTF\) with notepad.
    -add the line SET gxApi "d3d11"

    This will unlock experimental dx11 support for wow(full support will probably be implemented in a future patch), it made me jump from 80fps to 100fps. Not a noticeable increase to my eye.

    There have been numerous articles linked in the pages that follow this guide about how many FPS the human eye can actually see. Some say 30, some say 60, some say 200. Beauty is in the eye of the beholder, and so is your sensitivity to FPS. Some of us who have a more acute sense of sight may notice the jumps in fps even at higher values like I mentioned above.

    In conclusion, the above DX11 tweak is definitely beneficial, and you have absolutely nothing to lose by trying it out. You have nothing to lose by trying any of these tweaks out as all of them are completely reversible.

    Thank you for reading, and please post in the thread or send me a PM if you have further questions on something written here. Feel free to recommend adding things to the guide. I will certainly try and keep up to date on any type of new tweaks, or changes in the game and update the guide with further suggestions in the future.

    Edit:

    1/26/11 - Cleared up a lot of misinformation in the OP, cleaned up some of the steps.
    2/7/11 - Added additional steps for setprocessoraffinity CVAR in the spu section.
    2/17/11 - Added download link to the NEW latency script which does both TCPAckFreq as well as TCPNoDelay. Ty Leatrix for doing the leg work with the VB script. I simply added upon and augmented the existing design.
    Last edited by strunker; 2011-07-27 at 06:08 PM.

  2. #2
    Stood in the Fire Plasmon's Avatar
    10+ Year Old Account
    Join Date
    Sep 2010
    Location
    Canada
    Posts
    482
    I just want to be damn sure before I do any messing around. Could you confirm a few things?

    You're saying WoW uses only 3 cores and since most other programs default to core 1, you want to set WoW to use physical cores 2, 3, and 4.

    I figured out where you are getting the numbers... you are adding all the mask values for the cores you want to use.
    So as an example, for an i7 quadcore with HT using cores 2, 3, and 4, you need to use core numbers 3, 5, and 7, which gives mask values of 4, 16, and 64. Adding that: 4+16+64=84, so the affinity mask should be set to 84.

    What is the exact command in config.wtf to do that?
    Is it this?:
    SET AffinityMask "84"

    ---------- Post added 2011-01-09 at 05:01 AM ----------

    Apparently I can't edit my own post in this forum section... but I looked up the answer myself.
    The correct command to add to config.wtf is this:
    SET processAffinityMask "84"

    Here's an archived blue tracker about it:
    [COLOR="rgb(0, 191, 255)"]http://blue.mmo-champion.com/topic/53269/your-i7-affinity-mask-settings-revealed-31[/COLOR]

  3. #3
    [QUOTE=Plasmon;10031462]I just want to be damn sure before I do any messing around. Could you confirm a few things?

    You're saying WoW uses only 3 cores and since most other programs default to core 1, you want to set WoW to use physical cores 2, 3, and 4.

    I figured out where you are getting the numbers... you are adding all the mask values for the cores you want to use.
    So as an example, for an i7 quadcore with HT using cores 2, 3, and 4, you need to use core numbers 3, 5, and 7, which gives mask values of 4, 16, and 64. Adding that: 4+16+64=84, so the affinity mask should be set to 84.

    What is the exact command in config.wtf to do that?
    Is it this?:
    SET AffinityMask "84"[COLOR="red"]

    You are correct. My bad for not including where the numbers are derived from in the guide.

    Most windows programs will default to core 1. Primarily because most of them are not "threaded" applications which can take advantage of multiple cores. I believe windows vista/7 has the capability to split load across different cores regardless of how the application is coded..

    In any event, yes I apparently forgot to also add which line to edit in the config..

    SET processAffinityMask "84"

    Is in fact correct. Editing original post now with that information.

    ---------- Post added 2011-01-09 at 02:30 PM ----------

    It doesnt appear like I can edit the original post.. So...

    Yes the line you want to add / edit in your config file

    SET processAffinityMask ""

    Is that one there.

  4. #4
    Scarab Lord Nicola's Avatar
    10+ Year Old Account
    Join Date
    May 2010
    Location
    Belgium
    Posts
    4,787
    is it just me or have i seen this on another site?

  5. #5
    Data Monster Simca's Avatar
    15+ Year Old Account
    Join Date
    Nov 2008
    Location
    FL, United States
    Posts
    10,410
    Isn't the processAffinityMask CVAR outdated as of 3.3.2?
    http://www.wowpedia.org/CVar_processAffinityMask seems to suggest it is, unless you're trying to disable certain cores.

    Also, TCPAckFrequency does nothing on Windows 7 (there isn't even a registry entry for it). Windows 7 handles connections in a much more efficient manner than XP/Vista by default.

    The rest of your information is quite useful though.
    Global Moderator | Forum Guidelines

  6. #6
    Pandaren Monk Darios's Avatar
    10+ Year Old Account
    Join Date
    Dec 2009
    Location
    Uninja'd States of Amerikill
    Posts
    1,828
    As mentioned before TCPAck Frequency isn't in windows 7, however everything else helped me out a lot!

  7. #7
    Deleted
    Sinca Vista you should let OS do this for you.

  8. #8
    Stood in the Fire Plasmon's Avatar
    10+ Year Old Account
    Join Date
    Sep 2010
    Location
    Canada
    Posts
    482
    About the processAffinityMask CVAR being outdated, what I read was that the game will now default to using all your cores including the "virtual" ones. So for a quad core with HT, it will default to 255. (1+2+4+8+16+32+64+128 = 255) This is much better than before when it didn't use the other cores at all without you telling it too, but it may not be perfectly optimized.

    Apparently WoW still only uses 2 or 3 main threads and uses the other cores for just very minor threads. It might still be more efficient to ensure that the game isn't touching Core 1 so that windows and background programs can use it without competition...

    I think some people have done some testing and found that it's still more efficient to avoid core 1 by using the value 84 instead of 255.
    I'd be interested in seeing how 84 compares to 252 (4+8+16+32+64+128 = 252), which uses both the physical and virtual of cores 2, 3, and 4 while ignoring core 1 entirely.

  9. #9
    I wouldn't say "outdated".

    The majority of windows programs whether you run them on xp/vista/7 will default to run on core 1.

    The point of setting the affinity mask is to have wow run on whatever cores you specify. In my specific case, I have wow running over physical cores 2,3,4. So that if I am multitasking while playing, and running other things I dont have to worry about any cpu bottle necking.

    For most people, none of these tweaks are "necessary". It is mostly just for those who like to run as optimally as they can. Efficiency is a quality we breed in people here, and I carry it over to every aspect of life.

    ---------- Post added 2011-01-10 at 03:40 PM ----------

    Yes. Wow does have three main cores now as of 3.0 I believe, or 3.3. One of those patches split the game into 3 main threads, with a bunch of other filler threads.

    I did a bunch of tests when I first wrote this article last year on my guild's website.. Below is a quote from the thread...

    I dont see any reason to run wow over the virtual cores. In fact, in most cases, it is recommended to not run anything over the virtual cores and let the software (OS) dictate what processes are scheduled for them. In the below test I actually had lower overall fps with 255 than when I forced it over the last 3 physical cores.

    Test | Mask Value | Avg FPS in Dal
    _________________________________
    1) 80 19

    2) 85 23

    3) 84 24

    4) 255 21 ( not recommended)

    ________________________________

    80= Forces wow to run on physical cores 3/4, cores 1/2 are not used by wow. Total cores used 2.

    85= Forces wow to run on all physical cores 1/2/3/4. Total cores used 4

    84= Forces wow to run over physical cores 2/3/4. Total cores used 3. This is what I am predicting to be the best option. As it will leave core 1 open(which is the default core most windows application run over) for other windows functions meaning the system will remain stable while the other 3 cores handle all the wow processes. Since wow has tri-core support and a main thread isnt going to be going over the 4th core it seems almost wasteful to give the game access to anymore than 3 cores.

    255= Forces wow to run on all physical cores plus all of the HT cores 1/1a/2/2a/3/3a/4/4a. Total cores used 8.

    _____________

    I would go with either 84 or 85. Both seemed pretty solid and I noticed a substantial increase in load time with 84 so that is what I am sticking with.

    ---------- Post added 2011-01-10 at 03:44 PM ----------

    And yes there is no tcpack in vista/7, perhaps I should have specified that in the post.

    However, there is TCPnodelay.

    Tcpnodelay is directly related to the Nagle algorithm, and disabling Nagle is still a huge huge decrease in MS latency. I highly recommend everyone does it manually, or use the Leatrix tool from wowinterface.com

  10. #10
    How would one set this up for AMD Hex Core processors? Can we just use what you've done for the quad core and ignore the extra cores, or does something else need to be done?

    Thanks!

  11. #11
    I really wonder what the difference would be between using 84 of 252. One using only the "real"core's 2, 3 and 4 and the other using the "real" and "virtual" core's 2, 2a, 3, 3a, 4 and 4a.
    Would it be possible for you to do a comparison between those?
    justicars.blogspot.com All info you need for tanking as a cleric and more
    Cleric tanking: Justicar guide | Justicar spreadsheet and item list
    Defence is as much a part of war as offence, the shield as important a tool as the sword.

  12. #12
    Stood in the Fire Plasmon's Avatar
    10+ Year Old Account
    Join Date
    Sep 2010
    Location
    Canada
    Posts
    482
    You quoted my line and said "you" so I assume you're question was to me...
    No it wouldn't be possible for me to do the comparison... I currently have a single core CPU and my game isn't even active right now anyways.

    However if strunker has already compared 252 to 84 I'd be interested in hearing the result.

  13. #13
    I can compare the results in fps.

    I will stay stationary in Org, and test the above listed affinity mask of 252. I currently use 84. And I dont know what my fps is off the top of my head in Org.

    I will post what I see at 84 and then what I get at 252..

    ---------- Post added 2011-01-11 at 02:32 PM ----------

    Vladimort

    I did not do the binary calculations for 6 cores...

    However. I can and post them in here. I am not familiar with that processor though. Does AMD have any type of hyperthreading technology? Or is it just 6 physical cores and no virtual cores...

    If it is just 6 physical the binary will be pretty straight forward. Let me know.

  14. #14
    Quote Originally Posted by strunker View Post
    Vladimort

    I did not do the binary calculations for 6 cores...

    However. I can and post them in here. I am not familiar with that processor though. Does AMD have any type of hyperthreading technology? Or is it just 6 physical cores and no virtual cores...

    If it is just 6 physical the binary will be pretty straight forward. Let me know.
    this overclocking page has all the info about the 1055T hexacore i guess: http://www.xbitlabs.com/articles/cpu...g_2.html#sect0

    don't think it has HT, or i'm blind

  15. #15
    Stood in the Fire Plasmon's Avatar
    10+ Year Old Account
    Join Date
    Sep 2010
    Location
    Canada
    Posts
    482
    What about multi-core CPUs without hyperthreading?

    I just ordered an Intel Core i5 2500K which is their new 2nd generation 32nm quad cores with massive unlocked overclocking potential, but they don't have HT (the core i7's do but it's not really worth the extra $100 just for HT and other negligible increases).

    Since there's no HT, that means there are no virtual cores right? So am I correct to assume the mask values for physical core 1, 2, 3, and 4 are 1, 2, 4, 8 respectively?

    So if I want to dedicate core's 2, 3, and 4 for WoW, I believe the affinity mask value should be 2+4+8=14.

    Also, this is a bit off topic... but does anyone know if you can allocate cores like this in Starcraft 2? I hear it can only utilize 2 cores, so I'd definitely want to stop it from using Core 1 and stick it on #3 and 4 if possible.

  16. #16
    Deleted
    but does anyone know if you can allocate cores like this in Starcraft 2?
    You can set affinity in task manager.

  17. #17
    Thanks for the guide, i did use these commands quite a while now and now i understand them

  18. #18
    you can definitely set affinity mask in task manager for other applications..

    Just open up task manager right click on the service for the application, and select set affinity mask.

    _________

    As far as the i5's go, there are two separate models. One is a dual core with HT. One is a quadcore without HT. You can find the appropriate mask values in the original post. Sounds like you would want to go with 15, as opposed to 14. 3 + 5 + 7 = 15

    _____________________

    |C1||C2||C3||C4|C5|C6|
    1 2 4 8 32 64

    I would recommend running wow over cores 4/5/6 since those are unlikely to be used by anything..

    I would love to be able to edit the original post with added information, but for whatever reason they do not allow us to do that in these forums..

    I would recommend for hexcore systems the mask value of 104.. This should force wow over the last 3 cores. You should be able to open task manager and see the last 3 cores have elevated activity when you run wow.

    If someone could post and verify this works that would be good. I do not have a hexcore to test with unfortunately.

  19. #19
    Stood in the Fire Plasmon's Avatar
    10+ Year Old Account
    Join Date
    Sep 2010
    Location
    Canada
    Posts
    482
    Quote Originally Posted by strunker View Post
    As far as the i5's go, there are two separate models. One is a dual core with HT. One is a quadcore without HT. You can find the appropriate mask values in the original post. Sounds like you would want to go with 15, as opposed to 14. 3 + 5 + 7 = 15
    Wait, where do you get 3, 5 and 7? The affinity values use: 2^n, n>=0, so all the numbers must be powers of 2.
    n=0: = (2^0) = 1
    n=1: = (2^1) = 2
    n=2: = (2^2) = 4
    n=3: = (2^3) = 8
    n=4: = (2^4) = 16
    n=5: = (2^5) = 32
    n=6: = (2^6) = 64
    n=7: = (2^6) = 128


    Quad core with HT (like the Core i7's):
    core 1: 1
    core 1 virtual: 2
    core 2: 4
    core 2 virtual: 8
    core 3: 16
    core 3 virtual: 32
    core 4: 64
    core 4 virtual: 128

    Quad core with HT to skip core 1 and use physical cores 2, 3, and 4: Affinity mask = 4 + 16 + 64 = 84
    Quad core with HT using all physical cores: Affinity mask = 1+ 4 + 16 + 64 = 85
    Quad core with HT to skip core 1 and use physical and virtual cores 2, 3, and 4: Affinity mask = 4 + 8 + 16 + 32 + 64 + 128 = 252
    Quad core with HT using all physical and virtual cores: Affinity mask = 1+ 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255

    For the current state of WoW, 84 is probably the best, but 252 might perform just as good too. Leave core 1 and core 1 virtual for windows and background programs. By default the game now effectively sets you to 255, which is better than when it only used your main core but it's not ideal.


    Quad core without HT (like the Core i5 2500K):
    core 1: 1
    core 2: 2
    core 3: 4
    core 4: 8

    Quad core without HT to skip core 1 and use physical cores 2, 3, and 4: Affinity mask = 2 + 4 + 8 = 14
    Quad core without HT using all physical: Affinity mask = 1+ 2 + 4 + 8 = 15 [I think this is where you see suggesting of 15, not from 3+5+7]

    For the current state of WoW, 14 is probably the best. Leave core 1 for windows and background programs. By default the game now effectively sets you to 15, which isn't ideal.


    Hexa core without HT (like the AMD 6-core chips):
    core 1: 1
    core 2: 2
    core 3: 4
    core 4: 8
    core 5: 16 [it seems that strunker forgot "16" in the above post and unfortunately we can't edit posts here...]
    core 6: 32


    Six cores without HT to skip core 1 and use physical cores 2, 3, 4, 5, 6: Affinity mask = 2 + 4 + 8 +16 +32 = 62
    Six cores without HT using all physical: Affinity mask = 1+ 2 + 4 + 8 +16 + 32 = 63
    Six cores without HT skipping cores 1, 2, 3 and using cores 4, 5, 6: Affinity mask = 8 +16 + 32 = 56

    For the current state of WoW, 56 is probably the best, although 62 might work well too if not slightly better. Leave core 1, 2, 3 for windows and background programs. By default the game now effectively sets you to 63, which isn't ideal.


    Dual cores with and without HT:
    Just leave the game as default [since path 3.something]. If you don't have HT it will use both cores. If you do have HT, it will use all 4 threads. Both those situations are ideal, so no need to fiddle around.


    This is all consistent with the following easy to understand graphic that I found posted in some random nVidia forum about WoW:

  20. #20
    Quote Originally Posted by strunker View Post
    you can definitely set affinity mask in task manager for other applications..

    Just open up task manager right click on the service for the application, and select set affinity mask.

    _________

    As far as the i5's go, there are two separate models. One is a dual core with HT. One is a quadcore without HT. You can find the appropriate mask values in the original post. Sounds like you would want to go with 15, as opposed to 14. 3 + 5 + 7 = 15

    _____________________

    |C1||C2||C3||C4|C5|C6|
    1 2 4 8 16 32

    I would recommend running wow over cores 4/5/6 since those are unlikely to be used by anything..

    I would love to be able to edit the original post with added information, but for whatever reason they do not allow us to do that in these forums..

    I would recommend for hexcore systems the mask value of 104.. This should force wow over the last 3 cores. You should be able to open task manager and see the last 3 cores have elevated activity when you run wow.

    If someone could post and verify this works that would be good. I do not have a hexcore to test with unfortunately.

    Dur the hexcore math is off..

    I skipped 16..

    This will change the affinity mask to 56 for amd hexcore.

    ---------- Post added 2011-01-17 at 06:31 AM ----------

    Quote Originally Posted by Plasmon View Post
    Wait, where do you get 3, 5 and 7? The affinity values use: 2^n, n>=0, so all the numbers must be powers of 2.
    n=0: = (2^0) = 1
    n=1: = (2^1) = 2
    n=2: = (2^2) = 4
    n=3: = (2^3) = 8
    n=4: = (2^4) = 16
    n=5: = (2^5) = 32
    n=6: = (2^6) = 64
    n=7: = (2^6) = 128


    Quad core with HT (like the Core i7's):
    core 1: 1
    core 1 virtual: 2
    core 2: 4
    core 2 virtual: 8
    core 3: 16
    core 3 virtual: 32
    core 4: 64
    core 4 virtual: 128

    Quad core with HT to skip core 1 and use physical cores 2, 3, and 4: Affinity mask = 4 + 16 + 64 = 84
    Quad core with HT using all physical cores: Affinity mask = 1+ 4 + 16 + 64 = 85
    Quad core with HT to skip core 1 and use physical and virtual cores 2, 3, and 4: Affinity mask = 4 + 8 + 16 + 32 + 64 + 128 = 252
    Quad core with HT using all physical and virtual cores: Affinity mask = 1+ 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255

    For the current state of WoW, 84 is probably the best, but 252 might perform just as good too. Leave core 1 and core 1 virtual for windows and background programs. By default the game now effectively sets you to 255, which is better than when it only used your main core but it's not ideal.


    Quad core without HT (like the Core i5 2500K):
    core 1: 1
    core 2: 2
    core 3: 4
    core 4: 8

    Quad core without HT to skip core 1 and use physical cores 2, 3, and 4: Affinity mask = 2 + 4 + 8 = 14
    Quad core without HT using all physical: Affinity mask = 1+ 2 + 4 + 8 = 15 [I think this is where you see suggesting of 15, not from 3+5+7]

    For the current state of WoW, 14 is probably the best. Leave core 1 for windows and background programs. By default the game now effectively sets you to 15, which isn't ideal.


    Hexa core without HT (like the AMD 6-core chips):
    core 1: 1
    core 2: 2
    core 3: 4
    core 4: 8
    core 5: 16 [it seems that strunker forgot "16" in the above post and unfortunately we can't edit posts here...]
    core 6: 32


    Six cores without HT to skip core 1 and use physical cores 2, 3, 4, 5, 6: Affinity mask = 2 + 4 + 8 +16 +32 = 62
    Six cores without HT using all physical: Affinity mask = 1+ 2 + 4 + 8 +16 + 32 = 63
    Six cores without HT skipping cores 1, 2, 3 and using cores 4, 5, 6: Affinity mask = 8 +16 + 32 = 56

    For the current state of WoW, 56 is probably the best, although 62 might work well too if not slightly better. Leave core 1, 2, 3 for windows and background programs. By default the game now effectively sets you to 63, which isn't ideal.


    Dual cores with and without HT:
    Just leave the game as default [since path 3.something]. If you don't have HT it will use both cores. If you do have HT, it will use all 4 threads. Both those situations are ideal, so no need to fiddle around.


    This is all consistent with the following easy to understand graphic that I found posted in some
    Not sure about all that other stuff. Although that is interesting and that is a nice chart.

    I got 15 from looking at the mask values. And I was actually wrong, since 15 would actually enable one of the virtual cores. 14 would be accurate.

    Its late cant read properly or double numbers apparently...

    That chart is pretty much identical to mine. So good to see it validated by someone else.

    ---------- Post added 2011-01-17 at 06:36 AM ----------

    The 2 ^0 power stuff is also interesting, never thought of it that way.. Makes sense though.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •