Browse Source

add marucoin-mod (X13-mod)

djm34
Jan Berdajs 11 years ago
parent
commit
ce3624fba6
  1. 2
      NEWS.md
  2. 72
      algorithm.c
  3. 1
      doc/kernel.md
  4. 1000
      kernel/marucoin-mod.cl

2
NEWS.md

@ -4,7 +4,7 @@
* Added support for animecoin, darkcoin, fuguecoin, groestlcoin, inkcoin, * Added support for animecoin, darkcoin, fuguecoin, groestlcoin, inkcoin,
marucoin, myriadcoin-groestl, quarkcoin, qubitcoin, sifcoin, twecoin, marucoin, myriadcoin-groestl, quarkcoin, qubitcoin, sifcoin, twecoin,
darkcoin-mod ("X11-mod" kernel), maxcoin (by mrbrdo). darkcoin-mod ("X11-mod"), marucoin-mod ("X13-mod"), maxcoin (by mrbrdo).
* intensity, xintensity, rawintensity, gpu-memclock, gpu-engine, * intensity, xintensity, rawintensity, gpu-memclock, gpu-engine,
thread-concurrency, gpu-threads now also have a `pool-*` version to thread-concurrency, gpu-threads now also have a `pool-*` version to
configure them for each pool separately (by mrbrdo). configure them for each pool separately (by mrbrdo).

72
algorithm.c

@ -159,6 +159,77 @@ static cl_int queue_darkcoin_mod_kernel(struct __clState *clState, struct _dev_b
return status; return status;
} }
static cl_int queue_marucoin_mod_kernel(struct __clState *clState, struct _dev_blk_ctx *blk, __maybe_unused cl_uint threads)
{
cl_kernel *kernel;
unsigned int num;
cl_ulong le_target;
cl_int status = 0;
le_target = *(cl_ulong *)(blk->work->device_target + 24);
flip80(clState->cldata, blk->work->data);
status = clEnqueueWriteBuffer(clState->commandQueue, clState->CLbuffer0, true, 0, 80, clState->cldata, 0, NULL,NULL);
// blake - search
kernel = &clState->kernel;
num = 0;
CL_SET_ARG(clState->CLbuffer0);
CL_SET_ARG(clState->padbuffer8);
// bmw - search1
kernel = clState->extra_kernels;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// groestl - search2
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// skein - search3
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// jh - search4
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// keccak - search5
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// luffa - search6
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// cubehash - search7
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// shavite - search8
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// simd - search9
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// echo - search10
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// hamsi - search11
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
// fugue - search12
kernel++;
num = 0;
CL_SET_ARG(clState->padbuffer8);
CL_SET_ARG(clState->outputBuffer);
CL_SET_ARG(le_target);
return status;
}
typedef struct _algorithm_settings_t { typedef struct _algorithm_settings_t {
const char *name; /* Human-readable identifier */ const char *name; /* Human-readable identifier */
double diff_multiplier1; double diff_multiplier1;
@ -211,6 +282,7 @@ static algorithm_settings_t algos[] = {
{ "twecoin", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 0, 0, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, twecoin_regenhash, queue_sph_kernel, sha256}, { "twecoin", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 0, 0, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, twecoin_regenhash, queue_sph_kernel, sha256},
{ "maxcoin", 1, 256, 1, 4, 15, 0x0F, 0x00000000ffff0000ULL, 0xFFFFULL, 0x000000ffUL, 0, 0, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, maxcoin_regenhash, queue_maxcoin_kernel, sha256}, { "maxcoin", 1, 256, 1, 4, 15, 0x0F, 0x00000000ffff0000ULL, 0xFFFFULL, 0x000000ffUL, 0, 0, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, maxcoin_regenhash, queue_maxcoin_kernel, sha256},
{ "darkcoin-mod", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 10, 8 * 16 * 4194304, 0, darkcoin_regenhash, queue_darkcoin_mod_kernel, gen_hash}, { "darkcoin-mod", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 10, 8 * 16 * 4194304, 0, darkcoin_regenhash, queue_darkcoin_mod_kernel, gen_hash},
{ "marucoin-mod", 1, 1, 1, 0, 0, 0xFF, 0x00000000ffff0000ULL, 0xFFFFULL, 0x0000ffffUL, 12, 8 * 16 * 4194304, 0, marucoin_regenhash, queue_marucoin_mod_kernel, gen_hash},
// kernels starting from this will have difficulty calculated by using fuguecoin algorithm // kernels starting from this will have difficulty calculated by using fuguecoin algorithm
#define A_FUGUE(a, b) \ #define A_FUGUE(a, b) \

1
doc/kernel.md

@ -74,6 +74,7 @@ Only supports `vectors=1` and `lookup-gap=2`.
#### groestlcoin #### groestlcoin
#### inkcoin #### inkcoin
#### marucoin #### marucoin
#### marucoin-mod
#### myriadcoin-groestl #### myriadcoin-groestl
#### quarkcoin #### quarkcoin
#### qubitcoin #### qubitcoin

1000
kernel/marucoin-mod.cl

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save