public static void QueryCpus() { Helpers.ConsolePrint(Tag, "QueryCpus START"); // get all CPUs Available.CpusCount = CpuID.GetPhysicalProcessorCount(); Available.IsHyperThreadingEnabled = CpuID.IsHypeThreadingEnabled(); Helpers.ConsolePrint(Tag, Available.IsHyperThreadingEnabled ? "HyperThreadingEnabled = TRUE" : "HyperThreadingEnabled = FALSE"); // get all cores (including virtual - HT can benefit mining) var threadsPerCpu = CpuID.GetVirtualCoresCount() / Available.CpusCount; if (!Helpers.Is64BitOperatingSystem) { if (ConfigManager.GeneralConfig.ShowDriverVersionWarning) { MessageBox.Show(International.GetText("Form_Main_msgbox_CPUMining64bitMsg"), International.GetText("Warning_with_Exclamation"), MessageBoxButtons.OK, MessageBoxIcon.Warning); } Available.CpusCount = 0; } if (threadsPerCpu * Available.CpusCount > 64) { if (ConfigManager.GeneralConfig.ShowDriverVersionWarning) { MessageBox.Show(International.GetText("Form_Main_msgbox_CPUMining64CoresMsg"), International.GetText("Warning_with_Exclamation"), MessageBoxButtons.OK, MessageBoxIcon.Warning); } Available.CpusCount = 0; } // TODO important move this to settings var threadsPerCpuMask = threadsPerCpu; Globals.ThreadsPerCpu = threadsPerCpu; if (CpuUtils.IsCpuMiningCapable()) { if (Available.CpusCount == 1) { Available.Devices.Add( new CpuComputeDevice(0, "CPU0", CpuID.GetCpuName().Trim(), threadsPerCpu, 0, ++CpuCount) ); } else if (Available.CpusCount > 1) { for (var i = 0; i < Available.CpusCount; i++) { Available.Devices.Add( new CpuComputeDevice(i, "CPU" + i, CpuID.GetCpuName().Trim(), threadsPerCpu, CpuID.CreateAffinityMask(i, threadsPerCpuMask), ++CpuCount) ); } } } Helpers.ConsolePrint(Tag, "QueryCpus END"); }
public static void QueryCpus() { Helpers.ConsolePrint(Tag, "QueryCpus START"); // get all CPUs Available.CpusCount = CpuID.GetPhysicalProcessorCount(); Available.IsHyperThreadingEnabled = CpuID.IsHypeThreadingEnabled(); Helpers.ConsolePrint(Tag, Available.IsHyperThreadingEnabled ? "HyperThreadingEnabled = TRUE" : "HyperThreadingEnabled = FALSE"); // get all cores (including virtual - HT can benefit mining) var threadsPerCpu = CpuID.GetVirtualCoresCount() / Available.CpusCount; if (!Helpers.Is64BitOperatingSystem) { if (ConfigManager.GeneralConfig.ShowDriverVersionWarning) { MessageBox.Show(Tr("NiceHash Miner Legacy works only on 64-bit version of OS for CPU mining. CPU mining will be disabled."), Tr("Warning!"), MessageBoxButtons.OK, MessageBoxIcon.Warning); } Available.CpusCount = 0; } if (threadsPerCpu * Available.CpusCount > 64) { if (ConfigManager.GeneralConfig.ShowDriverVersionWarning) { MessageBox.Show(Tr("NiceHash Miner Legacy does not support more than 64 virtual cores. CPU mining will be disabled."), Tr("Warning!"), MessageBoxButtons.OK, MessageBoxIcon.Warning); } Available.CpusCount = 0; } // TODO important move this to settings var threadsPerCpuMask = threadsPerCpu; Globals.ThreadsPerCpu = threadsPerCpu; if (CpuUtils.IsCpuMiningCapable()) { if (Available.CpusCount == 1) { Available.Devices.Add( new CpuComputeDevice(0, "CPU0", CpuID.GetCpuName().Trim(), threadsPerCpu, 0, ++CpuCount) ); } else if (Available.CpusCount > 1) { for (var i = 0; i < Available.CpusCount; i++) { Available.Devices.Add( new CpuComputeDevice(i, "CPU" + i, CpuID.GetCpuName().Trim(), threadsPerCpu, CpuID.CreateAffinityMask(i, threadsPerCpuMask), ++CpuCount) ); } } } Helpers.ConsolePrint(Tag, "QueryCpus END"); }