mirror of
https://github.com/GOSTSec/ccminer
synced 2025-01-08 22:07:56 +00:00
api: add fan rpm (windows nvapi only)
This commit is contained in:
parent
f761531436
commit
ec454dd78c
17
api.cpp
17
api.cpp
@ -8,7 +8,7 @@
|
|||||||
* Software Foundation; either version 2 of the License, or (at your option)
|
* Software Foundation; either version 2 of the License, or (at your option)
|
||||||
* any later version. See COPYING for more details.
|
* any later version. See COPYING for more details.
|
||||||
*/
|
*/
|
||||||
#define APIVERSION "1.2"
|
#define APIVERSION "1.3"
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
# define _WINSOCK_DEPRECATED_NO_WARNINGS
|
# define _WINSOCK_DEPRECATED_NO_WARNINGS
|
||||||
@ -121,7 +121,8 @@ static void gpustatus(int thr_id)
|
|||||||
cgpu->has_monitoring = true;
|
cgpu->has_monitoring = true;
|
||||||
cgpu->gpu_bus = gpu_busid(cgpu);
|
cgpu->gpu_bus = gpu_busid(cgpu);
|
||||||
cgpu->gpu_temp = gpu_temp(cgpu);
|
cgpu->gpu_temp = gpu_temp(cgpu);
|
||||||
cgpu->gpu_fan = gpu_fanpercent(cgpu);
|
cgpu->gpu_fan = (uint16_t) gpu_fanpercent(cgpu);
|
||||||
|
cgpu->gpu_fan_rpm = (uint16_t) gpu_fanrpm(cgpu);
|
||||||
#endif
|
#endif
|
||||||
cuda_gpu_clocks(cgpu);
|
cuda_gpu_clocks(cgpu);
|
||||||
|
|
||||||
@ -145,9 +146,9 @@ static void gpustatus(int thr_id)
|
|||||||
card = device_name[gpuid];
|
card = device_name[gpuid];
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "GPU=%d;BUS=%hd;CARD=%s;"
|
snprintf(buf, sizeof(buf), "GPU=%d;BUS=%hd;CARD=%s;"
|
||||||
"TEMP=%.1f;FAN=%d;FREQ=%d;KHS=%.2f;HWF=%d;I=%d|",
|
"TEMP=%.1f;FAN=%hu;RPM=%hu;FREQ=%d;KHS=%.2f;HWF=%d;I=%d|",
|
||||||
gpuid, cgpu->gpu_bus, card, cgpu->gpu_temp, cgpu->gpu_fan,
|
gpuid, cgpu->gpu_bus, card, cgpu->gpu_temp, cgpu->gpu_fan,
|
||||||
cgpu->gpu_clock, cgpu->khashes,
|
cgpu->gpu_fan_rpm, cgpu->gpu_clock, cgpu->khashes,
|
||||||
cgpu->hw_errors, cgpu->intensity);
|
cgpu->hw_errors, cgpu->intensity);
|
||||||
|
|
||||||
// append to buffer for multi gpus
|
// append to buffer for multi gpus
|
||||||
@ -246,7 +247,8 @@ static void gpuhwinfos(int gpu_id)
|
|||||||
cgpu->has_monitoring = true;
|
cgpu->has_monitoring = true;
|
||||||
cgpu->gpu_bus = gpu_busid(cgpu);
|
cgpu->gpu_bus = gpu_busid(cgpu);
|
||||||
cgpu->gpu_temp = gpu_temp(cgpu);
|
cgpu->gpu_temp = gpu_temp(cgpu);
|
||||||
cgpu->gpu_fan = gpu_fanpercent(cgpu);
|
cgpu->gpu_fan = (uint16_t) gpu_fanpercent(cgpu);
|
||||||
|
cgpu->gpu_fan_rpm = (uint16_t) gpu_fanrpm(cgpu);
|
||||||
cgpu->gpu_pstate = gpu_pstate(cgpu);
|
cgpu->gpu_pstate = gpu_pstate(cgpu);
|
||||||
gpu_info(cgpu);
|
gpu_info(cgpu);
|
||||||
#endif
|
#endif
|
||||||
@ -260,10 +262,11 @@ static void gpuhwinfos(int gpu_id)
|
|||||||
card = device_name[gpu_id];
|
card = device_name[gpu_id];
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "GPU=%d;BUS=%hd;CARD=%s;SM=%u;MEM=%lu;"
|
snprintf(buf, sizeof(buf), "GPU=%d;BUS=%hd;CARD=%s;SM=%u;MEM=%lu;"
|
||||||
"TEMP=%.1f;FAN=%d;FREQ=%d;MEMFREQ=%d;PST=%s;"
|
"TEMP=%.1f;FAN=%hu;RPM=%hu;FREQ=%d;MEMFREQ=%d;PST=%s;"
|
||||||
"VID=%hx;PID=%hx;NVML=%d;NVAPI=%d;SN=%s;BIOS=%s|",
|
"VID=%hx;PID=%hx;NVML=%d;NVAPI=%d;SN=%s;BIOS=%s|",
|
||||||
gpu_id, cgpu->gpu_bus, card, cgpu->gpu_arch, cgpu->gpu_mem,
|
gpu_id, cgpu->gpu_bus, card, cgpu->gpu_arch, cgpu->gpu_mem,
|
||||||
cgpu->gpu_temp, cgpu->gpu_fan, cgpu->gpu_clock, cgpu->gpu_memclock,
|
cgpu->gpu_temp, cgpu->gpu_fan, cgpu->gpu_fan_rpm,
|
||||||
|
cgpu->gpu_clock, cgpu->gpu_memclock,
|
||||||
pstate, cgpu->gpu_vid, cgpu->gpu_pid, cgpu->nvml_id, cgpu->nvapi_id,
|
pstate, cgpu->gpu_vid, cgpu->gpu_pid, cgpu->nvml_id, cgpu->nvapi_id,
|
||||||
cgpu->gpu_sn, cgpu->gpu_desc);
|
cgpu->gpu_sn, cgpu->gpu_desc);
|
||||||
|
|
||||||
|
3
miner.h
3
miner.h
@ -389,7 +389,8 @@ struct cgpu_info {
|
|||||||
uint8_t intensity;
|
uint8_t intensity;
|
||||||
uint8_t has_monitoring;
|
uint8_t has_monitoring;
|
||||||
float gpu_temp;
|
float gpu_temp;
|
||||||
int gpu_fan;
|
uint16_t gpu_fan;
|
||||||
|
uint16_t gpu_fan_rpm;
|
||||||
uint16_t gpu_arch;
|
uint16_t gpu_arch;
|
||||||
int gpu_clock;
|
int gpu_clock;
|
||||||
int gpu_memclock;
|
int gpu_memclock;
|
||||||
|
14
nvml.cpp
14
nvml.cpp
@ -691,7 +691,7 @@ int nvapi_init()
|
|||||||
// assume 2500 rpm as default, auto-updated if more
|
// assume 2500 rpm as default, auto-updated if more
|
||||||
static unsigned int fan_speed_max = 2500;
|
static unsigned int fan_speed_max = 2500;
|
||||||
|
|
||||||
int gpu_fanpercent(struct cgpu_info *gpu)
|
unsigned int gpu_fanpercent(struct cgpu_info *gpu)
|
||||||
{
|
{
|
||||||
unsigned int pct = 0;
|
unsigned int pct = 0;
|
||||||
if (hnvml) {
|
if (hnvml) {
|
||||||
@ -708,9 +708,19 @@ int gpu_fanpercent(struct cgpu_info *gpu)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return (int) pct;
|
return pct;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned int gpu_fanrpm(struct cgpu_info *gpu)
|
||||||
|
{
|
||||||
|
unsigned int rpm = 0;
|
||||||
|
#ifdef WIN32
|
||||||
|
nvapi_fanspeed(nvapi_dev_map[gpu->gpu_id], &rpm);
|
||||||
|
#endif
|
||||||
|
return rpm;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
float gpu_temp(struct cgpu_info *gpu)
|
float gpu_temp(struct cgpu_info *gpu)
|
||||||
{
|
{
|
||||||
float tc = 0.0;
|
float tc = 0.0;
|
||||||
|
3
nvml.h
3
nvml.h
@ -158,7 +158,8 @@ int nvml_get_power_usage(nvml_handle *nvmlh,
|
|||||||
|
|
||||||
/* api functions */
|
/* api functions */
|
||||||
|
|
||||||
int gpu_fanpercent(struct cgpu_info *gpu);
|
unsigned int gpu_fanpercent(struct cgpu_info *gpu);
|
||||||
|
unsigned int gpu_fanrpm(struct cgpu_info *gpu);
|
||||||
float gpu_temp(struct cgpu_info *gpu);
|
float gpu_temp(struct cgpu_info *gpu);
|
||||||
unsigned int gpu_power(struct cgpu_info *gpu);
|
unsigned int gpu_power(struct cgpu_info *gpu);
|
||||||
unsigned int gpu_usage(struct cgpu_info *gpu);
|
unsigned int gpu_usage(struct cgpu_info *gpu);
|
||||||
|
Loading…
Reference in New Issue
Block a user