Exemple #1
0
        public static void getGPU(ref UIDataGridView GPUStatusTable, ref int totalPower)
        {
            int GPUCount = 0;

            try
            {
                szzminer_overclock.AMD.NvmlHelper              nvmlHelper  = new szzminer_overclock.AMD.NvmlHelper();
                szzminer_overclock.AMD.NvapiHelper             nvapiHelper = new szzminer_overclock.AMD.NvapiHelper();
                List <szzminer_overclock.AMD.NvmlHelper.NvGpu> gpus        = nvmlHelper.GetGpus();
                uint coretemp = 0;
                uint memtemp  = 0;
                for (int i = 0; i < gpus.Count; i++)
                {
                    szzminer_overclock.AMD.OverClockRange overClockRange = nvapiHelper.GetClockRange(gpus[i].BusId);
                    GPUStatusTable.Rows[GPUCount].Cells[0].Value = gpus[i].BusId;
                    GPUStatusTable.Rows[GPUCount].Cells[1].Value = "NVIDIA " + gpus[i].Name + " " + gpus[i].TotalMemory / 1024 / 1000 / 1000 + "GB";
                    GPUStatusTable.Rows[GPUCount].Cells[5].Value = nvmlHelper.GetPowerUsage(i);
                    nvapiHelper.GetCoreTemperature(gpus[i].BusId, out coretemp);
                    nvapiHelper.GetMemTemperature(gpus[i].BusId, out memtemp);
                    GPUStatusTable.Rows[GPUCount].Cells[6].Value = coretemp.ToString() + "/" + memtemp.ToString();
                    GPUStatusTable.Rows[GPUCount].Cells[7].Value = nvmlHelper.GetFanSpeed(i);
                    GPUStatusTable.Rows[GPUCount].Cells[8].Value = nvmlHelper.GetCoreClock(i) + "Mhz";
                    GPUStatusTable.Rows[GPUCount].Cells[9].Value = nvmlHelper.GetMemoryClock(i) + "Mhz";
                    totalPower += Convert.ToInt32(GPUStatusTable.Rows[GPUCount].Cells[5].Value);
                    GPUCount++;
                }
            }
            catch
            {
                //WriteLog("没有发现N卡");
            }
            try
            {
                AdlHelper   adl = new AdlHelper();
                const ulong a = 1024 * 1024 * 1024;
                uint        power = 0, fan = 0;
                int         temp = 0;
                int         memtemp = 0;
                int         coreClock = 0, memoryClock = 0;
                for (int i = 0; i < adl.ATIGpus.Count; i++)
                {
                    adl.GetPowerFanTemp(adl.ATIGpus[i].BusNumber, out power, out fan, out temp, out memtemp);
                    adl.GetClockRange(adl.ATIGpus[i].BusNumber, out coreClock, out memoryClock);
                    GPUStatusTable.Rows[GPUCount].Cells[0].Value = adl.ATIGpus[i].BusNumber;
                    GPUStatusTable.Rows[GPUCount].Cells[1].Value = adl.ATIGpus[i].AdapterName + " " + ((adl.GetTotalMemory(adl.ATIGpus[i].AdapterIndex) + a - 1) / a).ToString() + "GB";;
                    GPUStatusTable.Rows[GPUCount].Cells[5].Value = power;
                    GPUStatusTable.Rows[GPUCount].Cells[6].Value = temp;
                    GPUStatusTable.Rows[GPUCount].Cells[7].Value = fan;
                    GPUStatusTable.Rows[GPUCount].Cells[8].Value = coreClock / 1000 + "Mhz";
                    GPUStatusTable.Rows[GPUCount].Cells[9].Value = memoryClock / 1000 + "Mhz";
                    totalPower += Convert.ToInt32(GPUStatusTable.Rows[GPUCount].Cells[5].Value);
                    GPUCount++;
                }
            }
            catch
            {
            }
        }
Exemple #2
0
        public static void getOverclockGPU(ref UIDataGridView GPUOverClockTable)
        {
            int GPUCount = 0;

            try
            {
                szzminer_overclock.AMD.NvmlHelper              nvmlHelper  = new szzminer_overclock.AMD.NvmlHelper();
                szzminer_overclock.AMD.NvapiHelper             nvapiHelper = new szzminer_overclock.AMD.NvapiHelper();
                List <szzminer_overclock.AMD.NvmlHelper.NvGpu> gpus        = nvmlHelper.GetGpus();
                for (int i = 0; i < gpus.Count; i++)
                {
                    szzminer_overclock.AMD.OverClockRange overClockRange = nvapiHelper.GetClockRange(gpus[i].BusId);
                    GPUOverClockTable.Rows[GPUCount].Cells[0].Value = gpus[i].BusId;
                    GPUOverClockTable.Rows[GPUCount].Cells[1].Value = "NVIDIA " + gpus[i].Name + " " + gpus[i].TotalMemory / 1024 / 1000 / 1000 + "GB";
                    GPUOverClockTable.Rows[GPUCount].Cells[5].Value = "N/A";
                    GPUOverClockTable.Rows[GPUCount].Cells[7].Value = "N/A";
                    GPUCount++;
                }
            }
            catch
            {
                //WriteLog("没有发现N卡");
            }
            try
            {
                AdlHelper   adl = new AdlHelper();
                const ulong a   = 1024 * 1024 * 1024;
                for (int i = 0; i < adl.ATIGpus.Count; i++)
                {
                    uint power, fan;
                    int  temp;
                    int  coreClock, memoryClock;
                    adl.GetPowerFanTemp(adl.ATIGpus[i].BusNumber, out power, out fan, out temp);
                    adl.GetClockRange(adl.ATIGpus[i].BusNumber, out coreClock, out memoryClock);
                    GPUOverClockTable.Rows[GPUCount].Cells[0].Value = adl.ATIGpus[i].BusNumber;
                    GPUOverClockTable.Rows[GPUCount].Cells[1].Value = adl.ATIGpus[i].AdapterName + " " + ((adl.GetTotalMemory(adl.ATIGpus[i].AdapterIndex) + a - 1) / a).ToString() + "GB";;
                    GPUOverClockTable.Rows[GPUCount].Cells[2].Value = adl.ATIGpus[i].PowerDefault.ToString();
                    GPUOverClockTable.Rows[GPUCount].Cells[3].Value = adl.ATIGpus[i].TempLimitDefault.ToString();
                    GPUOverClockTable.Rows[GPUCount].Cells[4].Value = (adl.ATIGpus[i].coreClockSelf).ToString();
                    GPUOverClockTable.Rows[GPUCount].Cells[5].Value = adl.ATIGpus[i].CoreVolt;
                    GPUOverClockTable.Rows[GPUCount].Cells[6].Value = (adl.ATIGpus[i].memoryClockSelf / 1000).ToString();
                    GPUOverClockTable.Rows[GPUCount].Cells[7].Value = adl.ATIGpus[i].MemoryVolt;
                    GPUCount++;
                }
            }
            catch
            {
            }
        }
Exemple #3
0
        public void LoadGpuState(int gpuIndex) {
            if (gpuIndex == NTMinerContext.GpuAllId) {
                return;
            }
            adlHelper.GetPowerFanTemp(gpuIndex, out uint power, out uint fanSpeed, out int temp);

            Gpu gpu = _gpus[gpuIndex];
            bool isChanged = gpu.Temperature != temp || gpu.PowerUsage != power || gpu.FanSpeed != fanSpeed;
            gpu.Temperature = temp;
            gpu.PowerUsage = power;
            gpu.FanSpeed = fanSpeed;

            if (isChanged) {
                VirtualRoot.RaiseEvent(new GpuStateChangedEvent(Guid.Empty, gpu));
            }
        }