mirror of
https://github.com/GOSTSec/sgminer
synced 2025-03-10 04:31:03 +00:00
Clearly delineate the cpus from the gpus for their local data.
This commit is contained in:
parent
142576a961
commit
72baac0889
46
cpu-miner.c
46
cpu-miner.c
@ -1277,9 +1277,10 @@ int main (int argc, char *argv[])
|
||||
struct thr_info *thr;
|
||||
unsigned int i;
|
||||
char name[32];
|
||||
struct cgpu_info *gpus, *cpus;
|
||||
|
||||
#ifdef WIN32
|
||||
opt_n_threads = 1;
|
||||
opt_n_threads = num_processors = 1;
|
||||
#else
|
||||
num_processors = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
opt_n_threads = num_processors;
|
||||
@ -1376,22 +1377,30 @@ int main (int argc, char *argv[])
|
||||
gettimeofday(&total_tv_start, NULL);
|
||||
gettimeofday(&total_tv_end, NULL);
|
||||
|
||||
if (opt_n_threads ) {
|
||||
cpus = calloc(num_processors, sizeof(struct cgpu_info));
|
||||
if (unlikely(!cpus)) {
|
||||
applog(LOG_ERR, "Failed to calloc cpus");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (gpu_threads) {
|
||||
gpus = calloc(nDevs, sizeof(struct cgpu_info));
|
||||
if (unlikely(!gpus)) {
|
||||
applog(LOG_ERR, "Failed to calloc gpus");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* start GPU mining threads */
|
||||
for (i = 0; i < gpu_threads; i++) {
|
||||
int gpu = gpu_from_thr_id(i);
|
||||
|
||||
thr = &thr_info[i];
|
||||
thr->id = i;
|
||||
if (!thr->cgpu) {
|
||||
thr->cgpu = calloc(1, sizeof(struct cgpu_info));
|
||||
if (unlikely(!thr->cgpu)) {
|
||||
applog(LOG_ERR, "Failed to calloc cgpu_info");
|
||||
return 1;
|
||||
}
|
||||
thr->cgpu->is_gpu = 1;
|
||||
thr->cgpu->cpu_gpu = gpu;
|
||||
} else
|
||||
thr->cgpu = thr_info[gpu].cgpu;
|
||||
gpus[gpu].is_gpu = 1;
|
||||
gpus[gpu].cpu_gpu = gpu;
|
||||
thr->cgpu = &gpus[gpu];
|
||||
|
||||
thr->q = tq_new();
|
||||
if (!thr->q) {
|
||||
@ -1423,15 +1432,8 @@ int main (int argc, char *argv[])
|
||||
thr = &thr_info[i];
|
||||
|
||||
thr->id = i;
|
||||
if (!thr->cgpu) {
|
||||
thr->cgpu = calloc(1, sizeof(struct cgpu_info));
|
||||
if (unlikely(!thr->cgpu)) {
|
||||
applog(LOG_ERR, "Failed to calloc cgpu_info");
|
||||
return 1;
|
||||
}
|
||||
thr->cgpu->cpu_gpu = cpu;
|
||||
} else
|
||||
thr->cgpu = thr_info[cpu].cgpu;
|
||||
cpus[cpu].cpu_gpu = cpu;
|
||||
thr->cgpu = &cpus[cpu];
|
||||
|
||||
thr->q = tq_new();
|
||||
if (!thr->q) {
|
||||
@ -1463,6 +1465,10 @@ int main (int argc, char *argv[])
|
||||
/* main loop - simply wait for workio thread to exit */
|
||||
pthread_join(thr_info[work_thr_id].pth, NULL);
|
||||
curl_global_cleanup();
|
||||
if (gpu_threads)
|
||||
free(gpus);
|
||||
if (opt_n_threads)
|
||||
free(cpus);
|
||||
|
||||
applog(LOG_INFO, "workio thread dead, exiting.");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user