static void opencl_detect() { int i; nDevs = clDevicesNum(); if (nDevs < 0) { applog(LOG_ERR, "clDevicesNum returned error, no GPUs usable"); nDevs = 0; } if (!nDevs) return; for (i = 0; i < nDevs; ++i) { struct cgpu_info *cgpu; cgpu = &gpus[i]; cgpu->deven = DEV_ENABLED; cgpu->api = &opencl_api; cgpu->device_id = i; cgpu->threads = opt_g_threads; cgpu->virtual_gpu = i; add_cgpu(cgpu); } if (!opt_noadl) init_adl(nDevs); }
static void opencl_detect(bool hotplug) { int i; if (opt_nogpu || hotplug) return; nDevs = clDevicesNum(); if (nDevs < 0) { applog(LOG_ERR, "clDevicesNum returned error, no GPUs usable"); nDevs = 0; } if (!nDevs) return; /* If opt_g_threads is not set, use default 1 thread on scrypt and * 2 for regular mining */ if (opt_g_threads == -1) { if (opt_scrypt) opt_g_threads = 1; else opt_g_threads = 2; } if (opt_scrypt) opencl_drv.max_diff = 65536; for (i = 0; i < nDevs; ++i) { struct cgpu_info *cgpu; cgpu = &gpus[i]; cgpu->deven = DEV_ENABLED; cgpu->drv = &opencl_drv; cgpu->device_id = i; #ifndef HAVE_ADL cgpu->threads = opt_g_threads; #else if (cgpu->threads < 1) cgpu->threads = 1; #endif cgpu->virtual_gpu = i; add_cgpu(cgpu); } if (!opt_noadl) init_adl(nDevs); }
static void opencl_detect(void) { int i; nDevs = clDevicesNum(); if (nDevs < 0) { applog(LOG_ERR, "clDevicesNum returned error, no GPUs usable"); nDevs = 0; } if (!nDevs) return; /* If opt_g_threads is not set, use default 1 thread */ if (opt_g_threads == -1) opt_g_threads = 1; opencl_drv.max_diff = 65536; for (i = 0; i < nDevs; ++i) { struct cgpu_info *cgpu; cgpu = &gpus[i]; cgpu->deven = DEV_ENABLED; cgpu->drv = &opencl_drv; cgpu->thr = NULL; cgpu->device_id = i; #ifndef HAVE_ADL cgpu->threads = opt_g_threads; #else if (cgpu->threads < 1) cgpu->threads = 1; #endif cgpu->virtual_gpu = i; cgpu->algorithm = default_profile.algorithm; add_cgpu(cgpu); } if (!opt_noadl) init_adl(nDevs); }