public sgminer() { SupportedAlgorithms = new Algorithm[] { new Algorithm( 3, "x11", "x11", DefaultParam + "--nfactor 10 --xintensity 640 --thread-concurrency 0 --worksize 64 --gpu-threads 1"), new Algorithm( 4, "x13", "x13", DefaultParam + "--nfactor 10 --xintensity 64 --thread-concurrency 0 --worksize 64 --gpu-threads 2"), new Algorithm( 5, "keccak", "keccak", DefaultParam + "--nfactor 10 --xintensity 300 --thread-concurrency 0 --worksize 64 --gpu-threads 1"), new Algorithm( 6, "x15", "x15", DefaultParam + "--nfactor 10 --xintensity 64 --thread-concurrency 0 --worksize 64 --gpu-threads 2"), new Algorithm( 7, "nist5", "nist5", DefaultParam + "--nfactor 10 --xintensity 16 --thread-concurrency 0 --worksize 64 --gpu-threads 2"), new Algorithm( 8, "neoscrypt", "neoscrypt", DefaultParam + "--nfactor 10 --xintensity 2 --thread-concurrency 8192 --worksize 64 --gpu-threads 4"), new Algorithm(10, "whirlpoolx", "whirlpoolx", DefaultParam + "--nfactor 10 --xintensity 64 --thread-concurrency 0 --worksize 128 --gpu-threads 2"), new Algorithm(11, "qubit", "qubitcoin", DefaultParam + "--intensity 18 --worksize 64 --gpu-threads 2"), new Algorithm(12, "quark", "quarkcoin", DefaultParam + "--nfactor 10 --xintensity 1024 --thread-concurrency 0 --worksize 64 --gpu-threads 1"), new Algorithm(14, "lyra2rev2", "Lyra2REv2", DefaultParam + "--nfactor 10 --xintensity 160 --thread-concurrency 0 --worksize 64 --gpu-threads 1") }; MinerDeviceName = "AMD_OpenCL"; Path = "bin\\sgminer-5-2-1-general\\sgminer.exe"; APIPort = 4050; EnableOptimizedVersion = true; PlatformDevices = 0; GPUPlatformNumber = 0; if (!Config.ConfigData.DisableDetectionAMD) QueryCDevs(); }
public cpuminer(int id, int threads, ulong affinity) { MinerDeviceName = "CPU" + id.ToString(); APIPort = 4040 + id; Threads = threads; AffinityMask = affinity; SupportedAlgorithms = new Algorithm[] { new Algorithm(9, "lyra2re", "lyra2"), new Algorithm(13, "axiom", "axiom"), new Algorithm(15, "scryptjanenf16", "scryptjane:16") }; if (Config.ConfigData.ForceCPUExtension > 0) { if (Config.ConfigData.ForceCPUExtension == 1) { Path = "bin\\cpuminer_x64_SSE2.exe"; } else if (Config.ConfigData.ForceCPUExtension == 2) { Path = "bin\\cpuminer_x64_AVX.exe"; } else { Path = "bin\\cpuminer_x64_AVX2.exe"; } } else { // detect CPU capabilities if (CPUID.SupportsAVX2() == 0) { if (CPUID.SupportsAVX() == 0) { if (CPUID.SupportsSSE2() == 0) return; Path = "bin\\cpuminer_x64_SSE2.exe"; } else Path = "bin\\cpuminer_x64_AVX.exe"; } else { Path = "bin\\cpuminer_x64_AVX2.exe"; } } CDevs.Add(new ComputeDevice(0, MinerDeviceName, CPUID.GetCPUName())); }
public ccminer() { SupportedAlgorithms = new Algorithm[] { new Algorithm(3, "x11", "x11"), new Algorithm(4, "x13", "x13"), new Algorithm(5, "keccak", "keccak"), new Algorithm(7, "nist5", "nist5"), new Algorithm(8, "neoscrypt", "neoscrypt"), new Algorithm(10, "whirlpoolx", "whirlpoolx"), new Algorithm(11, "qubit", "qubit"), new Algorithm(12, "quark", "quark"), new Algorithm(14, "lyra2rev2", "lyra2v2") }; }
protected virtual string GetPassword(Algorithm a) { if (a.UsePassword != null && a.UsePassword.Length > 0) return a.UsePassword; if (UsePassword != null && UsePassword.Length > 0) return UsePassword; return "x"; }
// TODO remove algorithm abstract protected string BenchmarkCreateCommandLine(Algorithm algorithm, int time);
// TODO remove algorithm protected abstract string BenchmarkCreateCommandLine(Algorithm algorithm, int time);
public override void Start(int nhalgo, string url, string username) { //if (ProcessHandle != null) return; // ignore, already running Algorithm Algo = GetMinerAlgorithm(nhalgo); if (Algo == null) { Helpers.ConsolePrint(MinerDeviceName, "GetMinerAlgorithm(" + nhalgo + "): Algo equals to null"); return; } if (Algo.NiceHashName.Equals("daggerhashimoto")) { WorkingDirectory = ""; LastCommandLine = " --opencl --opencl-platform " + GPUPlatformNumber + " " + ExtraLaunchParameters + " " + Algo.ExtraLaunchParameters + " -S " + url.Substring(14) + " -O " + username + ":" + GetPassword(Algo) + " --api-port " + Config.ConfigData.ethminerAPIPortAMD.ToString() + " --opencl-devices "; int dagdev = -1; for (int i = 0; i < CDevs.Count; i++) { if (EtherDevices[i] != -1 && CDevs[i].Enabled && !Algo.DisabledDevice[i]) { LastCommandLine += i.ToString() + " "; if (i == DaggerHashimotoGenerateDevice) { dagdev = DaggerHashimotoGenerateDevice; } else if (dagdev == -1) { dagdev = i; } } } LastCommandLine += " --dag-load-mode singlekeep " + dagdev.ToString(); } else { StartingUpDelay = true; WorkingDirectory = GetMinerDirectory(Algo.NiceHashName); Path = WorkingDirectory + "sgminer.exe"; LastCommandLine = " --gpu-platform " + GPUPlatformNumber + " -k " + Algo.MinerName + " --url=" + url + " --userpass="******":" + GetPassword(Algo) + " --api-listen" + " --api-port=" + APIPort.ToString() + " " + ExtraLaunchParameters + " " + Algo.ExtraLaunchParameters + " --device "; for (int i = 0; i < CDevs.Count; i++) { if (CDevs[i].Enabled && !Algo.DisabledDevice[i]) { LastCommandLine += CDevs[i].ID.ToString() + ","; } } if (LastCommandLine.EndsWith(",")) { LastCommandLine = LastCommandLine.Remove(LastCommandLine.Length - 1); } else { LastCommandLine = ""; return; // no GPUs to start mining on } if (Config.ConfigData.DisableAMDTempControl == false) { LastCommandLine += TemperatureParam; } } ProcessHandle = _Start(); }
protected override string BenchmarkCreateCommandLine(int index, int time) { Algorithm Algo = GetMinerAlgorithm(SupportedAlgorithms[index].NiceHashID); if (Algo == null) { Helpers.ConsolePrint(MinerDeviceName, "GetMinerAlgorithm(" + index + "): Algo equals to null"); return(""); } string CommandLine; if (Algo.NiceHashName.Equals("daggerhashimoto")) { CommandLine = " --opencl --opencl-platform " + GPUPlatformNumber + " " + ExtraLaunchParameters + " " + Algo.ExtraLaunchParameters + " --benchmark-warmup 40 --benchmark-trial 20" + " --opencl-devices "; int dagdev = -1; for (int i = 0; i < CDevs.Count; i++) { if (EtherDevices[i] != -1 && CDevs[i].Enabled && !Algo.DisabledDevice[i]) { CommandLine += i + " "; if (i == DaggerHashimotoGenerateDevice) { dagdev = DaggerHashimotoGenerateDevice; } else if (dagdev == -1) { dagdev = i; } } } CommandLine += " --dag-load-mode single " + dagdev.ToString(); Ethereum.GetCurrentBlock(MinerDeviceName); CommandLine += " --benchmark " + Ethereum.CurrentBlockNum; } else { Path = "cmd"; string DirName = GetMinerDirectory(Algo.NiceHashName); string url = "stratum+tcp://" + Globals.NiceHashData[SupportedAlgorithms[index].NiceHashID].name + "." + Globals.MiningLocation[Config.ConfigData.ServiceLocation] + ".nicehash.com:" + Globals.NiceHashData[SupportedAlgorithms[index].NiceHashID].port; string username = Config.ConfigData.BitcoinAddress.Trim(); if (Config.ConfigData.WorkerName.Length > 0) { username += "." + Config.ConfigData.WorkerName.Trim(); } CommandLine = " /C \"cd /d " + DirName + " && sgminer.exe " + " --gpu-platform " + GPUPlatformNumber + " -k " + SupportedAlgorithms[index].MinerName + " --url=" + url + " --userpass="******":" + GetPassword(Algo) + " --sched-stop " + DateTime.Now.AddMinutes(time).ToString("HH:mm") + " -T --log 10 --log-file dump.txt" + " " + ExtraLaunchParameters + " " + SupportedAlgorithms[index].ExtraLaunchParameters + " --device "; for (int i = 0; i < CDevs.Count; i++) { if (CDevs[i].Enabled && !Algo.DisabledDevice[i]) { CommandLine += CDevs[i].ID.ToString() + ","; } } CommandLine = CommandLine.Remove(CommandLine.Length - 1); if (Config.ConfigData.DisableAMDTempControl == false) { CommandLine += TemperatureParam; } CommandLine += " && del dump.txt\""; } return(CommandLine); }