Browse Source

opencl: Deprecate all dedicated commandline options for parameters accessible via set_device

Luke Dashjr 12 years ago
parent
commit
74cbb918a0
5 changed files with 64 additions and 248 deletions
  1. 3 22
      README
  2. 22 25
      README.GPU
  3. 24 24
      README.scrypt
  4. 0 139
      driver-opencl.c
  5. 15 38
      miner.c

+ 3 - 22
README

@@ -299,35 +299,16 @@ GPU only options:
 
 --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
---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-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-map <arg>     Map OpenCL to ADL device order manually, paired CSV (e.g. 1:0,2:1 maps OpenCL 1 to ADL 0, 2 to 1)
---gpu-memclock <arg> Set the GPU memory (over)clock in MHz - one value for all or separate by commas for per card.
---gpu-memdiff <arg> Set a fixed difference in clock speed between the GPU and memory in auto-gpu mode
 --gpu-platform <arg> Select OpenCL platform ID to use for GPU mining
---gpu-powertune <arg> Set the GPU powertune percentage - one value for all or separate by commas for per card.
 --gpu-reorder       Attempt to reorder GPU devices according to PCI Bus ID
---gpu-vddc <arg>    Set the GPU voltage in Volts - one value for all or separate by commas for per card.
---intensity <arg>   Intensity of GPU scanning (d or -10 -> 31,default: d to maintain desktop interactivity)
---kernel <arg>      Override sha256 kernel to use (diablo, poclbm, phatk or diakgcn) - one value or comma separated
 --no-adl            Disable the ATI display library used for monitoring and setting GPU parameters
---temp-overheat <arg> Overheat temperature when automatically managing fan and GPU speeds (default: 85)
---vectors <arg>     Override detected optimal vector (1, 2 or 4) - one value or comma separated list
---worksize <arg>    Override detected optimal worksize - one value or comma separated list
 
 GPU mining is disabled by default for SHA256d if you have any dedicated mining
 devices, but can be enabled explicitly specifying the -S opencl:auto option.
 
 See README.GPU for more information regarding GPU mining.
-
-scrypt only options:
-
---lookup-gap <arg>  Set GPU lookup gap for scrypt mining, comma separated
---shaders <arg>     GPU shaders per card for tuning scrypt, comma separated
---thread-concurrency <arg> Set GPU thread concurrency for scrypt mining, comma separated
-
 See README.scrypt for more information regarding (non-bitcoin) scrypt mining.
 
 
@@ -752,9 +733,9 @@ A; Try the --net-delay option if you are on a getwork or GBT server.
 Q: How do I tune for P2Pool?
 A: P2Pool has very rapid expiration of work and new blocks, it is suggested you
 decrease intensity by 1 from your optimal value, and decrease GPU threads to 1
-with --gpu-threads 1. It is also recommended to use --failover-only since the
-work is effectively like a different block chain. If mining with a Mini Rig, it
-is worth adding the --bfl-range option.
+with --set-device OCL:threads=1. It is also recommended to use --failover-only
+since the work is effectively like a different block chain. If mining with a
+Mini Rig, it is worth adding the --bfl-range option.
 
 Q: Are OpenCL kernels from other mining software useable in BFGMiner?
 A: No, the APIs are slightly different between the different software and they

+ 22 - 25
README.GPU

@@ -14,23 +14,23 @@ mining performance.
 
 Single pool, dedicated miner:
 
-bfgminer -S opencl:auto -o http://pool:port -u username -p password --intensity 9
+bfgminer -S opencl:auto -o http://pool:port -u username -p password --set-device intensity=9
 
 Single pool, first card regular desktop, 3 other dedicated cards:
 
-bfgminer -S opencl:auto -o http://pool:port -u username -p password --intensity d,9,9,9
+bfgminer -S opencl:auto -o http://pool:port -u username -p password --set-device intensity=9 --set-device OCL0:intensity=d
 
 Multiple pool, dedicated miner:
 
-bfgminer -S opencl:auto -o http://pool1:port -u pool1username -p pool1password -o http://pool2:port -u pool2usernmae -p pool2password --intensity 9
+bfgminer -S opencl:auto -o http://pool1:port -u pool1username -p pool1password -o http://pool2:port -u pool2usernmae -p pool2password --set-device intensity=9
 
 Add overclocking settings, GPU and fan control for all cards:
 
-bfgminer -S opencl:auto -o http://pool:port -u username -p password --intensity 9 --auto-fan --auto-gpu --gpu-engine 750-950 --gpu-memclock 300
+bfgminer -S opencl:auto -o http://pool:port -u username -p password --set-device intensity=9 --auto-fan --auto-gpu --set-device OCL:clock=750-950 --set-device OCL:memclock=300
 
 Add overclocking settings, GPU and fan control with different engine settings for 4 cards:
 
-bfgminer -S opencl:auto -o http://pool:port -u username -p password --intensity 9 --auto-fan --auto-gpu --gpu-engine 750-950,945,700-930,960 --gpu-memclock 300
+bfgminer -S opencl:auto -o http://pool:port -u username -p password --set-device intensity=9 --auto-fan --auto-gpu --set-device OCL0:clock=750-950 --set-device OCL1:clock=945 --set-device OCL2:clock=700-930 --set-device OCL3:clock=960 --set-device OCL:memclock=300
 
 READ WARNINGS AND DOCUMENTATION BELOW ABOUT OVERCLOCKING
 
@@ -114,19 +114,15 @@ specified. All settings can all be changed within the menu on the fly on a
 per-GPU basis.
 
 For example:
---gpu-engine 950 --gpu-memclock 825
+--set-device OCL:clock=950 --set-device OCL:memclock=825
 
 will try to set all GPU engine clocks to 950 and all memory clocks to 825,
 while:
---gpu-engine 950,945,930,960 --gpu-memclock 300
+--set-device OCL0:clock=950 --set-device OCL1:clock=945 --set-device OCL2:clock=930 --set-device OCL3:clock=960 --set-device OCL:memclock=300
 
 will try to set the engine clock of card 0 to 950, 1 to 945, 2 to 930, 3 to
 960 and all memory clocks to 300.
 
-You can substitute 0 to leave the engine clock of a card at its default.
-For example, to keep the 2nd GPU to its default clocks:
---gpu-engine 950,0,930,960 --gpu-memclock 300,0,300,300
-
 AUTO MODES:
 There are two "auto" modes in BFGMiner, --auto-fan and --auto-gpu. These can be
 used independently of each other and are complementary. Both auto modes are
@@ -143,7 +139,7 @@ Sets card 0 target temperature to 75, and card 1 to 85 degrees.
 AUTO FAN:
 e.g.
 --auto-fan (implies 85% upper limit)
---gpu-fan 25-85,65 --auto-fan
+--set-device OCL0:fan=25-85 --set-device OCL1:fan=65 --auto-fan
 
 Fan control in auto fan works off the theory that the minimum possible fan
 required to maintain an optimal temperature will use less power, make less
@@ -152,17 +148,16 @@ limited to 85% if the temperature is below "overheat" intentionally, as higher
 fanspeeds on GPUs do not produce signficantly more cooling, yet significantly
 shorten the lifespan of the fans. If temperature reaches the overheat value,
 fanspeed will still be increased to 100%. The overheat value is set to 85
-degrees by default and can be changed with:
+degrees by default and can be changed with the temp_overheat setting:
 
---temp-overheat
 e.g.
---temp-overheat 75,85
+--set-device OCL0:temp_overheat=75 --set-device OCL1:temp_overheat=85
 Sets card 0 overheat threshold to 75 degrees and card 1 to 85.
 
 AUTO GPU:
 e.g.
---auto-gpu --gpu-engine 750-950
---auto-gpu --gpu-engine 750-950,945,700-930,960
+--auto-gpu --set-device OCL:clock=750-950
+--auto-gpu --set-device OCL0:clock=750-950 --set-device OCL1:clock=945 --set-device OCL2:clock=700-930 --set-device OCL3:clock=960
 
 GPU control in auto gpu tries to maintain as high a clock speed as possible
 while not reaching overheat temperatures. As a lower clock speed limit, the
@@ -187,7 +182,7 @@ temperature can be changed with:
 --set-device OCL0:temp-cutoff=95 --set-device OCL1:temp-cutoff=105
 Sets card 0 cutoff temperature to 95 and card 1 to 105.
 
---gpu-memdiff -125
+--set-device OCL:memdiff=-125
 This setting will modify the memory speed whenever the GPU clock speed is
 modified by --auto-gpu. In this example, it will set the memory speed to be 125
 MHz lower than the GPU speed. This is useful for some cards like the 6970 which
@@ -306,7 +301,9 @@ To work around this you would use:
 GPU FAQ:
 
 Q: Can I change the intensity settings individually for each GPU?
-A: Yes, pass a list separated by commas such as --intensity d,4,9,9
+A: Yes, specify the devices by identifier: --set-device intensity=9 --set-device
+OCL0:intensity=d --set-device OCL1:intensity=4 (be sure you set the catch-all
+first!)
 
 Q: The CPU usage is high.
 A: The ATI drivers after 11.6 have a bug that makes them consume 100% of one
@@ -324,12 +321,12 @@ you will be able to run. You are more likely to hit your limits with BFGMiner
 and you will find you may need to overclock your GPU less aggressively. The
 software cannot be responsible and make your GPU hang directly. If you simply
 cannot get it to ever stop hanging, try decreasing the intensity, and if even
-that fails, try changing to the poclbm kernel with --kernel poclbm, though you
-will sacrifice performance. BFGMiner is designed to try and safely restart GPUs
-as much as possible, but NOT if that restart might actually crash the rest of
-the GPUs mining, or even the machine. It tries to restart them with a separate
-thread and if that separate thread dies, it gives up trying to restart any more
-GPUs.
+that fails, try changing to the poclbm kernel with --set-device
+OCL:kernel=poclbm, though you will sacrifice performance. BFGMiner is designed
+to try and safely restart GPUs as much as possible, but NOT if that restart
+might actually crash the rest of the GPUs mining, or even the machine. It tries
+to restart them with a separate thread and if that separate thread dies, it
+gives up trying to restart any more GPUs.
 
 Q: Can you change the autofan/autogpu to change speeds in a different manner?
 A: The defaults are sane and safe. I'm not interested in changing them further.

+ 24 - 24
README.scrypt

@@ -40,7 +40,7 @@ lines are in the .bat before starting BFGMiner:
 setx GPU_MAX_ALLOC_PERCENT 100
 setx GPU_USE_SYNC_OBJECTS 1
 
---intensity XX
+intensity=XX
 
 Just like in Bitcoin mining, scrypt mining takes an intensity, however the
 scale goes from 0 to 31. 
@@ -54,7 +54,7 @@ to a running desktop and performance WILL be poor. The lower limit to intensity
 with scrypt is usually 8 and BFGMiner will prevent it going too low.
 SUMMARY: Setting this for reasonable hashrates is mandatory.
 
---shaders XXX
+shaders=XXX
 
 is a new option where you tell BFGMiner how many shaders your GPU has. This
 helps BFGMiner try to choose some meaningful baseline parameters. Use this table
@@ -99,41 +99,40 @@ all you will need to set.
 
 
 Optional parameters to tune:
---gpu-threads, --thread-concurrency, --lookup-gap
+threads, thread-concurrency, lookup-gap
 
---thread-concurrency:
+thread-concurrency:
 This tunes the optimal size of work that scrypt can do. It is internally tuned
 by BFGMiner to be the highest reasonable multiple of shaders that it can
 allocate on your GPU. Ideally it should be a multiple of your shader count.
 vliw5 architecture (R5XXX) would be best at 5x shaders, while VLIW4 (R6xxx and
 R7xxx) are best at 4x. Setting thread concurrency overrides anything you put
-into --shaders and is ultimately a BETTER way to tune performance.
+into the shaders config and is ultimately a BETTER way to tune performance.
 SUMMARY: Spend lots of time finding the highest value that your device likes
 and increases hashrate.
 
---gpu-threads:
+threads:
 Once you have found the optimal shaders and intensity, you can start increasing
-the --gpu-threads value till BFGMiner fails to start. This is really only of
-value if you want to run low intensities as you will be unable to run more than
-1.
+the threads value till BFGMiner fails to start. This is really only of value if
+you want to run low intensities as you will be unable to run more than 1.
 SUMMARY: Don't touch this.
 
---lookup-gap
+lookup-gap:
 This tunes a compromise between ram usage and performance. Performance peaks
 at a gap of 2, but increasing the gap can save you some GPU ram, but almost
 always at the cost of significant loss of hashrate. Setting lookup gap
-overrides the default of 2, but BFGMiner will use the --shaders value to choose
-a thread-concurrency if you haven't chosen one.
+overrides the default of 2, but BFGMiner will use the provided shaders value to
+choose a thread-concurrency if you haven't chosen one.
 SUMMARY: Don't touch this.
 
 
 Related parameters:
---worksize XX
+work_size=XX
 Has a minor effect, should be a multiple of 64 up to 256 maximum.
 SUMMARY: Worth playing with once everything else has been tried but will
 probably do nothing.
 
---vectors XX
+vectors=XX
 Vectors are NOT used by the scrypt mining kernel.
 SUMMARY: Does nothing.
 
@@ -157,7 +156,8 @@ required for scrypt mining, and 4GB is suggested.
 Finally, the power consumption while mining at high engine clocks, very high
 memory clocks can be far in excess of what you might imagine.
 For example, a 7970 running with the following settings:
---thread-concurrency 22392 --gpu-engine 1135 --gpu-memclock 1890
+--set-device OCL:thread-concurrency=22392 --set-device OCL:clock=1135
+--set-device OCL:memclock=1890
 was using 305W!
 
 ---
@@ -181,7 +181,7 @@ generated.
 
 First try without any thread concurrency or even shaders, as BFGMiner will try to
 find an optimal value:
-bfgminer --intensity 13
+bfgminer --set-device OCL:intensity=13
 
 If that starts mining, see what bin was generated, it is likely the largest
 meaningful TC you can set.
@@ -190,13 +190,13 @@ scrypt130302Tahitiglg2tc22392w64l8.bin
 
 Note that tc22392 tells you what thread concurrency it was. It should start
 without TC parameters, but you never know. So if it doesn't, start with
---thread-concurrency 8192 and add 2048 to it at a time till you find the highest
-value it will start successfully at.
+--set-device OCL:thread-concurrency=8192 and add 2048 to it at a time till you
+find the highest value it will start successfully at.
 
 If you wish to get a little extra from your hardware, you may also try
 overclocking. Do note that this will damage your GPUs and void your warranty,
-so unless you are willing to take that risk, skip the --gpu-engine and
---gpu-memclock sections!
+so unless you are willing to take that risk, skip the clock and memclock
+parameters!
 
 Then start overclocking the eyeballs off your memory, as 7970s are exquisitely
 sensitive to memory speed and amazingly overclockable but please make sure it
@@ -217,14 +217,14 @@ without crashing the GPU, you will have to use a lower memclock.
 Then, and only then, bother trying to increase intensity further.
 
 My final settings were:
---gpu-engine 1141  --gpu-memclock 1875 --intensity 20
+--set-device OCL:clock=1141 --set-device OCL:memclock=1875 --set-device OCL:intensity=20
 for a hashrate of 745kH.
 
 Note I did not bother setting a thread concurrency. Once you have the magic
 endpoint, look at what tc was chosen by the bin file generated and then hard
-code that in next time (eg --thread-concurrency 22392) as slight changes in
-thread concurrency will happen every time if you don't specify one, and the tc
-to clock ratios are critical!
+code that in next time (eg --set-device OCL:thread-concurrency=22392) as slight
+changes in thread concurrency will happen every time if you don't specify one,
+and the tc to clock ratios are critical!
 
 Your numbers will be your numbers depending on your hardware combination and OS,
 so don't expect to get exactly the same results!

+ 0 - 139
driver-opencl.c

@@ -614,145 +614,6 @@ _SET_INT_LIST2(gpu_threads, (v >= 1 && v <= 10), cgpu->threads)
 
 void write_config_opencl(FILE * const fcfg)
 {
-	int i;
-#ifdef HAVE_OPENCL
-	if (nDevs) {
-		/* Write GPU device values */
-		fputs(",\n\"intensity\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			if (i > 0)
-				fputc(',', fcfg);
-			if (data->dynamic)
-				fputc('d', fcfg);
-			else
-				fprintf(fcfg, "%g", oclthreads_to_intensity(data->oclthreads, !opt_scrypt));
-		}
-		fputs("\",\n\"vectors\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "",
-			        data->vwidth);
-		}
-		fputs("\",\n\"worksize\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "",
-			        (int)data->work_size);
-		}
-		fputs("\",\n\"kernel\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++) {
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s", i > 0 ? "," : "");
-			switch (data->kernel) {
-				case KL_NONE: // Shouldn't happen
-					break;
-				case KL_POCLBM:
-					fprintf(fcfg, "poclbm");
-					break;
-				case KL_PHATK:
-					fprintf(fcfg, "phatk");
-					break;
-				case KL_DIAKGCN:
-					fprintf(fcfg, "diakgcn");
-					break;
-				case KL_DIABLO:
-					fprintf(fcfg, "diablo");
-					break;
-				case KL_SCRYPT:
-					fprintf(fcfg, "scrypt");
-					break;
-			}
-		}
-#ifdef USE_SCRYPT
-		fputs("\",\n\"lookup-gap\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "",
-			        (int)data->opt_lg);
-		}
-		fputs("\",\n\"thread-concurrency\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "",
-			        (int)data->opt_tc);
-		}
-		fputs("\",\n\"shaders\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "",
-			        (int)data->shaders);
-		}
-#endif
-#ifdef HAVE_ADL
-		fputs("\",\n\"gpu-engine\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d-%d", i > 0 ? "," : "",
-			        data->min_engine, data->gpu_engine);
-		}
-		fputs("\",\n\"gpu-fan\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d-%d", i > 0 ? "," : "",
-			        data->min_fan, data->gpu_fan);
-		}
-		fputs("\",\n\"gpu-memclock\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "", data->gpu_memclock);
-		}
-		fputs("\",\n\"gpu-memdiff\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "", data->gpu_memdiff);
-		}
-		fputs("\",\n\"gpu-powertune\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "", data->gpu_powertune);
-		}
-		fputs("\",\n\"gpu-vddc\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%1.3f", i > 0 ? "," : "", data->gpu_vddc);
-		}
-		fputs("\",\n\"temp-overheat\" : \"", fcfg);
-		for(i = 0; i < nDevs; i++)
-		{
-			struct cgpu_info * const cgpu = &gpus[i];
-			struct opencl_device_data * const data = cgpu->device_data;
-			fprintf(fcfg, "%s%d", i > 0 ? "," : "", data->adl.overtemp);
-		}
-#endif
-		fputs("\"", fcfg);
-	}
-#endif
 #ifdef HAVE_ADL
 	if (opt_reorder)
 		fprintf(fcfg, ",\n\"gpu-reorder\" : true");

+ 15 - 38
miner.c

@@ -2062,55 +2062,41 @@ static struct opt_table opt_config_table[] = {
 	OPT_WITH_ARG("--gpu-platform",
 		     set_int_0_to_9999, opt_show_intval, &opt_platform_id,
 		     "Select OpenCL platform ID to use for GPU mining"),
-	OPT_WITH_ARG("--gpu-threads",
-		     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("--gpu-threads|-g",
 	             set_gpu_threads, opt_show_intval, &opt_g_threads,
 	             opt_hidden),
 #ifdef HAVE_ADL
 	OPT_WITH_ARG("--gpu-engine",
 		     set_gpu_engine, NULL, NULL,
-		     "GPU engine (over)clock range in MHz - one value, range and/or comma separated list (e.g. 850-900,900,750-850)"),
+	             opt_hidden),
 	OPT_WITH_ARG("--gpu-fan",
 		     set_gpu_fan, NULL, NULL,
-		     "GPU fan percentage range - one value, range and/or comma separated list (e.g. 0-85,85,65)"),
+	             opt_hidden),
 	OPT_WITH_ARG("--gpu-map",
 		     set_gpu_map, NULL, NULL,
 		     "Map OpenCL to ADL device order manually, paired CSV (e.g. 1:0,2:1 maps OpenCL 1 to ADL 0, 2 to 1)"),
 	OPT_WITH_ARG("--gpu-memclock",
 		     set_gpu_memclock, NULL, NULL,
-		     "Set the GPU memory (over)clock in MHz - one value for all or separate by commas for per card"),
+	             opt_hidden),
 	OPT_WITH_ARG("--gpu-memdiff",
 		     set_gpu_memdiff, NULL, NULL,
-		     "Set a fixed difference in clock speed between the GPU and memory in auto-gpu mode"),
+	             opt_hidden),
 	OPT_WITH_ARG("--gpu-powertune",
 		     set_gpu_powertune, NULL, NULL,
-		     "Set the GPU powertune percentage - one value for all or separate by commas for per card"),
+	             opt_hidden),
 	OPT_WITHOUT_ARG("--gpu-reorder",
 			opt_set_bool, &opt_reorder,
 			"Attempt to reorder GPU devices according to PCI Bus ID"),
 	OPT_WITH_ARG("--gpu-vddc",
 		     set_gpu_vddc, NULL, NULL,
-		     "Set the GPU voltage in Volts - one value for all or separate by commas for per card"),
+	             opt_hidden),
 #endif
 #ifdef USE_SCRYPT
 	OPT_WITH_ARG("--lookup-gap",
 		     set_lookup_gap, NULL, NULL,
-		     "Set GPU lookup gap for scrypt mining, comma separated"),
-	OPT_WITH_ARG("--intensity",
-		     set_intensity, NULL, NULL,
-		     "Intensity of GPU scanning (d or " MIN_SHA_INTENSITY_STR
-		     " -> " MAX_SCRYPT_INTENSITY_STR
-		     ",default: d to maintain desktop interactivity)"),
-#else
-	OPT_WITH_ARG("--intensity",
-		     set_intensity, NULL, NULL,
-		     "Intensity of GPU scanning (d or " MIN_SHA_INTENSITY_STR
-		     " -> " MAX_SHA_INTENSITY_STR
-		     ",default: d to maintain desktop interactivity)"),
+	             opt_hidden),
 #endif
-	OPT_WITH_ARG("-I",
+	OPT_WITH_ARG("--intensity|-I",
 	             set_intensity, NULL, NULL,
 	             opt_hidden),
 #endif
@@ -2123,10 +2109,7 @@ static struct opt_table opt_config_table[] = {
 	             opt_hidden),
 #endif
 #ifdef HAVE_OPENCL
-	OPT_WITH_ARG("--kernel",
-		     set_kernel, NULL, NULL,
-		     "Override sha256 kernel to use (diablo, poclbm, phatk or diakgcn) - one value or comma separated"),
-	OPT_WITH_ARG("-k",
+	OPT_WITH_ARG("--kernel|-k",
 	             set_kernel, NULL, NULL,
 	             opt_hidden),
 #endif
@@ -2319,7 +2302,7 @@ static struct opt_table opt_config_table[] = {
 #if defined(USE_SCRYPT) && defined(HAVE_OPENCL)
 	OPT_WITH_ARG("--shaders",
 		     set_shaders, NULL, NULL,
-		     "GPU shaders per card for tuning scrypt, comma separated"),
+	             opt_hidden),
 #endif
 #ifdef HAVE_PWD_H
         OPT_WITH_ARG("--setuid",
@@ -2369,7 +2352,7 @@ static struct opt_table opt_config_table[] = {
 #ifdef HAVE_ADL
 	OPT_WITH_ARG("--temp-overheat",
 		     set_temp_overheat, opt_show_intval, &opt_overheattemp,
-		     "Overheat temperature when automatically managing fan and GPU speeds, one value or comma separated list"),
+	             opt_hidden),
 #endif
 	OPT_WITH_ARG("--temp-target",
 		     set_temp_target, NULL, NULL,
@@ -2385,7 +2368,7 @@ static struct opt_table opt_config_table[] = {
 #if defined(USE_SCRYPT) && defined(HAVE_OPENCL)
 	OPT_WITH_ARG("--thread-concurrency",
 		     set_thread_concurrency, NULL, NULL,
-		     "Set GPU thread concurrency for scrypt mining, comma separated"),
+	             opt_hidden),
 #endif
 #ifdef USE_UNICODE
 	OPT_WITHOUT_ARG("--unicode",
@@ -2399,10 +2382,7 @@ static struct opt_table opt_config_table[] = {
 		     set_user, NULL, NULL,
 		     "Username for bitcoin JSON-RPC server"),
 #ifdef HAVE_OPENCL
-	OPT_WITH_ARG("--vectors",
-		     set_vector, NULL, NULL,
-		     "Override detected optimal vector (1, 2 or 4) - one value or comma separated list"),
-	OPT_WITH_ARG("-v",
+	OPT_WITH_ARG("--vectors|-v",
 	             set_vector, NULL, NULL,
 	             opt_hidden),
 #endif
@@ -2413,10 +2393,7 @@ static struct opt_table opt_config_table[] = {
 	                opt_set_bool, &opt_weighed_stats,
 	                "Display statistics weighed to difficulty 1"),
 #ifdef HAVE_OPENCL
-	OPT_WITH_ARG("--worksize",
-		     set_worksize, NULL, NULL,
-		     "Override detected optimal worksize - one value or comma separated list"),
-	OPT_WITH_ARG("-w",
+	OPT_WITH_ARG("--worksize|-w",
 	             set_worksize, NULL, NULL,
 	             opt_hidden),
 #endif