public string GetString() { return(ComputerID.ToString() + "," + CpuID.ToString() + "," + RamID.ToString() + "," + HardDriveID.ToString() + "," + DisplayID.ToString() + "," + OsID.ToString()); }
/// <summary>验证数据,通过抛出异常的方式提示验证失败。</summary> /// <param name="isNew"></param> public override void Valid(Boolean isNew) { // 如果没有脏数据,则不需要进行任何处理 if (!HasDirty) { return; } if (Name.IsNullOrEmpty()) { throw new ArgumentNullException(__.Name, _.Name.DisplayName + "不能为空!"); } var len = _.CpuID.Length; if (CpuID != null && len > 0 && CpuID.Length > len) { CpuID = CpuID.Substring(0, len); } len = _.Uuid.Length; if (Uuid != null && len > 0 && Uuid.Length > len) { Uuid = Uuid.Substring(0, len); } len = _.MachineGuid.Length; if (MachineGuid != null && len > 0 && MachineGuid.Length > len) { MachineGuid = MachineGuid.Substring(0, len); } len = _.MACs.Length; if (MACs != null && len > 0 && MACs.Length > len) { MACs = MACs.Substring(0, len); } len = _.DiskID.Length; if (DiskID != null && len > 0 && DiskID.Length > len) { DiskID = DiskID.Substring(0, len); } len = _.OS.Length; if (OS != null && len > 0 && OS.Length > len) { OS = OS.Substring(0, len); } if (Period == 0) { Period = 60; } }
protected override Process BenchmarkStartProcess(string CommandLine) { Process BenchmarkHandle = base.BenchmarkStartProcess(CommandLine); var AffinityMask = MiningSetup.MiningPairs[0].Device.AffinityMask; if (AffinityMask != 0 && BenchmarkHandle != null) { CpuID.AdjustAffinity(BenchmarkHandle.Id, AffinityMask); } return(BenchmarkHandle); }
protected override NiceHashProcess _Start() { NiceHashProcess P = base._Start(); var AffinityMask = MiningSetup.MiningPairs[0].Device.AffinityMask; if (AffinityMask != 0 && P != null) { CpuID.AdjustAffinity(P.Id, AffinityMask); } return(P); }
protected override NiceHashProcess _Start(IReadOnlyDictionary <string, string> envVariables = null) { var p = base._Start(); var affinityMask = MiningSetup.MiningPairs[0].Device.AffinityMask; if (affinityMask != 0 && p != null) { CpuID.AdjustAffinity(p.Id, affinityMask); } return(p); }
protected override NiceHashProcess _Start() { var p = base._Start(); var affinityMask = MiningSetup.MiningPairs[0].Device.AffinityMask; if (affinityMask != 0 && p != null) { CpuID.AdjustAffinity(p.Id, affinityMask); } return(p); }
// benchmark stuff protected override Process BenchmarkStartProcess(string commandLine) { var benchmarkHandle = base.BenchmarkStartProcess(commandLine); if (CpuSetup.IsInit && benchmarkHandle != null) { var affinityMask = CpuSetup.MiningPairs[0].Device.AffinityMask; if (affinityMask != 0) { CpuID.AdjustAffinity(benchmarkHandle.Id, affinityMask); } } return(benchmarkHandle); }
// CPU aff set from NHM protected override NiceHashProcess _Start() { var P = base._Start(); if (CpuSetup.IsInit && P != null) { var affinityMask = CpuSetup.MiningPairs[0].Device.AffinityMask; if (affinityMask != 0) { CpuID.AdjustAffinity(P.Id, affinityMask); } } return(P); }
// CPU aff set from NHM protected override NiceHashProcess _Start(IReadOnlyDictionary <string, string> envVariables = null) { var P = base._Start(); if (CpuSetup.IsInit && P != null) { var affinityMask = CpuSetup.MiningPairs[0].Device.AffinityMask; if (affinityMask != 0) { CpuID.AdjustAffinity(P.Id, affinityMask); } } return(P); }
public static List <CpuComputeDevice> QueryCpus(out bool failed64Bit, out bool failedCpuCount) { Helpers.ConsolePrint(Tag, "QueryCpus START"); // get all CPUs var cpuCount = CpuID.GetPhysicalProcessorCount(); Helpers.ConsolePrint(Tag, CpuID.IsHypeThreadingEnabled() ? "HyperThreadingEnabled = TRUE" : "HyperThreadingEnabled = FALSE"); // get all cores (including virtual - HT can benefit mining) var threadsPerCpu = CpuID.GetVirtualCoresCount() / cpuCount; failed64Bit = !Helpers.Is64BitOperatingSystem; failedCpuCount = threadsPerCpu * cpuCount > 64; // TODO important move this to settings var threadsPerCpuMask = threadsPerCpu; Globals.ThreadsPerCpu = threadsPerCpu; var cpus = new List <CpuComputeDevice>(); if (CpuUtils.IsCpuMiningCapable() && !failed64Bit && !failedCpuCount) { if (cpuCount == 1) { cpus.Add(new CpuComputeDevice(0, "CPU0", CpuID.GetCpuName().Trim(), threadsPerCpu, 0, 1)); } else if (cpuCount > 1) { for (var i = 0; i < cpuCount; i++) { cpus.Add( new CpuComputeDevice(i, "CPU" + i, CpuID.GetCpuName().Trim(), threadsPerCpu, CpuID.CreateAffinityMask(i, threadsPerCpuMask), i + 1) ); } } } Helpers.ConsolePrint(Tag, "QueryCpus END"); return(cpus); }
/// <summary> /// HasExtensionSupport checks CPU extensions support, if type automatic just return false. /// </summary> /// <param name="type"></param> /// <returns>False if type Automatic otherwise True if supported</returns> private static bool HasExtensionSupport(CpuExtensionType type) { switch (type) { case CpuExtensionType.AVX2_AES: return((CpuID.SupportsAVX2() == 1) && (CpuID.SupportsAES() == 1)); case CpuExtensionType.AVX2: return(CpuID.SupportsAVX2() == 1); case CpuExtensionType.AVX_AES: return((CpuID.SupportsAVX() == 1) && (CpuID.SupportsAES() == 1)); case CpuExtensionType.AVX: return(CpuID.SupportsAVX() == 1); case CpuExtensionType.AES: return(CpuID.SupportsAES() == 1); case CpuExtensionType.SSE2: return(CpuID.SupportsSSE2() == 1); default: // CPUExtensionType.Automatic break; } return(false); }
/// <summary> /// 静态构造 /// </summary> private MachineCode() { ManagementObjectCollection collection = new ManagementClass("Win32_BaseBoard").GetInstances(); foreach (ManagementBaseObject mo in collection) { if (mo.Properties["SerialNumber"] != null && mo.Properties["SerialNumber"].Value != null) { BaseBoardID += String.Format("{0} ", mo.Properties["SerialNumber"].Value.ToString().Trim()); } } BaseBoardID = BaseBoardID.Trim(); collection = new ManagementClass("Win32_Processor").GetInstances(); foreach (ManagementBaseObject mo in collection) { if (mo.Properties["ProcessorId"] != null && mo.Properties["ProcessorId"].Value != null) { CpuID += String.Format("{0} ", mo.Properties["ProcessorId"].Value.ToString().Trim()); } } CpuID = CpuID.Trim(); }
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 override int GetHashCode() { return(BaseBoardSN.GetHashCode() ^ CpuID.GetHashCode() ^ HardDiskID.GetHashCode()); }
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"); }