Browse Source

HAVE_OPENCL is mandatory, remove checks form code an build system.

nfactor-troky
Noel Maersk 11 years ago
parent
commit
199cb10e18
  1. 65
      api.c
  2. 56
      cgminer.c
  3. 1
      configure.ac
  4. 25
      driver-opencl.c
  5. 2
      findnonce.c
  6. 2
      findnonce.h
  7. 10
      miner.h
  8. 2
      ocl.c
  9. 2
      ocl.h

65
api.c

@ -138,19 +138,15 @@ static const char GPUSEP = ',';
static const char *APIVERSION = "1.32"; static const char *APIVERSION = "1.32";
static const char *DEAD = "Dead"; static const char *DEAD = "Dead";
#if defined(HAVE_OPENCL) || defined(HAVE_AN_FPGA) || defined(HAVE_AN_ASIC)
static const char *SICK = "Sick"; static const char *SICK = "Sick";
static const char *NOSTART = "NoStart"; static const char *NOSTART = "NoStart";
static const char *INIT = "Initialising"; static const char *INIT = "Initialising";
#endif
static const char *DISABLED = "Disabled"; static const char *DISABLED = "Disabled";
static const char *ALIVE = "Alive"; static const char *ALIVE = "Alive";
static const char *REJECTING = "Rejecting"; static const char *REJECTING = "Rejecting";
static const char *UNKNOWN = "Unknown"; static const char *UNKNOWN = "Unknown";
#define _DYNAMIC "D" #define _DYNAMIC "D"
#ifdef HAVE_OPENCL
static const char *DYNAMIC = _DYNAMIC; static const char *DYNAMIC = _DYNAMIC;
#endif
static __maybe_unused const char *NONE = "None"; static __maybe_unused const char *NONE = "None";
@ -164,11 +160,7 @@ static const char *FALSESTR = "false";
static const char *SCRYPTSTR = "scrypt"; static const char *SCRYPTSTR = "scrypt";
static const char *SHA256STR = "sha256"; static const char *SHA256STR = "sha256";
static const char *DEVICECODE = "" static const char *DEVICECODE = "GPU ";
#ifdef HAVE_OPENCL
"GPU "
#endif
"";
static const char *OSINFO = static const char *OSINFO =
#if defined(__linux) #if defined(__linux)
@ -381,43 +373,25 @@ struct CODES {
const enum code_parameters params; const enum code_parameters params;
const char *description; const char *description;
} codes[] = { } codes[] = {
#ifdef HAVE_OPENCL
{ SEVERITY_ERR, MSG_INVGPU, PARAM_GPUMAX, "Invalid GPU id %d - range is 0 - %d" }, { SEVERITY_ERR, MSG_INVGPU, PARAM_GPUMAX, "Invalid GPU id %d - range is 0 - %d" },
{ SEVERITY_INFO, MSG_ALRENA, PARAM_GPU, "GPU %d already enabled" }, { SEVERITY_INFO, MSG_ALRENA, PARAM_GPU, "GPU %d already enabled" },
{ SEVERITY_INFO, MSG_ALRDIS, PARAM_GPU, "GPU %d already disabled" }, { SEVERITY_INFO, MSG_ALRDIS, PARAM_GPU, "GPU %d already disabled" },
{ SEVERITY_WARN, MSG_GPUMRE, PARAM_GPU, "GPU %d must be restarted first" }, { SEVERITY_WARN, MSG_GPUMRE, PARAM_GPU, "GPU %d must be restarted first" },
{ SEVERITY_INFO, MSG_GPUREN, PARAM_GPU, "GPU %d sent enable message" }, { SEVERITY_INFO, MSG_GPUREN, PARAM_GPU, "GPU %d sent enable message" },
#endif
{ SEVERITY_ERR, MSG_GPUNON, PARAM_NONE, "No GPUs" }, { SEVERITY_ERR, MSG_GPUNON, PARAM_NONE, "No GPUs" },
{ SEVERITY_SUCC, MSG_POOL, PARAM_PMAX, "%d Pool(s)" }, { SEVERITY_SUCC, MSG_POOL, PARAM_PMAX, "%d Pool(s)" },
{ SEVERITY_ERR, MSG_NOPOOL, PARAM_NONE, "No pools" }, { SEVERITY_ERR, MSG_NOPOOL, PARAM_NONE, "No pools" },
{ SEVERITY_SUCC, MSG_DEVS, PARAM_DMAX, { SEVERITY_SUCC, MSG_DEVS, PARAM_DMAX, "%d GPU(s)" },
#ifdef HAVE_OPENCL
"%d GPU(s)"
#endif
#if defined(HAVE_OPENCL)
" - "
#endif
#if defined(HAVE_OPENCL)
" - "
#endif
},
{ SEVERITY_ERR, MSG_NODEVS, PARAM_NONE, "No GPUs" { SEVERITY_ERR, MSG_NODEVS, PARAM_NONE, "No GPUs"
}, },
{ SEVERITY_SUCC, MSG_SUMM, PARAM_NONE, "Summary" }, { SEVERITY_SUCC, MSG_SUMM, PARAM_NONE, "Summary" },
#ifdef HAVE_OPENCL
{ SEVERITY_INFO, MSG_GPUDIS, PARAM_GPU, "GPU %d set disable flag" }, { SEVERITY_INFO, MSG_GPUDIS, PARAM_GPU, "GPU %d set disable flag" },
{ SEVERITY_INFO, MSG_GPUREI, PARAM_GPU, "GPU %d restart attempted" }, { SEVERITY_INFO, MSG_GPUREI, PARAM_GPU, "GPU %d restart attempted" },
#endif
{ SEVERITY_ERR, MSG_INVCMD, PARAM_NONE, "Invalid command" }, { SEVERITY_ERR, MSG_INVCMD, PARAM_NONE, "Invalid command" },
{ SEVERITY_ERR, MSG_MISID, PARAM_NONE, "Missing device id parameter" }, { SEVERITY_ERR, MSG_MISID, PARAM_NONE, "Missing device id parameter" },
#ifdef HAVE_OPENCL
{ SEVERITY_SUCC, MSG_GPUDEV, PARAM_GPU, "GPU%d" }, { SEVERITY_SUCC, MSG_GPUDEV, PARAM_GPU, "GPU%d" },
#endif
{ SEVERITY_SUCC, MSG_NUMGPU, PARAM_NONE, "GPU count" }, { SEVERITY_SUCC, MSG_NUMGPU, PARAM_NONE, "GPU count" },
{ SEVERITY_SUCC, MSG_VERSION, PARAM_NONE, "CGMiner versions" }, { SEVERITY_SUCC, MSG_VERSION, PARAM_NONE, "CGMiner versions" },
{ SEVERITY_ERR, MSG_INVJSON, PARAM_NONE, "Invalid JSON" }, { SEVERITY_ERR, MSG_INVJSON, PARAM_NONE, "Invalid JSON" },
@ -431,7 +405,6 @@ struct CODES {
{ SEVERITY_ERR, MSG_INVINT, PARAM_STR, "Invalid intensity (%s) - must be '" _DYNAMIC "' or range " MIN_INTENSITY_STR " - " MAX_INTENSITY_STR }, { SEVERITY_ERR, MSG_INVINT, PARAM_STR, "Invalid intensity (%s) - must be '" _DYNAMIC "' or range " MIN_INTENSITY_STR " - " MAX_INTENSITY_STR },
{ SEVERITY_INFO, MSG_GPUINT, PARAM_BOTH, "GPU %d set new intensity to %s" }, { SEVERITY_INFO, MSG_GPUINT, PARAM_BOTH, "GPU %d set new intensity to %s" },
{ SEVERITY_SUCC, MSG_MINECONFIG,PARAM_NONE, "CGMiner config" }, { SEVERITY_SUCC, MSG_MINECONFIG,PARAM_NONE, "CGMiner config" },
#ifdef HAVE_OPENCL
{ SEVERITY_ERR, MSG_GPUMERR, PARAM_BOTH, "Setting GPU %d memoryclock to (%s) reported failure" }, { SEVERITY_ERR, MSG_GPUMERR, PARAM_BOTH, "Setting GPU %d memoryclock to (%s) reported failure" },
{ SEVERITY_SUCC, MSG_GPUMEM, PARAM_BOTH, "Setting GPU %d memoryclock to (%s) reported success" }, { SEVERITY_SUCC, MSG_GPUMEM, PARAM_BOTH, "Setting GPU %d memoryclock to (%s) reported success" },
{ SEVERITY_ERR, MSG_GPUEERR, PARAM_BOTH, "Setting GPU %d clock to (%s) reported failure" }, { SEVERITY_ERR, MSG_GPUEERR, PARAM_BOTH, "Setting GPU %d clock to (%s) reported failure" },
@ -440,7 +413,6 @@ struct CODES {
{ SEVERITY_SUCC, MSG_GPUVDDC, PARAM_BOTH, "Setting GPU %d vddc to (%s) reported success" }, { SEVERITY_SUCC, MSG_GPUVDDC, PARAM_BOTH, "Setting GPU %d vddc to (%s) reported success" },
{ SEVERITY_ERR, MSG_GPUFERR, PARAM_BOTH, "Setting GPU %d fan to (%s) reported failure" }, { SEVERITY_ERR, MSG_GPUFERR, PARAM_BOTH, "Setting GPU %d fan to (%s) reported failure" },
{ SEVERITY_SUCC, MSG_GPUFAN, PARAM_BOTH, "Setting GPU %d fan to (%s) reported success" }, { SEVERITY_SUCC, MSG_GPUFAN, PARAM_BOTH, "Setting GPU %d fan to (%s) reported success" },
#endif
{ SEVERITY_ERR, MSG_MISFN, PARAM_NONE, "Missing save filename parameter" }, { SEVERITY_ERR, MSG_MISFN, PARAM_NONE, "Missing save filename parameter" },
{ SEVERITY_ERR, MSG_BADFN, PARAM_STR, "Can't open or create save file '%s'" }, { SEVERITY_ERR, MSG_BADFN, PARAM_STR, "Can't open or create save file '%s'" },
{ SEVERITY_SUCC, MSG_SAVED, PARAM_STR, "Configuration saved to file '%s'" }, { SEVERITY_SUCC, MSG_SAVED, PARAM_STR, "Configuration saved to file '%s'" },
@ -1145,11 +1117,9 @@ static void message(struct io_data *io_data, int messageid, int paramid, char *p
case PARAM_POOL: case PARAM_POOL:
sprintf(buf, codes[i].description, paramid, pools[paramid]->rpc_url); sprintf(buf, codes[i].description, paramid, pools[paramid]->rpc_url);
break; break;
#ifdef HAVE_OPENCL
case PARAM_GPUMAX: case PARAM_GPUMAX:
sprintf(buf, codes[i].description, paramid, nDevs - 1); sprintf(buf, codes[i].description, paramid, nDevs - 1);
break; break;
#endif
case PARAM_PMAX: case PARAM_PMAX:
sprintf(buf, codes[i].description, total_pools); sprintf(buf, codes[i].description, total_pools);
break; break;
@ -1157,12 +1127,7 @@ static void message(struct io_data *io_data, int messageid, int paramid, char *p
sprintf(buf, codes[i].description, paramid, total_pools - 1); sprintf(buf, codes[i].description, paramid, total_pools - 1);
break; break;
case PARAM_DMAX: case PARAM_DMAX:
sprintf(buf, codes[i].description, nDevs);
sprintf(buf, codes[i].description
#ifdef HAVE_OPENCL
, nDevs
#endif
);
break; break;
case PARAM_CMD: case PARAM_CMD:
sprintf(buf, codes[i].description, JSON_COMMAND); sprintf(buf, codes[i].description, JSON_COMMAND);
@ -1646,9 +1611,7 @@ static void minerconfig(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __
const char *adl = NO; const char *adl = NO;
#endif #endif
#ifdef HAVE_OPENCL
gpucount = nDevs; gpucount = nDevs;
#endif
message(io_data, MSG_MINECONFIG, 0, NULL, isjson); message(io_data, MSG_MINECONFIG, 0, NULL, isjson);
io_open = io_add(io_data, isjson ? COMSTR JSON_MINECONFIG : _MINECONFIG COMSTR); io_open = io_add(io_data, isjson ? COMSTR JSON_MINECONFIG : _MINECONFIG COMSTR);
@ -1672,7 +1635,6 @@ static void minerconfig(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __
io_close(io_data); io_close(io_data);
} }
#if defined(HAVE_OPENCL)
static const char *status2str(enum alive status) static const char *status2str(enum alive status)
{ {
switch (status) { switch (status) {
@ -1690,9 +1652,7 @@ static const char *status2str(enum alive status)
return UNKNOWN; return UNKNOWN;
} }
} }
#endif
#ifdef HAVE_OPENCL
static void gpustatus(struct io_data *io_data, int gpu, bool isjson, bool precom) static void gpustatus(struct io_data *io_data, int gpu, bool isjson, bool precom)
{ {
struct api_data *root = NULL; struct api_data *root = NULL;
@ -1768,7 +1728,6 @@ static void gpustatus(struct io_data *io_data, int gpu, bool isjson, bool precom
io_add(io_data, buf); io_add(io_data, buf);
} }
} }
#endif
static void devstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group) static void devstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group)
{ {
@ -1776,10 +1735,7 @@ static void devstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __ma
int devcount = 0; int devcount = 0;
int numgpu = 0; int numgpu = 0;
int i; int i;
#ifdef HAVE_OPENCL
numgpu = nDevs; numgpu = nDevs;
#endif
if (numgpu == 0) { if (numgpu == 0) {
message(io_data, MSG_NODEVS, 0, NULL, isjson); message(io_data, MSG_NODEVS, 0, NULL, isjson);
@ -1791,18 +1747,15 @@ static void devstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __ma
if (isjson) if (isjson)
io_open = io_add(io_data, COMSTR JSON_DEVS); io_open = io_add(io_data, COMSTR JSON_DEVS);
#ifdef HAVE_OPENCL
for (i = 0; i < nDevs; i++) { for (i = 0; i < nDevs; i++) {
gpustatus(io_data, i, isjson, isjson && devcount > 0); gpustatus(io_data, i, isjson, isjson && devcount > 0);
devcount++; devcount++;
} }
#endif
if (isjson && io_open) if (isjson && io_open)
io_close(io_data); io_close(io_data);
} }
#ifdef HAVE_OPENCL
static void gpudev(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group) static void gpudev(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group)
{ {
bool io_open = false; bool io_open = false;
@ -1834,7 +1787,6 @@ static void gpudev(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *p
if (isjson && io_open) if (isjson && io_open)
io_close(io_data); io_close(io_data);
} }
#endif
static void poolstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group) static void poolstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group)
{ {
@ -1995,7 +1947,6 @@ static void summary(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __mayb
io_close(io_data); io_close(io_data);
} }
#ifdef HAVE_OPENCL
static void gpuenable(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group) static void gpuenable(struct io_data *io_data, __maybe_unused SOCKETTYPE c, char *param, bool isjson, __maybe_unused char group)
{ {
struct thr_info *thr; struct thr_info *thr;
@ -2101,7 +2052,6 @@ static void gpurestart(struct io_data *io_data, __maybe_unused SOCKETTYPE c, cha
message(io_data, MSG_GPUREI, id, NULL, isjson); message(io_data, MSG_GPUREI, id, NULL, isjson);
} }
#endif
static void gpucount(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group) static void gpucount(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group)
{ {
@ -2109,10 +2059,7 @@ static void gpucount(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __may
char buf[TMPBUFSIZ]; char buf[TMPBUFSIZ];
bool io_open; bool io_open;
int numgpu = 0; int numgpu = 0;
#ifdef HAVE_OPENCL
numgpu = nDevs; numgpu = nDevs;
#endif
message(io_data, MSG_NUMGPU, 0, NULL, isjson); message(io_data, MSG_NUMGPU, 0, NULL, isjson);
io_open = io_add(io_data, isjson ? COMSTR JSON_GPUS : _GPUS COMSTR); io_open = io_add(io_data, isjson ? COMSTR JSON_GPUS : _GPUS COMSTR);
@ -2474,7 +2421,6 @@ static void removepool(struct io_data *io_data, __maybe_unused SOCKETTYPE c, cha
rpc_url = NULL; rpc_url = NULL;
} }
#ifdef HAVE_OPENCL
static bool splitgpuvalue(struct io_data *io_data, char *param, int *gpu, char **value, bool isjson) static bool splitgpuvalue(struct io_data *io_data, char *param, int *gpu, char **value, bool isjson)
{ {
int id; int id;
@ -2622,7 +2568,6 @@ static void gpuvddc(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __mayb
message(io_data, MSG_NOADL, 0, NULL, isjson); message(io_data, MSG_NOADL, 0, NULL, isjson);
#endif #endif
} }
#endif
void doquit(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group) void doquit(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __maybe_unused char *param, bool isjson, __maybe_unused char group)
{ {
@ -3116,12 +3061,10 @@ struct CMDS {
{ "devs", devstatus, false }, { "devs", devstatus, false },
{ "pools", poolstatus, false }, { "pools", poolstatus, false },
{ "summary", summary, false }, { "summary", summary, false },
#ifdef HAVE_OPENCL
{ "gpuenable", gpuenable, true }, { "gpuenable", gpuenable, true },
{ "gpudisable", gpudisable, true }, { "gpudisable", gpudisable, true },
{ "gpurestart", gpurestart, true }, { "gpurestart", gpurestart, true },
{ "gpu", gpudev, false }, { "gpu", gpudev, false },
#endif
{ "gpucount", gpucount, false }, { "gpucount", gpucount, false },
{ "switchpool", switchpool, true }, { "switchpool", switchpool, true },
{ "addpool", addpool, true }, { "addpool", addpool, true },
@ -3130,13 +3073,11 @@ struct CMDS {
{ "enablepool", enablepool, true }, { "enablepool", enablepool, true },
{ "disablepool", disablepool, true }, { "disablepool", disablepool, true },
{ "removepool", removepool, true }, { "removepool", removepool, true },
#ifdef HAVE_OPENCL
{ "gpuintensity", gpuintensity, true }, { "gpuintensity", gpuintensity, true },
{ "gpumem", gpumem, true }, { "gpumem", gpumem, true },
{ "gpuengine", gpuengine, true }, { "gpuengine", gpuengine, true },
{ "gpufan", gpufan, true }, { "gpufan", gpufan, true },
{ "gpuvddc", gpuvddc, true }, { "gpuvddc", gpuvddc, true },
#endif
{ "save", dosave, true }, { "save", dosave, true },
{ "quit", doquit, true }, { "quit", doquit, true },
{ "privileged", privileged, true }, { "privileged", privileged, true },

56
cgminer.c

@ -90,14 +90,10 @@ static const bool opt_time = true;
unsigned long long global_hashrate; unsigned long long global_hashrate;
unsigned long global_quota_gcd = 1; unsigned long global_quota_gcd = 1;
#if defined(HAVE_OPENCL)
int nDevs; int nDevs;
#endif
#ifdef HAVE_OPENCL
int opt_dynamic_interval = 7; int opt_dynamic_interval = 7;
int opt_g_threads = -1; int opt_g_threads = -1;
int gpu_threads; int gpu_threads;
#endif
bool opt_restart = true; bool opt_restart = true;
bool opt_nogpu; bool opt_nogpu;
@ -1009,14 +1005,6 @@ static struct opt_table opt_config_table[] = {
OPT_WITH_ARG("--device|-d", OPT_WITH_ARG("--device|-d",
set_devices, NULL, NULL, set_devices, NULL, NULL,
"Select device to use, one value, range and/or comma separated (e.g. 0-2,4) default: all"), "Select device to use, one value, range and/or comma separated (e.g. 0-2,4) default: all"),
OPT_WITHOUT_ARG("--disable-gpu|-G",
opt_set_bool, &opt_nogpu,
#ifdef HAVE_OPENCL
"Disable GPU mining even if suitable devices exist"
#else
opt_hidden
#endif
),
OPT_WITHOUT_ARG("--disable-rejecting", OPT_WITHOUT_ARG("--disable-rejecting",
opt_set_bool, &opt_disable_pool, opt_set_bool, &opt_disable_pool,
"Automatically disable pools that continually reject shares"), "Automatically disable pools that continually reject shares"),
@ -1029,7 +1017,6 @@ static struct opt_table opt_config_table[] = {
OPT_WITHOUT_ARG("--fix-protocol", OPT_WITHOUT_ARG("--fix-protocol",
opt_set_bool, &opt_fix_protocol, opt_set_bool, &opt_fix_protocol,
"Do not redirect to a different getwork protocol (eg. stratum)"), "Do not redirect to a different getwork protocol (eg. stratum)"),
#ifdef HAVE_OPENCL
OPT_WITH_ARG("--gpu-dyninterval", OPT_WITH_ARG("--gpu-dyninterval",
set_int_1_to_65535, opt_show_intval, &opt_dynamic_interval, set_int_1_to_65535, opt_show_intval, &opt_dynamic_interval,
"Set the refresh interval in ms for GPUs using dynamic intensity"), "Set the refresh interval in ms for GPUs using dynamic intensity"),
@ -1073,17 +1060,12 @@ static struct opt_table opt_config_table[] = {
"Intensity of GPU scanning (d or " MIN_INTENSITY_STR "Intensity of GPU scanning (d or " MIN_INTENSITY_STR
" -> " MAX_INTENSITY_STR " -> " MAX_INTENSITY_STR
",default: d to maintain desktop interactivity)"), ",default: d to maintain desktop interactivity)"),
#endif
#if defined(HAVE_OPENCL)
OPT_WITH_ARG("--kernel-path|-K", OPT_WITH_ARG("--kernel-path|-K",
opt_set_charp, opt_show_charp, &opt_kernel_path, opt_set_charp, opt_show_charp, &opt_kernel_path,
"Specify a path to where kernel files are"), "Specify a path to where kernel files are"),
#endif
#ifdef HAVE_OPENCL
OPT_WITH_ARG("--kernel|-k", OPT_WITH_ARG("--kernel|-k",
set_kernel, NULL, NULL, set_kernel, NULL, NULL,
"Override kernel to use - one value or comma separated"), "Override kernel to use - one value or comma separated"),
#endif
OPT_WITHOUT_ARG("--load-balance", OPT_WITHOUT_ARG("--load-balance",
set_loadbalance, &pool_strategy, set_loadbalance, &pool_strategy,
"Change multipool strategy from failover to quota based balance"), "Change multipool strategy from failover to quota based balance"),
@ -1114,12 +1096,7 @@ static struct opt_table opt_config_table[] = {
opt_hidden), opt_hidden),
OPT_WITHOUT_ARG("--no-restart", OPT_WITHOUT_ARG("--no-restart",
opt_set_invbool, &opt_restart, opt_set_invbool, &opt_restart,
#ifdef HAVE_OPENCL "Do not attempt to restart GPUs that hang"),
"Do not attempt to restart GPUs that hang"
#else
opt_hidden
#endif
),
OPT_WITHOUT_ARG("--no-submit-stale", OPT_WITHOUT_ARG("--no-submit-stale",
opt_set_invbool, &opt_submit_stale, opt_set_invbool, &opt_submit_stale,
"Don't submit shares if they are detected as stale"), "Don't submit shares if they are detected as stale"),
@ -1223,19 +1200,15 @@ static struct opt_table opt_config_table[] = {
OPT_WITH_ARG("--user|-u", OPT_WITH_ARG("--user|-u",
set_user, NULL, NULL, set_user, NULL, NULL,
"Username for bitcoin JSON-RPC server"), "Username for bitcoin JSON-RPC server"),
#ifdef HAVE_OPENCL
OPT_WITH_ARG("--vectors|-v", OPT_WITH_ARG("--vectors|-v",
set_vector, NULL, NULL, set_vector, NULL, NULL,
"Override detected optimal vector (1, 2 or 4) - one value or comma separated list"), "Override detected optimal vector (1, 2 or 4) - one value or comma separated list"),
#endif
OPT_WITHOUT_ARG("--verbose", OPT_WITHOUT_ARG("--verbose",
opt_set_bool, &opt_log_output, opt_set_bool, &opt_log_output,
"Log verbose output to stderr as well as status output"), "Log verbose output to stderr as well as status output"),
#ifdef HAVE_OPENCL
OPT_WITH_ARG("--worksize|-w", OPT_WITH_ARG("--worksize|-w",
set_worksize, NULL, NULL, set_worksize, NULL, NULL,
"Override detected optimal worksize - one value or comma separated list"), "Override detected optimal worksize - one value or comma separated list"),
#endif
OPT_WITH_ARG("--userpass|-O", OPT_WITH_ARG("--userpass|-O",
set_userpass, NULL, NULL, set_userpass, NULL, NULL,
"Username:Password pair for bitcoin JSON-RPC server"), "Username:Password pair for bitcoin JSON-RPC server"),
@ -1387,25 +1360,18 @@ extern const char *opt_argv0;
static char *opt_verusage_and_exit(const char *extra) static char *opt_verusage_and_exit(const char *extra)
{ {
printf("%s\nBuilt with " printf("%s\n", packagename);
#ifdef HAVE_OPENCL // FIXME: true always
"GPU "
#endif
"scrypt mining support.\n"
, packagename);
printf("%s", opt_usage(opt_argv0, extra)); printf("%s", opt_usage(opt_argv0, extra));
fflush(stdout); fflush(stdout);
exit(0); exit(0);
} }
#if defined(HAVE_OPENCL)
char *display_devs(int *ndevs) char *display_devs(int *ndevs)
{ {
*ndevs = 0; *ndevs = 0;
print_ndevs(ndevs); print_ndevs(ndevs);
exit(*ndevs); exit(*ndevs);
} }
#endif
/* These options are available from commandline only */ /* These options are available from commandline only */
static struct opt_table opt_cmdline_table[] = { static struct opt_table opt_cmdline_table[] = {
@ -1420,12 +1386,10 @@ static struct opt_table opt_cmdline_table[] = {
OPT_WITHOUT_ARG("--help|-h", OPT_WITHOUT_ARG("--help|-h",
opt_verusage_and_exit, NULL, opt_verusage_and_exit, NULL,
"Print this message"), "Print this message"),
#if defined(HAVE_OPENCL)
OPT_WITHOUT_ARG("--ndevs|-n", OPT_WITHOUT_ARG("--ndevs|-n",
display_devs, &nDevs, display_devs, &nDevs,
"Display number of detected GPUs, OpenCL platform " "Display number of detected GPUs, OpenCL platform "
"information, and exit"), "information, and exit"),
#endif
OPT_WITHOUT_ARG("--version|-V", OPT_WITHOUT_ARG("--version|-V",
opt_version_and_exit, packagename, opt_version_and_exit, packagename,
"Display version and exit"), "Display version and exit"),
@ -1889,9 +1853,7 @@ static int devcursor, logstart, logcursor;
/* statusy is where the status window goes up to in cases where it won't fit at startup */ /* statusy is where the status window goes up to in cases where it won't fit at startup */
static int statusy; static int statusy;
#endif #endif
#ifdef HAVE_OPENCL
struct cgpu_info gpus[MAX_GPUDEVICES]; /* Maximum number apparently possible */ struct cgpu_info gpus[MAX_GPUDEVICES]; /* Maximum number apparently possible */
#endif
#ifdef HAVE_CURSES #ifdef HAVE_CURSES
static inline void unlock_curses(void) static inline void unlock_curses(void)
@ -4151,7 +4113,6 @@ void write_config(FILE *fcfg)
} }
fputs("\n]\n", fcfg); fputs("\n]\n", fcfg);
#ifdef HAVE_OPENCL
if (nDevs) { if (nDevs) {
/* Write GPU device values */ /* Write GPU device values */
fputs(",\n\"intensity\" : \"", fcfg); fputs(",\n\"intensity\" : \"", fcfg);
@ -4219,7 +4180,6 @@ void write_config(FILE *fcfg)
#endif #endif
fputs("\"", fcfg); fputs("\"", fcfg);
} }
#endif
#ifdef HAVE_ADL #ifdef HAVE_ADL
if (opt_reorder) if (opt_reorder)
fprintf(fcfg, ",\n\"gpu-reorder\" : true"); fprintf(fcfg, ",\n\"gpu-reorder\" : true");
@ -4772,10 +4732,8 @@ static void *input_thread(void __maybe_unused *userdata)
display_pools(); display_pools();
else if (!strncasecmp(&input, "s", 1)) else if (!strncasecmp(&input, "s", 1))
set_options(); set_options();
#if HAVE_OPENCL
else if (have_opencl && !strncasecmp(&input, "g", 1)) else if (have_opencl && !strncasecmp(&input, "g", 1))
manage_gpu(); manage_gpu();
#endif
if (opt_realquiet) { if (opt_realquiet) {
disable_curses(); disable_curses();
break; break;
@ -7063,7 +7021,7 @@ void print_summary(void)
static void clean_up(bool restarting) static void clean_up(bool restarting)
{ {
#ifdef HAVE_OPENCL #ifdef HAVE_ADL
clear_adl(nDevs); clear_adl(nDevs);
#endif #endif
cgtime(&total_tv_end); cgtime(&total_tv_end);
@ -7448,11 +7406,9 @@ void enable_device(struct cgpu_info *cgpu)
adj_width(mining_threads, &dev_width); adj_width(mining_threads, &dev_width);
#endif #endif
} }
#ifdef HAVE_OPENCL
if (cgpu->drv->drv_id == DRIVER_opencl) { if (cgpu->drv->drv_id == DRIVER_opencl) {
gpu_threads += cgpu->threads; gpu_threads += cgpu->threads;
} }
#endif
rwlock_init(&cgpu->qlock); rwlock_init(&cgpu->qlock);
cgpu->queued_work = NULL; cgpu->queued_work = NULL;
} }
@ -7611,11 +7567,9 @@ int main(int argc, char *argv[])
INIT_LIST_HEAD(&scan_devices); INIT_LIST_HEAD(&scan_devices);
#ifdef HAVE_OPENCL
memset(gpus, 0, sizeof(gpus)); memset(gpus, 0, sizeof(gpus));
for (i = 0; i < MAX_GPUDEVICES; i++) for (i = 0; i < MAX_GPUDEVICES; i++)
gpus[i].dynamic = true; gpus[i].dynamic = true;
#endif
/* parse command line */ /* parse command line */
opt_register_table(opt_config_table, opt_register_table(opt_config_table,
@ -7895,11 +7849,9 @@ begin_bench:
} }
} }
#ifdef HAVE_OPENCL
applog(LOG_INFO, "%d gpu miner threads started", gpu_threads); applog(LOG_INFO, "%d gpu miner threads started", gpu_threads);
for (i = 0; i < nDevs; i++) for (i = 0; i < nDevs; i++)
pause_dynamic_threads(i); pause_dynamic_threads(i);
#endif
cgtime(&total_tv_start); cgtime(&total_tv_start);
cgtime(&total_tv_end); cgtime(&total_tv_end);
@ -7918,7 +7870,6 @@ begin_bench:
quit(1, "watchdog thread create failed"); quit(1, "watchdog thread create failed");
pthread_detach(thr->pth); pthread_detach(thr->pth);
#ifdef HAVE_OPENCL
/* Create reinit gpu thread */ /* Create reinit gpu thread */
gpur_thr_id = 5; gpur_thr_id = 5;
thr = &control_thr[gpur_thr_id]; thr = &control_thr[gpur_thr_id];
@ -7927,7 +7878,6 @@ begin_bench:
quit(1, "tq_new failed for gpur_thr_id"); quit(1, "tq_new failed for gpur_thr_id");
if (thr_info_create(thr, NULL, reinit_gpu, thr)) if (thr_info_create(thr, NULL, reinit_gpu, thr))
quit(1, "reinit_gpu thread create failed"); quit(1, "reinit_gpu thread create failed");
#endif
/* Create API socket thread */ /* Create API socket thread */
api_thr_id = 6; api_thr_id = 6;

1
configure.ac

@ -158,7 +158,6 @@ if test "x$opencl" != xno; then
]], ]],
[[return clSetKernelArg(0, 0, 0, 0); ]])], [[return clSetKernelArg(0, 0, 0, 0); ]])],
[AC_MSG_RESULT(yes) [AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_OPENCL], [1], [Defined to 1 if OpenCL is present on the system.])
found_opencl=1 found_opencl=1
], ],
[AC_MSG_RESULT(no) [AC_MSG_RESULT(no)

25
driver-opencl.c

@ -62,7 +62,6 @@ extern int gpu_fanspeed(int gpu);
extern int gpu_fanpercent(int gpu); extern int gpu_fanpercent(int gpu);
#endif #endif
#ifdef HAVE_OPENCL
char *set_vector(char *arg) char *set_vector(char *arg)
{ {
int i, val = 0, device = 0; int i, val = 0, device = 0;
@ -235,7 +234,6 @@ char *set_kernel(char *arg)
return NULL; return NULL;
} }
#endif
#ifdef HAVE_ADL #ifdef HAVE_ADL
/* This function allows us to map an adl device to an opencl device for when /* This function allows us to map an adl device to an opencl device for when
@ -522,7 +520,7 @@ char *set_temp_target(char *arg)
return NULL; return NULL;
} }
#endif #endif
#ifdef HAVE_OPENCL
char *set_intensity(char *arg) char *set_intensity(char *arg)
{ {
int i, device = 0, *tt; int i, device = 0, *tt;
@ -575,13 +573,10 @@ void print_ndevs(int *ndevs)
clear_adl(*ndevs); clear_adl(*ndevs);
applog(LOG_INFO, "%i GPU devices max detected", *ndevs); applog(LOG_INFO, "%i GPU devices max detected", *ndevs);
} }
#endif
struct cgpu_info gpus[MAX_GPUDEVICES]; /* Maximum number apparently possible */ struct cgpu_info gpus[MAX_GPUDEVICES]; /* Maximum number apparently possible */
struct cgpu_info *cpus; struct cgpu_info *cpus;
#ifdef HAVE_OPENCL
/* In dynamic mode, only the first thread of each device will be in use. /* In dynamic mode, only the first thread of each device will be in use.
* This potentially could start a thread that was stopped with the start-stop * This potentially could start a thread that was stopped with the start-stop
* options if one were to disable dynamic from the menu on a paused GPU */ * options if one were to disable dynamic from the menu on a paused GPU */
@ -605,9 +600,7 @@ void pause_dynamic_threads(int gpu)
} }
} }
#endif /* HAVE_OPENCL */ #if defined(HAVE_CURSES)
#if defined(HAVE_OPENCL) && defined(HAVE_CURSES)
void manage_gpu(void) void manage_gpu(void)
{ {
struct thr_info *thr; struct thr_info *thr;
@ -832,8 +825,6 @@ void manage_gpu(void)
} }
#endif #endif
#ifdef HAVE_OPENCL
static _clState *clStates[MAX_GPUDEVICES]; static _clState *clStates[MAX_GPUDEVICES];
#define CL_SET_BLKARG(blkvar) status |= clSetKernelArg(*kernel, num++, sizeof(uint), (void *)&blk->blkvar) #define CL_SET_BLKARG(blkvar) status |= clSetKernelArg(*kernel, num++, sizeof(uint), (void *)&blk->blkvar)
@ -880,10 +871,7 @@ static void set_threads_hashes(unsigned int vectors,int64_t *hashes, size_t *glo
*globalThreads = threads; *globalThreads = threads;
*hashes = threads * vectors; *hashes = threads * vectors;
} }
#endif /* HAVE_OPENCL */
#ifdef HAVE_OPENCL
/* We have only one thread that ever re-initialises GPUs, thus if any GPU /* We have only one thread that ever re-initialises GPUs, thus if any GPU
* init command fails due to a completely wedged GPU, the thread will never * init command fails due to a completely wedged GPU, the thread will never
* return, unable to harm other GPUs. If it does return, it means we only had * return, unable to harm other GPUs. If it does return, it means we only had
@ -990,15 +978,7 @@ select_cgpu:
out: out:
return NULL; return NULL;
} }
#else
void *reinit_gpu(__maybe_unused void *userdata)
{
return NULL;
}
#endif
#ifdef HAVE_OPENCL
static void opencl_detect(bool hotplug) static void opencl_detect(bool hotplug)
{ {
int i; int i;
@ -1322,4 +1302,3 @@ struct device_drv opencl_drv = {
.scanhash = opencl_scanhash, .scanhash = opencl_scanhash,
.thread_shutdown = opencl_thread_shutdown, .thread_shutdown = opencl_thread_shutdown,
}; };
#endif

2
findnonce.c

@ -9,7 +9,6 @@
*/ */
#include "config.h" #include "config.h"
#ifdef HAVE_OPENCL
#include <stdio.h> #include <stdio.h>
#include <inttypes.h> #include <inttypes.h>
@ -233,4 +232,3 @@ void postcalc_hash_async(struct thr_info *thr, struct work *work, uint32_t *res)
return; return;
} }
} }
#endif /* HAVE_OPENCL */

2
findnonce.h

@ -9,8 +9,6 @@
#define BUFFERSIZE (sizeof(uint32_t) * MAXBUFFERS) #define BUFFERSIZE (sizeof(uint32_t) * MAXBUFFERS)
#define FOUND (0xFF) #define FOUND (0xFF)
#ifdef HAVE_OPENCL
extern void precalc_hash(dev_blk_ctx *blk, uint32_t *state, uint32_t *data); extern void precalc_hash(dev_blk_ctx *blk, uint32_t *state, uint32_t *data);
extern void postcalc_hash_async(struct thr_info *thr, struct work *work, uint32_t *res); extern void postcalc_hash_async(struct thr_info *thr, struct work *work, uint32_t *res);
#endif /* HAVE_OPENCL */
#endif /*__FINDNONCE_H__*/ #endif /*__FINDNONCE_H__*/

10
miner.h

@ -31,13 +31,11 @@ extern char *curly;
# include <netdb.h> # include <netdb.h>
#endif #endif
#ifdef HAVE_OPENCL
#ifdef __APPLE_CC__ #ifdef __APPLE_CC__
#include <OpenCL/opencl.h> #include <OpenCL/opencl.h>
#else #else
#include <CL/cl.h> #include <CL/cl.h>
#endif #endif
#endif /* HAVE_OPENCL */
#ifdef STDC_HEADERS #ifdef STDC_HEADERS
# include <stdlib.h> # include <stdlib.h>
@ -460,7 +458,6 @@ struct cgpu_info {
int64_t max_hashes; int64_t max_hashes;
const char *kname; const char *kname;
#ifdef HAVE_OPENCL
bool mapped; bool mapped;
int virtual_gpu; int virtual_gpu;
int virtual_adl; int virtual_adl;
@ -477,7 +474,6 @@ struct cgpu_info {
size_t shaders; size_t shaders;
struct timeval tv_gpustart; struct timeval tv_gpustart;
int intervals; int intervals;
#endif
bool new_work; bool new_work;
@ -1092,7 +1088,6 @@ extern uint64_t best_diff;
extern struct timeval block_timeval; extern struct timeval block_timeval;
extern char *workpadding; extern char *workpadding;
#ifdef HAVE_OPENCL
typedef struct { typedef struct {
cl_uint ctx_a; cl_uint ctx_b; cl_uint ctx_c; cl_uint ctx_d; cl_uint ctx_a; cl_uint ctx_b; cl_uint ctx_c; cl_uint ctx_d;
cl_uint ctx_e; cl_uint ctx_f; cl_uint ctx_g; cl_uint ctx_h; cl_uint ctx_e; cl_uint ctx_f; cl_uint ctx_g; cl_uint ctx_h;
@ -1119,11 +1114,6 @@ typedef struct {
struct work *work; struct work *work;
} dev_blk_ctx; } dev_blk_ctx;
#else
typedef struct {
uint32_t nonce;
} dev_blk_ctx;
#endif
struct curl_ent { struct curl_ent {
CURL *curl; CURL *curl;

2
ocl.c

@ -8,7 +8,6 @@
*/ */
#include "config.h" #include "config.h"
#ifdef HAVE_OPENCL
#include <signal.h> #include <signal.h>
#include <stdlib.h> #include <stdlib.h>
@ -772,5 +771,4 @@ built:
return clState; return clState;
} }
#endif /* HAVE_OPENCL */

2
ocl.h

@ -4,7 +4,6 @@
#include "config.h" #include "config.h"
#include <stdbool.h> #include <stdbool.h>
#ifdef HAVE_OPENCL
#ifdef __APPLE_CC__ #ifdef __APPLE_CC__
#include <OpenCL/opencl.h> #include <OpenCL/opencl.h>
#else #else
@ -36,5 +35,4 @@ typedef struct {
extern char *file_contents(const char *filename, int *length); extern char *file_contents(const char *filename, int *length);
extern int clDevicesNum(void); extern int clDevicesNum(void);
extern _clState *initCl(unsigned int gpu, char *name, size_t nameSize); extern _clState *initCl(unsigned int gpu, char *name, size_t nameSize);
#endif /* HAVE_OPENCL */
#endif /* __OCL_H__ */ #endif /* __OCL_H__ */

Loading…
Cancel
Save