Enable AMD Compute Mode with one click on Windows using a registry (REG) file.

Windows Registry Settings
Windows Registry Settings

By now, if you have been mining for any length of time you know that with AMD cards you need to enable Compute mode within the Radeon Settings application to get acceptable mining performance. Using an older RX580 for example, you can increase default mining speed from 15-16 Mhash/sec to 27-28 MHash/sec by enabling compute mode.

While changing this setting is easily done, and using the Radeon Settings interface works fine with one or two GPUs, when you have multiple cards in your mining rig it can quickly become tedious as you need to apply the setting to each card individually and wait for the Radeon Settings Application to restart each time.

You also will need to reapply these settings anytime you reinstall or update your graphic drivers, so while not something that is done on a regular basis, it can still become frustrating when you do, especially if you maintain multiple rigs.

Fortunately, you can perform this procedure on multiple cards faster by using a simple registry modification file.

The registry key:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000]
"KMD_EnableInternalLargePage"=dword:00000002

is used to enable the Compute Mode setting directly in the registry.

Notice at the end of the key’s name there is a \0000 I highlighted in yellow. This indicates the GPU starting with 0. If you have several GPU’s you will have multiple keys named 0000, 0001, 0002 and so on.

So to make a registry file to modify all your GPUs in one go, you will need to add as many entries as you have GPUs.

While we are modifying the registry to configure our GPU’s for mining, two other useful items to modify to help performance are disabling ULPS and Crossfire.

AMD Crossfire couples two or more GPUs in order to provide a more powerful virtual GPU. This is a feature typically used by gamers or high-powered graphics use. For mining Crossfire does not help at all and will hurt mining performance.

ULPS, or Ultra Low Power State is a sleep state that can lower the frequencies and voltages of your GPUs in order to save power. Again, this feature is not useful for mining and it is best disabled.

Below I have an example of the registry modifications needed to configure a mining rig with 6 GPUs. You can simply add or delete the entries as needed to fit your rigs setup. Name the file something like ComputeModeOn.reg, noting the use of the reg file extension to allow it to add the settings to your registry.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000]
"EnableCrossFireAutoLink"=dword:00000000
"EnableUlps"=dword:00000000
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001]
"EnableCrossFireAutoLink"=dword:00000000
"EnableUlps"=dword:00000000
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0002]
"EnableCrossFireAutoLink"=dword:00000000
"EnableUlps"=dword:00000000
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0003]
"EnableCrossFireAutoLink"=dword:00000000
"EnableUlps"=dword:00000000
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0004]
"EnableCrossFireAutoLink"=dword:00000000
"EnableUlps"=dword:00000000
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0005]
"EnableCrossFireAutoLink"=dword:00000000
"EnableUlps"=dword:00000000
"KMD_EnableInternalLargePage"=dword:00000002

Note that as is often the case with computers, things like to start counting at 0. So the first GPU’s registry entry above is \0000, the second is \0001, and the fifth card is \0004. If you need to add a entry for a seventh GPU, simply copy and paste one of the existing entries above to make a new 7th entry and change it to \0006.

If you have fewer than 6 GPUs, simply remove the extra entries starting with the highest number. So if you have a mining rig with only 3 GPUs, you would only need the entries with names ending in \0000, \0001, and \0002.

I have also included the settings for just Enabling Compute Mode only (Enable Internal Large Page) below:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000]
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001]
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0002]
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0003]
"KMD_EnableInternalLargePage"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0004]
"KMD_EnableInternalLargePage"=dword:00000002

Whenever working with registry settings it is a good idea to back up the registry first before you modify it. This step will allow you to restore the registry if a problem occurs. For more information about how to back up and restore the registry refer to Microsoft Knowledge Base:  322756 How to back up and restore the registry in Windows.

Once you have created your registry modification file and saved it (with a .reg extension) you can double click on it to automatically enter the settings into the registry. You will be prompted by Windows if you want to allow this action, so be sure to accept the warning by clicking on Yes for the settings to take effect.

If you have multiple rigs, you can easily share the file between them, modifying it for however many cards you have.

Be sure to double check the registry settings with RegEdit after your first use, but once you are comfortable with using this trick you will come to appreciate its time savings.

One final note, I usually leave my file setup with entries for 6 cards and have used it successfully even on rigs with fewer cards, as the registry entries for the extra GPUs will simply be ignored if they are not present. I am not suggesting this is the best practice, but it works for me.

Disclaimer:

In this article we discuss making modifications to the Windows Registry. Making changes to the registry can cause serious issues if your registry becomes corrupted or if you set the wrong values. The instructions provided here are for informational use only.

Do not attempt to use this code unless you are confident in your abilities to understand and make such changes. In any case, any modifications you make to your computer system is at your own risk, and CryptoYeti is not responsible for problems that may arise.

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.