Plan - Thirtybird/YACMiner GitHub Wiki

DONE

  • move nfmin, nfmax and starttime values into pool values

  • add starttime, nfmin, nfmax and coin parameters to the writing and reading of the config file

  • nfactor is stored with the pool, and is determined when we do the work

  • add nfactor to the pool connection line

  • add nfactor & starttime parameters to curses input for adding a pool

    • hitting enter will accept the compiled program defaults (YACoin)
      
  • can test higher N factors by setting nfmin to the desired value to test at

Completed in 3.5.0

  • buffer size should calculate the thread-concurrency if it's set and update the variable for the GPU
  • eliminate need for thread-concurrency
    • It does get passed to opencl kernel to set a dimension on a memory buffer array
      
  • --thread-concurrency is superseded by buffer-size, if you set buffer-size and lookup-gap, it will set thread-concurrency internally for you
  • --lookup-gap now defaults to 4 if you haven't specified it
  • If you haven't specified buffer-size or thread-concurrency - set both based on ~88% of max_alloc on GPU
  • Save buffer-size to configuration file
  • functionality for mining with standard scrypt has been restored
  • added support for N-Scrypt mining
  • split kernel for scrypt and nscrypt into to different settings
  • allow kernel choice for scrypt - include 130511 and 140202

TO-DO

  • warning if rI is not a multiple of worksize

  • disable xI if shader count is not a multiple of worksize

    • confirm if the limitations are based on card or driver version (or OpenCL version 1.1 vs 1.2)
    • perhaps force rI to the nearest valid value (rounding down)
    • allow this behavior to be overriden by --allow-unsafe-values for people who know how to use them
  • output number of shaders per card somewhere (on the -n screen?)

  • provide output when using xI as what the equivalent rI would be

  • Move the algorithm type and other parameters to a per-pool basis

    • add command-line parameter for setting the algorithm type on a per-pool basis
    • update curses interface to accept algorithm type when updating or adding a pool, and only ask for NFMin, NFMax, and StartTime if is a variable N pool
    • create new api function for adding a pool with algorithm type and NFactor variables
  • fix problem with disabled cards having their gpu-engine and/or gpu-memory set by adl commands

  • Add ability to bump rI by worksize with short keyboard commands (G,+ & G, -) to GPU curses menu

  • add ability to tweak lookup-gap while application is running

    • This would almost certainly require the compilation of a new OpenCL kernel while running.
      
    • 	should the kernel be compiled with LG as a hard-code?  are there unrolls that are dependant on this being a constant?
      
    • 	can a kernel be compiled mid-execution of the program?
      
    • 	(likely)can different cards be using different kenrels at the same time
      
  • store lookup-gap and raw-intensity per N-factor in config so these settings can be re-activated if the NFactor switches

  • output line for pool connection is kind of long - is there a way to shorten this?

  • curses interface for adding a new pool

    • allow hitting enter to use the values from the current_pool?
      
    • maybe show a list of what other pools use?
      
  • add api functions for returning nfactor, starttime, nfmin, nfmax, rawintensity and coin

  • add Xperimental stratum command to set a hashing algorithm for a pool algorithm and necessary parameters (aka "scrypt,1024,1,1", "scrypt-chacha,32768,1,1", "nscrypt,2048,1,1")

    • this needs to be set at the pool level in case there are pools and that can be mining different coins at different times
      
    • ensure there is a way for the end user to disable this functionality (add command-line switch)
      
  • "auto-tune" the raw intensity/lookup gap

    • See [Auto-Tune](https://github.com/Thirtybird/YACMiner/wiki/AutoTune) entry
      
  • add --coin command line to set minN, maxN and starttime

    • if this parameter is used, ensure thatn --nfmin, --nfmax and --starttime do not overwrite these values
    • output something to end user if these are both used - let them know --coin overrides
      
    • create a text-file database that is read in for working with this parameter so that as new coins are created, they can be added without a new version of the miner needing to be compiled