|
@@ -120,6 +120,8 @@ static bool opt_quiet = false;
|
|
|
static int opt_retries = 10;
|
|
static int opt_retries = 10;
|
|
|
static int opt_fail_pause = 30;
|
|
static int opt_fail_pause = 30;
|
|
|
static int opt_log_interval = 5;
|
|
static int opt_log_interval = 5;
|
|
|
|
|
+int opt_vectors;
|
|
|
|
|
+int opt_worksize;
|
|
|
int opt_scantime = 60;
|
|
int opt_scantime = 60;
|
|
|
static json_t *opt_config;
|
|
static json_t *opt_config;
|
|
|
static const bool opt_time = true;
|
|
static const bool opt_time = true;
|
|
@@ -231,6 +233,12 @@ static struct option_help options_help[] = {
|
|
|
"(-u USERNAME) Username for bitcoin JSON-RPC server "
|
|
"(-u USERNAME) Username for bitcoin JSON-RPC server "
|
|
|
"(default: " DEF_RPC_USERNAME ")" },
|
|
"(default: " DEF_RPC_USERNAME ")" },
|
|
|
|
|
|
|
|
|
|
+ { "vectors N",
|
|
|
|
|
+ "(-v N) Override detected optimal vector width (default: detected, 1,2 or 4)" },
|
|
|
|
|
+
|
|
|
|
|
+ { "worksize N",
|
|
|
|
|
+ "(-w N) Override detected optimal worksize (default: detected)" },
|
|
|
|
|
+
|
|
|
{ "pass PASSWORD",
|
|
{ "pass PASSWORD",
|
|
|
"(-p PASSWORD) Password for bitcoin JSON-RPC server "
|
|
"(-p PASSWORD) Password for bitcoin JSON-RPC server "
|
|
|
"(default: " DEF_RPC_PASSWORD ")" },
|
|
"(default: " DEF_RPC_PASSWORD ")" },
|
|
@@ -257,6 +265,8 @@ static struct option options[] = {
|
|
|
#endif
|
|
#endif
|
|
|
{ "url", 1, NULL, 1001 },
|
|
{ "url", 1, NULL, 1001 },
|
|
|
{ "user", 1, NULL, 'u' },
|
|
{ "user", 1, NULL, 'u' },
|
|
|
|
|
+ { "vectors", 1, NULL, 'v' },
|
|
|
|
|
+ { "worksize", 1, NULL, 'w' },
|
|
|
{ "userpass", 1, NULL, 1002 },
|
|
{ "userpass", 1, NULL, 1002 },
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -902,7 +912,7 @@ static void *gpuminer_thread(void *userdata)
|
|
|
|
|
|
|
|
gettimeofday(&tv_start, NULL);
|
|
gettimeofday(&tv_start, NULL);
|
|
|
globalThreads[0] = threads;
|
|
globalThreads[0] = threads;
|
|
|
- localThreads[0] = clState->max_work_size / vectors;
|
|
|
|
|
|
|
+ localThreads[0] = clState->work_size;
|
|
|
|
|
|
|
|
while (1) {
|
|
while (1) {
|
|
|
struct timeval tv_end, diff, tv_workstart;
|
|
struct timeval tv_end, diff, tv_workstart;
|
|
@@ -1164,6 +1174,20 @@ static void parse_arg (int key, char *arg)
|
|
|
free(rpc_user);
|
|
free(rpc_user);
|
|
|
rpc_user = strdup(arg);
|
|
rpc_user = strdup(arg);
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case 'v':
|
|
|
|
|
+ v = atoi(arg);
|
|
|
|
|
+ if (v != 1 && v != 2 && v != 4)
|
|
|
|
|
+ show_usage();
|
|
|
|
|
+
|
|
|
|
|
+ opt_vectors = v;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'w':
|
|
|
|
|
+ v = atoi(arg);
|
|
|
|
|
+ if (v < 1 || v > 9999) /* sanity check */
|
|
|
|
|
+ show_usage();
|
|
|
|
|
+
|
|
|
|
|
+ opt_worksize = v;
|
|
|
|
|
+ break;
|
|
|
case 1001: /* --url */
|
|
case 1001: /* --url */
|
|
|
if (strncmp(arg, "http://", 7) &&
|
|
if (strncmp(arg, "http://", 7) &&
|
|
|
strncmp(arg, "https://", 8))
|
|
strncmp(arg, "https://", 8))
|