Browse Source

opencl: Allow specifying a comma separated list for --gpu-threads

Nate Woolls 12 years ago
parent
commit
9b564e9668
4 changed files with 9 additions and 5 deletions
  1. 1 1
      README
  2. 4 1
      driver-opencl.c
  3. 1 0
      driver-opencl.h
  4. 3 3
      miner.c

+ 1 - 1
README

@@ -299,7 +299,7 @@ GPU only options:
 
 
 --auto-fan          Automatically adjust all GPU fan speeds to maintain a target temperature
 --auto-fan          Automatically adjust all GPU fan speeds to maintain a target temperature
 --auto-gpu          Automatically adjust all GPU engine clock speeds to maintain a target temperature
 --auto-gpu          Automatically adjust all GPU engine clock speeds to maintain a target temperature
---gpu-threads <arg> Number of threads per GPU (1 - 10) (default: -1)
+--gpu-threads <arg> Number of threads per GPU (1 - 10) - one value for all or separate by commas for per card (default: -1)
 --gpu-dyninterval <arg> Set the refresh interval in ms for GPUs using dynamic intensity (default: 7)
 --gpu-dyninterval <arg> Set the refresh interval in ms for GPUs using dynamic intensity (default: 7)
 --gpu-engine <arg>  GPU engine (over)clock range in MHz - one value, range and/or comma separated list (e.g. 850-900,900,750-850)
 --gpu-engine <arg>  GPU engine (over)clock range in MHz - one value, range and/or comma separated list (e.g. 850-900,900,750-850)
 --gpu-fan <arg>     GPU fan percentage range - one value, range and/or comma separated list (e.g. 25-85,85,65)
 --gpu-fan <arg>     GPU fan percentage range - one value, range and/or comma separated list (e.g. 25-85,85,65)

+ 4 - 1
driver-opencl.c

@@ -487,6 +487,8 @@ const char *set_intensity(char *arg)
 {
 {
 	return _set_list(arg, "Invalid value passed to intensity", _set_intensity);
 	return _set_list(arg, "Invalid value passed to intensity", _set_intensity);
 }
 }
+
+_SET_INT_LIST2(gpu_threads, (v >= 1 && v <= 10), cgpu->threads)
 #endif
 #endif
 
 
 void write_config_opencl(FILE * const fcfg)
 void write_config_opencl(FILE * const fcfg)
@@ -1276,7 +1278,8 @@ static int opencl_autodetect()
 		cgpu->deven = DEV_ENABLED;
 		cgpu->deven = DEV_ENABLED;
 		cgpu->drv = &opencl_api;
 		cgpu->drv = &opencl_api;
 		cgpu->device_id = i;
 		cgpu->device_id = i;
-		cgpu->threads = opt_g_threads;
+		if (cgpu->threads == 0)
+			cgpu->threads = opt_g_threads;
 		data->virtual_gpu = i;
 		data->virtual_gpu = i;
 		
 		
 #ifdef HAVE_SENSORS
 #ifdef HAVE_SENSORS

+ 1 - 0
driver-opencl.h

@@ -86,6 +86,7 @@ extern const char *set_gpu_fan(char *arg);
 extern const char *set_gpu_memclock(char *arg);
 extern const char *set_gpu_memclock(char *arg);
 extern const char *set_gpu_memdiff(char *arg);
 extern const char *set_gpu_memdiff(char *arg);
 extern const char *set_gpu_powertune(char *arg);
 extern const char *set_gpu_powertune(char *arg);
+extern const char *set_gpu_threads(char *arg);
 extern const char *set_gpu_vddc(char *arg);
 extern const char *set_gpu_vddc(char *arg);
 extern const char *set_temp_overheat(char *arg);
 extern const char *set_temp_overheat(char *arg);
 extern const char *set_intensity(char *arg);
 extern const char *set_intensity(char *arg);

+ 3 - 3
miner.c

@@ -2063,10 +2063,10 @@ static struct opt_table opt_config_table[] = {
 		     set_int_0_to_9999, opt_show_intval, &opt_platform_id,
 		     set_int_0_to_9999, opt_show_intval, &opt_platform_id,
 		     "Select OpenCL platform ID to use for GPU mining"),
 		     "Select OpenCL platform ID to use for GPU mining"),
 	OPT_WITH_ARG("--gpu-threads",
 	OPT_WITH_ARG("--gpu-threads",
-		     set_int_1_to_10, opt_show_intval, &opt_g_threads,
-		     "Number of threads per GPU (1 - 10)"),
+		     set_gpu_threads, opt_show_intval, &opt_g_threads,
+		     "Number of threads per GPU (1 - 10) - one value for all or separate by commas for per card"),
 	OPT_WITH_ARG("-g",
 	OPT_WITH_ARG("-g",
-	             set_int_1_to_10, opt_show_intval, &opt_g_threads,
+	             set_gpu_threads, opt_show_intval, &opt_g_threads,
 	             opt_hidden),
 	             opt_hidden),
 #ifdef HAVE_ADL
 #ifdef HAVE_ADL
 	OPT_WITH_ARG("--gpu-engine",
 	OPT_WITH_ARG("--gpu-engine",