private void BenchmarkCompleted(string text, object tag) { if (this.InvokeRequired) { BenchmarkComplete d = new BenchmarkComplete(BenchmarkCompleted); this.Invoke(d, new object[] { text, tag }); } else { inBenchmark = false; CurrentlyBenchmarking = null; ListViewItem lvi = tag as ListViewItem; lvi.SubItems[2].Text = text; // initiate new benchmark InitiateBenchmark(); } }
private void InitiateBenchmark() { if (listView1.Items.Count > index) { ListViewItem lvi = listView1.Items[index]; index++; Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[1].Tag; lvi.SubItems[2].Text = "Please wait..."; inBenchmark = true; CurrentlyBenchmarking = m; m.BenchmarkStart(i, Time, BenchmarkCompleted, lvi); } else { // average all cpu benchmarks if (Form1.Miners[0] is cpuminer) { Helpers.ConsolePrint("Calculating average CPU speeds:"); double[] Speeds = new double[Form1.Miners[0].SupportedAlgorithms.Length]; int[] MTaken = new int[Form1.Miners[0].SupportedAlgorithms.Length]; foreach (ListViewItem lvi in listView1.Items) { if (lvi.Tag is cpuminer) { Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[1].Tag; if (m.SupportedAlgorithms[i].BenchmarkSpeed > 0) { Speeds[i] += m.SupportedAlgorithms[i].BenchmarkSpeed; MTaken[i]++; } } } for (int i = 0; i < Speeds.Length; i++) { if (MTaken[i] > 0) Speeds[i] /= MTaken[i]; Helpers.ConsolePrint(Form1.Miners[0].SupportedAlgorithms[i].NiceHashName + " average speed: " + Form1.Miners[0].PrintSpeed(Speeds[i])); } foreach (ListViewItem lvi in listView1.Items) { if (lvi.Tag is cpuminer) { Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[1].Tag; m.SupportedAlgorithms[i].BenchmarkSpeed = Speeds[i]; lvi.SubItems[2].Text = m.PrintSpeed(Speeds[i]); } } } Config.RebuildGroups(); button1.Enabled = true; button2.Enabled = false; } }
private void BenchmarkBtn_Click(object sender, EventArgs e) { if (InBenchmark) { mm.BenchmarkSignalQuit = true; InBenchmark = false; index = 9999; return; } bool DeviceChecked = false; string DeviceName = ""; for (int i = 0; i < DevicesListView.Items.Count; i++) { if (DevicesListView.Items[i].Selected) { DeviceChecked = true; Int32.TryParse(DevicesListView.Items[i].SubItems[2].Text, out DeviceChecked_Index); mm = DevicesListView.Items[i].Tag as Miner; DeviceName = DevicesListView.Items[i].SubItems[1].Text; } } if (!DeviceChecked) { MessageBox.Show(International.GetText("SubmitResultDialog_NoDeviceCheckedMsg"), International.GetText("SubmitResultDialog_NoDeviceCheckedTitle"), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } InBenchmark = true; DevicesListView.Enabled = false; CloseBtn.Enabled = false; StartStopBtn.Text = International.GetText("SubmitResultDialog_StopBtn"); LabelProgressPercentage.Text = "0.00%"; index = 0; Helpers.ConsolePrint("SubmitResultDialog", "Number of Devices: " + mm.CDevs.Count); if (mm.CDevs.Count == 1 && mm.CountBenchmarkedAlgos() != 0) { DialogResult result = MessageBox.Show(International.GetText("SubmitResultDialog_UsePreviousBenchmarkedValueMsg"), International.GetText("SubmitResultDialog_UsePreviousBenchmarkedValueTitle"), MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == System.Windows.Forms.DialogResult.Yes) { index = 9999; } } // Temporarily disable the other ComputeDevices in the same Group for (int i = 0; i < mm.CDevs.Count; i++) { if (mm.CDevs[i].ID != DeviceChecked_Index) { mm.CDevs[i].Enabled = false; } else { mm.CDevs[i].Enabled = true; } } BenchmarkProgressBar.Maximum = mm.SupportedAlgorithms.Length; // Parse GPU name Helpers.ConsolePrint("SubmitResultDialog", "Old DeviceName: " + DeviceName); if (DeviceName.Contains("GeForce") || DeviceName.Contains("GTX") || DeviceName.Contains("GT")) { string [] DeviceNameSplit = DeviceName.Split(' '); for (int i = 0; i < DeviceNameSplit.Length; i++) { Helpers.ConsolePrint("DEBUG", "DeviceNameSplit[" + i + "]: " + DeviceNameSplit[i]); if (DeviceNameSplit[i].Equals("GT") || DeviceNameSplit[i].Equals("GTX")) { if ((i + 2) <= DeviceNameSplit.Length) { DeviceName = "NVIDIA " + DeviceNameSplit[i] + DeviceNameSplit[i + 1]; for (int j = i + 2; j < DeviceNameSplit.Length; j++) { DeviceName += " " + DeviceNameSplit[j]; } break; } } } } Helpers.ConsolePrint("SubmitResultDialog", "New DeviceName: " + DeviceName); url = "https://www.nicehash.com/?p=calc&name=" + DeviceName; InitiateBenchmark(); }
private void InitiateBenchmark() { if (listView1.Items.Count > index) { ListViewItem lvi = listView1.Items[index]; index++; if (!lvi.Checked) { InitiateBenchmark(); return; } Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[2].Tag; lvi.SubItems[3].Text = "Please wait..."; inBenchmark = true; CurrentlyBenchmarking = m; if (m is cpuminer) Time = Config.ConfigData.BenchmarkTimeLimitsCPU[TimeIndex]; else if (m is ccminer) Time = Config.ConfigData.BenchmarkTimeLimitsNVIDIA[TimeIndex]; else { Time = Config.ConfigData.BenchmarkTimeLimitsAMD[TimeIndex] / 60; // add an aditional minute if second is not 0 if (DateTime.Now.Second != 0) Time += 1; } m.BenchmarkStart(i, Time, BenchmarkCompleted, lvi); } else { // average all cpu benchmarks if (Form1.Miners[0] is cpuminer) { Helpers.ConsolePrint("BENCHMARK", "Calculating average CPU speeds:"); double[] Speeds = new double[Form1.Miners[0].SupportedAlgorithms.Length]; int[] MTaken = new int[Form1.Miners[0].SupportedAlgorithms.Length]; foreach (ListViewItem lvi in listView1.Items) { if (lvi.Tag is cpuminer) { Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[2].Tag; if (m.SupportedAlgorithms[i].BenchmarkSpeed > 0) { Speeds[i] += m.SupportedAlgorithms[i].BenchmarkSpeed; MTaken[i]++; } } } for (int i = 0; i < Speeds.Length; i++) { if (MTaken[i] > 0) Speeds[i] /= MTaken[i]; Helpers.ConsolePrint("BENCHMARK", Form1.Miners[0].SupportedAlgorithms[i].NiceHashName + " average speed: " + Form1.Miners[0].PrintSpeed(Speeds[i])); foreach (Miner m in Form1.Miners) { if (m is cpuminer) m.SupportedAlgorithms[i].BenchmarkSpeed = Speeds[i]; } } } foreach (ListViewItem lvi in listView1.Items) { Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[2].Tag; lvi.SubItems[3].Text = m.PrintSpeed(m.SupportedAlgorithms[i].BenchmarkSpeed); } Config.RebuildGroups(); button1.Enabled = true; button2.Enabled = false; button3.Enabled = true; } }
private void InitiateBenchmark() { if (listView1.Items.Count > index) { string err; ListViewItem lvi = listView1.Items[index]; index++; if (!lvi.Checked) { InitiateBenchmark(); return; } Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[2].Tag; lvi.SubItems[3].Text = "Please wait..."; inBenchmark = true; CurrentlyBenchmarking = m; if (m is cpuminer) { Time = Config.ConfigData.BenchmarkTimeLimitsCPU[TimeIndex]; lvi.SubItems[3].Text = "Please wait about " + Time + " seconds..."; } else if (m is ccminer) { Time = Config.ConfigData.BenchmarkTimeLimitsNVIDIA[TimeIndex]; if (lvi.SubItems[2].Text.Equals("daggerhashimoto")) { lvi.SubItems[3].Text = "Creating DAG file (10-20 minutes).."; if (Ethereum.CreateDAGFile(true, m.MinerDeviceName, out err) == false) { lvi.SubItems[3].Text = err; InitiateBenchmark(); return; } lvi.SubItems[3].Text = "Benchmarking (2-4 minutes)..."; } else { lvi.SubItems[3].Text = "Please wait about " + Time + " seconds..."; } } else { Time = Config.ConfigData.BenchmarkTimeLimitsAMD[TimeIndex] / 60; // add an aditional minute if second is not 0 if (DateTime.Now.Second != 0) { Time += 1; } if (lvi.SubItems[2].Text.Equals("daggerhashimoto")) { lvi.SubItems[3].Text = "Creating DAG file (10-20 minutes).."; if (Ethereum.CreateDAGFile(true, m.MinerDeviceName, out err) == false) { lvi.SubItems[3].Text = err; InitiateBenchmark(); return; } lvi.SubItems[3].Text = "Benchmarking (2-4 minutes)..."; } else { lvi.SubItems[3].Text = "Please wait about " + Time + " minutes..."; } } m.BenchmarkStart(i, Time, BenchmarkCompleted, lvi); } else { // average all cpu benchmarks if (Form1.Miners[0] is cpuminer) { Helpers.ConsolePrint("BENCHMARK", "Calculating average CPU speeds:"); double[] Speeds = new double[Form1.Miners[0].SupportedAlgorithms.Length]; int[] MTaken = new int[Form1.Miners[0].SupportedAlgorithms.Length]; foreach (ListViewItem lvi in listView1.Items) { if (lvi.Tag is cpuminer) { Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[2].Tag; if (m.SupportedAlgorithms[i].BenchmarkSpeed > 0) { Speeds[i] += m.SupportedAlgorithms[i].BenchmarkSpeed; MTaken[i]++; } } } for (int i = 0; i < Speeds.Length; i++) { if (MTaken[i] > 0) { Speeds[i] /= MTaken[i]; } Helpers.ConsolePrint("BENCHMARK", Form1.Miners[0].SupportedAlgorithms[i].NiceHashName + " average speed: " + Form1.Miners[0].PrintSpeed(Speeds[i])); foreach (Miner m in Form1.Miners) { if (m is cpuminer) { m.SupportedAlgorithms[i].BenchmarkSpeed = Speeds[i]; } } } } foreach (ListViewItem lvi in listView1.Items) { Miner m = lvi.Tag as Miner; int i = (int)lvi.SubItems[2].Tag; lvi.SubItems[3].Text = m.PrintSpeed(m.SupportedAlgorithms[i].BenchmarkSpeed); } Config.RebuildGroups(); button1.Enabled = true; button2.Enabled = false; button3.Enabled = true; button4.Enabled = true; } }