# You can use this file to customize CUDALucas without having to create a long # and complex command. I got tired of having to hit the up arrow a bunch of # times whenever I rebooted, so I created this. You can set most of the command # line options here. However, if you do use command line options, they will # override their corresponding value in this file. # This sets the name of the work file used by CUDALucas. WorkFile=worktodo.txt # This sets the name of the results file used by CUDALucas. ResultsFile=results.txt # SaveAllCheckpoints is the same as the -s option. When active, CUDALucas will # save each checkpoint separately in the folder specified in the "SaveFolder" # option above. This is a binary option; set to 1 to activate, 0 to de-activate. SaveAllCheckpoints=0 # This option is the name of the folder where the separate checkpoint files are # saved. This option is only checked if SaveAllCheckpoints is activated. SaveFolder=savefiles # DeviceNumber is the same as the -d option. Use this to run CUDALucas on a GPU # other than "the first one". Only useful if you have more than one GPU. DeviceNumber=0 # PrintDeviceInfo is the same as the -info option. This sets whether or not # CUDALucas prints information about your GPU. This is a binary option; set to # 1 to activate, 0 to de-activate. PrintDeviceInfo=1 # ErrorIterations tells how often the roundoff error is checked. Larger values # give shorter iteration times, but introduce some uncertainty as to the actual # maximum roundoff error that occurs during the test. Default is 100. # ReportIterations is the same as the -x option; it determines how often # screen output is written. Default is 10000. # CheckpointIterations is the same as the -c option; it determines how often # checkpoints are written. Default is 100000. # Each of these values should be of the form k * 10^n with k = 1, 2, or 5. ErrorIterations=100 ReportIterations=10000 CheckpointIterations=100000 # Polite is related to the -polite option. If Polite=1 (enabled), and # PoliteValue=50 then at every 50th iteration all work queued up on the gpu # is allowed to finish before any new work is scheduled. This gives the gpu # a (very short) rest. Set Polite=0 to turn off completely. Polite!=0 will # incur a slight performance drop, but the screen should be more responsive. # Trade responsiveness for performance. (Note: Polite=0 is known to cause # CUDALucas to use some extra CPU time; Polite=50 or higher is a good compromise.) # (decreasing PoliteValue increases the gpu wait time) Polite=0 PoliteValue=50 # Some tests done by version 2.03 gave consistently incorrect results. I suspect # these errors were a result of integer overflow in the carry arithmetic. The # BigCarry option when set to 1 uses 64 bit instead of 32 bit arithmetic when # computing the carries. This will slow the iterations down by a few percent, # but is worth a try if a particular exponent gives an otherwise unexplained # incorrect residue. BigCarry=0 # ErrorReset is a percent by which the error threshold is reduced at each checkpoint. # Small values ensure that the actual maximum error since the last checkpoint is reported. # With larger values, the reported error might be larger than the largest actual # error since the last checkpoint. With a value of 100, only the maximum error since # the program was last started will be reported. The advantage of large values is # that fewer atomic operations are done. These are very slow. The slow down becomes # increasingly apparent for values of ErrorRest <= 80. Default is 85. ErrorReset=85 # Interactive is the same as the -k option. When active, you can press a key to # change the program's behavior. The active keys are: # p -- toggles polite mode. # s -- toggles the save all checkpoints option. # b -- toggles 32/64 bit carry arithmetic. # n -- resets the timer. Useful if a test is resumed with a slower/faster card, # or slower/faster settings. # m -- re-reads the ini file output format strings. # z -- prints information about current settings. # F/f -- increase/decrease fft length. # W/w -- increase/decrease mult threads. # E/e -- increase/decrease splice threads. # R/r -- increase/decrease error reset percentage. # T/t -- increase/decrease checkpoint interval. # Y/y -- increase/decrease report interval. # U/u -- increase/decrease error check interval. # I/i -- increase/decrease error threshold. # O/o -- increase/decrease polite interval. # # This is a binary option; set to 1 to activate, 0 to de-activate. Interactive=1 # RoundoffTest is a binary option. If set to 1, roundoff errors are checked at the # beginning of each test. # Default 0 RoundoffTest=0 # Output format options allow formatting the screen output to suit your own aesthetics. # OutputHInterval tells how frequently to write the column header which is the line specified # by the OutputHeader option. The OutputString value is written to the screen every report # exactly as given, with any character following a % symbol be replaced with the values # according to this list: # %M -- Month # %D -- Date # %h -- Hours # %m -- Minutes # %s -- Seconds # %i -- Iteration Number # %p -- Exponent # %r -- Residue. # %f -- fft in multiples of K # %F -- fft # %C -- Elapsed time since last checkpoint hh:mm:ss format # %T -- ETA in d:hh:mm:ss format # %N -- Program name # %dk -- Percent done truncated after k decimal places, k = 0 -- 5 # %xk -- Round off error truncated after k decimal places, k = 0 -- 5 # %qk -- Iteration timing truncated after k decimal places, k = 0 -- 5 # %ck -- Elapsed time since last checkpoint in format xxx.xxxxx seconds truncated after k decimal places, k = 0 -- 5 # Example output of the format given below: # # | Date Time | Test Num Iter Residue | FFT Error ms/It Time | ETA Done | # | Dec 15 12:46:01 | M57885161 18900000 0x219381f578a2abf9 | 3136K 0.28516 5.3992 539.92s | 2:11:05:11 32.65% | # | Dec 15 12:55:01 | M57885161 19000000 0x41e63fccc43ad9a5 | 3136K 0.29297 5.3993 539.93s | 2:10:50:19 32.82% | # | Dec 15 13:04:01 | M57885161 19100000 0x6e8b11826f5f2620 | 3136K 0.29688 5.3998 539.98s | 2:10:37:04 32.99% | # # To use the more traditional formatting, set OutputHInterval=0, for no header with the new format, set OutputHInterval=-1 OutputHInterval=19 OutputHeader=| Date Time | Test Num Iter Residue | FFT Error ms/It Time | ETA Done | OutputString=| %M %D %h%m%s | %P %i %r | %f %x5 %q4 %c2s | %T%d2%% | # Threads is the same as the -threads option. This sets the number of threads # used in the multiplication and splice kernels. Each of the two values must # be 32, 64, 128, 256, 512, or 1024. (Some FFT lengths have a higher minimum than 32.) # These vaules will be used only if no threads.txt file is present or no entry # for the current exponent is in that file. The file is generated by running # # ./CUDALucas -threadbench s e i m # # This will time i repetitions of a 50 ll iteration loop, for certain fft # lengths between s * 1024 and e * 1024. The parameter m gives some control # over which fft lengths are tested, which thread values are tested, # and screen output: # bit 0: if set, only fft values from fft.txt will be tested, # otherwise, all reasonable fft lengths will be tested. # bit 1: if set, skips thread value 32. # bit 2: if set, skips thread value 1024. # bit 3: if set, supresses intermediate output: only the optimal # thread values for each fft will be printed to the screen. # E.g. # # ./CUDALucas -threadbench 1 8192 5 10 # # tests all reasonable (7-smooth multiples of 1024) fft lengths from 1k to 8192k # using thread values 64, 128, 256, 512, and 1024, supressing intermediate output. # # The threads.txt file can be manually edited. Each row must be of the form: # # fft mult splice # # where fft is the fft length as a multiple of 1K, mult, and splice are the # threads settings and must again be 32, 64, 128, 256, 512, or 1024. Note that some # of these values might cause an error, depending on the fft length. # Default: 256 128 Threads=256 128 # FFTLength is the same as the -f option. If this is 0, CUDALucas will # autoselect a length for each exponent. Otherwise, you can set this with an # override length; this length will be used for all exponents in worktodo.txt, # which may not be optimal (or even possible). # # Users should be aware however that you can now specify the FFT length on a # per-exponent basis via the work file; to use (e.g.) a 1440K length for a test, # the line should look like "Test=,,1440K". Note # that there can be no space between the number (1440) and the K. You must have # a K or M (e.g. ",,3M" for a 3M length) for the program to recognize # the field as an FFT length. This newer work file feature should render this # ini option obsolete (which should thus be kept at 0). FFTLength=0