Pages:
Author

Topic: [Tool] AMD-Compute-Switcher for switch automatically to compute mode - page 3. (Read 17511 times)

full member
Activity: 126
Merit: 100
Thank you for this. My control center would not save settings even after a driver wipe/reinstall. This saved the day!
newbie
Activity: 182
Merit: 0
Why is this an .exe executable instead of a simple PowerShell, for example, script?  It's much easier to vet scripts than executables with no source.
Agreed
newbie
Activity: 301
Merit: 0
Is it possible to delete the AMD settings program if you use that?
(To avoid it going back for default settings)

If restarts from kernel power errors or overclocked failure right?

It was a good ideia, or if wattman can startup the profile we choose on restart like afterburner, right?

Im interested too Smiley
newbie
Activity: 182
Merit: 0
Is it possible to delete the AMD settings program if you use that?
(To avoid it going back for default settings)



EDIT : You can rename it, so it doesn't load on startup.
sr. member
Activity: 462
Merit: 258
Small Time Miner, Rig Builder, Crypto Trader
any possibility to allow the program to detect how many gpus the rig has? I noticed it just sets 11 or 12 gpus to compute or graphics mode without actually knowing how many gpus its actually setting
newbie
Activity: 4
Merit: 14
executables with no source.

Yea you are right. But when I started I wanted to create a much bigger software as it is now.
I planned some features for the future so this is not the final version  Cool

Source code from 1.0.0:
Code:
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace AMD_Compute_Switcher
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            RegistryKey localMachineKey = Registry.LocalMachine;
            RegistryKey softwareKey = localMachineKey.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e968-e325-11ce-bfc1-08002be10318}");
            var cardFolders = softwareKey.GetSubKeyNames();
            Dictionary results = new Dictionary();
            int notComputeMode = 0;
            int tmp;

            foreach (var cardFolder in cardFolders)
                if (int.TryParse(cardFolder, out tmp))
                {
                    RegistryKey cardRegistry = null;
                    try
                    {
                        cardRegistry = softwareKey.OpenSubKey(cardFolder);
                    }
                    catch (Exception) { }
                    if (cardRegistry != null)
                    {
                        var KMD_EnableInternalLargePage = cardRegistry.GetValue("KMD_EnableInternalLargePage");
                        if (KMD_EnableInternalLargePage == null || KMD_EnableInternalLargePage.ToString() != "2")
                        {
                            notComputeMode++;
                            results.Add(cardFolder, "Not in compute mode");
                        }
                        else
                        {
                            results.Add(cardFolder, "Compute mode");
                        }
                    }
                }

            var cardString = "All cards will be switched to " + (notComputeMode > 0 ? "compute" : "graphics") + " mode!\n";
            foreach (var result in results)
            {
                cardString += "\n" + result.Key + ": " + result.Value;
            }

            if (MessageBox.Show(cardString, "Do you want to switch?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.OK)
            {
                results = new Dictionary();

                foreach (var cardFolder in cardFolders)
                    if (int.TryParse(cardFolder, out tmp))
                    {
                        RegistryKey cardRegistry = null;
                        try
                        {
                            cardRegistry = softwareKey.OpenSubKey(cardFolder, true);
                        }
                        catch (Exception) { }
                        if (cardRegistry != null)
                        {
                            if (notComputeMode > 0)
                            {
                                /** Switch all to compute mode */
                                try { cardRegistry.SetValue("KMD_EnableInternalLargePage", "2", RegistryValueKind.DWord); results.Add(cardFolder, "Success"); }
                                catch(Exception ex) { results.Add(cardFolder, "Error: " + ex.Message); }
                            }
                            else
                            {
                                /** Switch all to graphics mode */
                                try { cardRegistry.DeleteValue("KMD_EnableInternalLargePage"); results.Add(cardFolder, "Success"); }
                                catch (Exception ex) { results.Add(cardFolder, "Error: " + ex.Message); }
                            }
                        }
                    }
               
                cardString = "Switched successfully to " + (notComputeMode > 0 ? "compute" : "graphics") + " mode!\n";
                foreach (var result in results)
                {
                    cardString += "\n" + result.Key + ": " + result.Value;
                }

                MessageBox.Show(cardString, "Switched successfully!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}
newbie
Activity: 1
Merit: 0
Why is this an .exe executable instead of a simple PowerShell, for example, script?  It's much easier to vet scripts than executables with no source.

Joe
newbie
Activity: 4
Merit: 14
yeah I like to grab this as well but I don't wanna sign up just to download 1 file from a place ill prolly never use again

Sorry VirusTotal was only the document where you can see that there is no virus on it.


The forum here removed the link.
I added the mega.nz link now: https://mega.nz/#!Qgl3EYxJ!_7Aes-JHrnhGpIl2v_3EwG6E_jAsV_gjyj-Eg3IFGkY
sr. member
Activity: 462
Merit: 258
Small Time Miner, Rig Builder, Crypto Trader
yeah I like to grab this as well but I don't wanna sign up just to download 1 file from a place ill prolly never use again
newbie
Activity: 6
Merit: 0
Any chance you can put it out on Mega.nz or Google drive?  The VirusTotal link won't let you download.
newbie
Activity: 31
Merit: 0
AMD-Compute-Switcher helps you to easily switch between compute and graphics mode.
It loops all registry folders of your AMD software and detects if the card is in graphics or compute mode.
If one is not in compute mode it will try to switch all to compute mode and if all are in compute mode it allows you to go back to graphics mode.

Download: (VirusTotal)

Compatible with AMD Crimson software. (17.10.2 and higher because before there is no compute option or you can use blockchain driver instead)

Getting started:
  • Run AMD-Compute-Switcher.exe
  • Read the message, on top you see "switch to compute mode" or "switch to graphics mode". Press OK if you see "switch to compute mode. - this happens if one card is not in compute mode.
  • Reboot

Changelog:
  • 1.0.0: First release with simple switch

Special thanks to this post because I'm using this logic.
https://bitcointalksearch.org/topic/m.23637946

If you have any improvements you can post them here or send me a private message.

Thanks for the tools, will try it on my next build.
newbie
Activity: 4
Merit: 14
AMD-Compute-Switcher helps you to easily switch between compute and graphics mode.
It loops all registry folders of your AMD software and detects if the card is in graphics or compute mode.
If one is not in compute mode it will try to switch all to compute mode and if all are in compute mode it allows you to go back to graphics mode.

Download: https://mega.nz/#!Qgl3EYxJ!_7Aes-JHrnhGpIl2v_3EwG6E_jAsV_gjyj-Eg3IFGkY (VirusTotal)

Compatible with AMD Crimson software. (17.10.2 and higher because before there is no compute option or you can use blockchain driver instead)

Getting started:
  • Run AMD-Compute-Switcher.exe
  • Read the message, on top you see "switch to compute mode" or "switch to graphics mode". Press OK if you see "switch to compute mode. - this happens if one card is not in compute mode.
  • Reboot

Changelog:
  • 1.0.0: First release with simple switch

Special thanks to this post because I'm using this logic.
https://bitcointalksearch.org/topic/m.23637946

If you have any improvements you can post them here or send me a private message.
Pages:
Jump to: