Exemplo n.º 1
0
 public string GetString()
 {
     return(ComputerID.ToString() +
            "," + CpuID.ToString() +
            "," + RamID.ToString() +
            "," + HardDriveID.ToString() +
            "," + DisplayID.ToString() +
            "," + OsID.ToString());
 }
Exemplo n.º 2
0
        /// <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;
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 9
0
        // 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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        /// <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);
        }
Exemplo n.º 12
0
        /// <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();
        }
Exemplo n.º 13
0
                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");
                }
Exemplo n.º 14
0
 public override int GetHashCode()
 {
     return(BaseBoardSN.GetHashCode() ^ CpuID.GetHashCode() ^ HardDiskID.GetHashCode());
 }
Exemplo n.º 15
0
                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");
                }