Pages:
Author

Topic: [ANN] [SKC] Skeincoin 0.9.3.1 | Skein-SHA2 - page 68. (Read 161552 times)

newbie
Activity: 41
Merit: 0
November 19, 2013, 01:04:59 PM
anybody interested in buying my 416 skeincoins?
member
Activity: 76
Merit: 10
November 19, 2013, 01:29:48 AM
considering all the work being done on this coin and it's algo, it's a shame it has been raped.
i believe it's mostly the fault of the developer, as he/she doesn't show any signs of activities !!
seems like that it was a coin which got dropped from day one , maybe algo will be used someday for a successful coin but not here ! not now !
legendary
Activity: 882
Merit: 1000
November 19, 2013, 12:08:06 AM
considering all the work being done on this coin and it's algo, it's a shame it has been raped.
D4T
newbie
Activity: 13
Merit: 0
November 18, 2013, 04:52:07 PM
Theres still time  Grin
legendary
Activity: 840
Merit: 1000
November 18, 2013, 03:02:50 PM
Strange. This coin still isn't on any exchange ... i don't think this will work. Too bad.
newbie
Activity: 16
Merit: 0
November 17, 2013, 07:05:48 PM
I  tried patching this work into cgminer 3.7.2 as it's own kernel switch.  The one line in the kernel queue causes problems:
Quote
flip80(swap32, (uint32_t *)blk->work->data); // convert getwork data to big-endian


I believe that "work" only exists in the "blk" struct when the scrypt kernel is enabled.

I added:

Code:
work->blk.work = work;

just before the call to thrdata->queue_kernel_parameters in driver-opencl.c, and cgminer seemed to start working for me (but no solved blocks yet).

Warning: if you add that line like I did, cgminer may have trouble mining other coins.  The function opencl_prepare_work() would be a better place to handle that.  I'm just trying to get something working.

Hope that helps,

Doug


member
Activity: 104
Merit: 10
November 17, 2013, 05:11:16 PM
I  tried patching this work into cgminer 3.7.2 as it's own kernel switch.  The one line in the kernel queue causes problems:
Quote
flip80(swap32, (uint32_t *)blk->work->data); // convert getwork data to big-endian

If I don't set scrypt in configure it will hang on work not being available in dev_blk_ctx without enabling scrypt.  All other issues handled, like I said I enable scrypt as a hack, it compiles fine, but segfaults at (you can almost see it when you have debug/verbose on) somewhere in the neighborhood of the swap line, and flipping the work data.  

Again, as a hack to see if it would get off the ground, for giggles I enabled scrypt on the command line. I didn't add it in the 'proper' place, at the front of the command line, but added it at the end.  It fired up, and hashed, but never claimed any diff at all. Best stayed at 0, even after monkying with the result diff in the cl.  Thats as far as I got.  Soon as that machine is available to me again, I was going to see about that work line..

edit: 200-300mhash sec, on a 5870, with sha settings, 966/300.  It felt like it was doing what it was supposed to, just no results, probably due to me setting scrypt and the result getting fumbled.
sr. member
Activity: 462
Merit: 250
November 15, 2013, 08:09:39 AM
cgminer must be parsing the output buffer differently from poclbm (see SETFOUND macro in its kernels), otherwise looks good, at a glance. Please also note the kernel only returns diff 1 shares, for pool you are going to need to either hardcode the target or pass it to kernel.
Yes, cgminer parses it differently. I added this
Code:
// output[OUTPUT_SIZE] = output[nonce & OUTPUT_MASK] = nonce;
    #define FOUND (0x0F)
    #define SETFOUND(Xnonce) output[output[FOUND]++] = Xnonce

    SETFOUND(nonce);
  to your kernel and it should work.
Unfortunately it never reaches this code (on Geforce GT 650) and I don't know why...

You can try a lower diff (uncomment the '& 0xc0ffffff' for example) and see what happens. You can also use printf() in the kernel for debugging if your SDK is at least OpenCL 1.1 compliant.
member
Activity: 76
Merit: 10
November 15, 2013, 08:04:12 AM
cgminer must be parsing the output buffer differently from poclbm (see SETFOUND macro in its kernels), otherwise looks good, at a glance. Please also note the kernel only returns diff 1 shares, for pool you are going to need to either hardcode the target or pass it to kernel.
Yes, cgminer parses it differently. I added this
Code:
// output[OUTPUT_SIZE] = output[nonce & OUTPUT_MASK] = nonce;
    #define FOUND (0x0F)
    #define SETFOUND(Xnonce) output[output[FOUND]++] = Xnonce

    SETFOUND(nonce);
  to your kernel and it should work.
Unfortunately it never reaches this code (on Geforce GT 650) and I don't know why...
sr. member
Activity: 462
Merit: 250
November 15, 2013, 07:51:31 AM
You will also probably need this, this is how the midstate for kernel is computed:
Thanks for sharing! I'm trying to use your kernel in cgminer. Could you please take a look at this:
Code:
int skeinhashmid(unsigned char *out, const unsigned char *in)
{
Skein_512_Ctxt_t ctx;
Skein_512_Init  (&ctx,8*64);
Skein_512_Update(&ctx,in,(size_t) 80);
memcpy(out, ctx.X, 64);

return 0;
}

#define CL_SET_BLKARG(blkvar) status |= clSetKernelArg(*kernel, num++, sizeof(uint), (void *)&blk->blkvar)
#define CL_SET_ARG(var) status |= clSetKernelArg(*kernel, num++, sizeof(var), (void *)&var)

cl_int queue_skein_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unused cl_uint threads)
{
cl_kernel *kernel = &clState->kernel;
unsigned int i, num = 0;
cl_int status = 0;

unsigned char swap[80];
uint32_t *swap32 = swap;
flip80(swap32, (uint32_t *)blk->work->data); // convert getwork data to big-endian

unsigned char mid[64];
skeinhashmid(mid, swap); // calc skein midstate?

uint64_t *state64 = (uint64_t *)mid;
uint32_t *data32 = (uint32_t *)swap;

CL_SET_ARG(state64[0]); // kernel state0
CL_SET_ARG(state64[1]); // kernel state1
CL_SET_ARG(state64[2]); // kernel state2
CL_SET_ARG(state64[3]); // kernel state3
CL_SET_ARG(state64[4]); // kernel state4
CL_SET_ARG(state64[5]); // kernel state5
CL_SET_ARG(state64[6]); // kernel state6
CL_SET_ARG(state64[7]); // kernel state7

CL_SET_ARG(data32[16]); // kernel data16
CL_SET_ARG(data32[17]); // kernel data17
CL_SET_ARG(data32[18]); // kernel data18

CL_SET_BLKARG(nonce); // kernel base, i.e. base nonce

CL_SET_ARG(clState->outputBuffer);

return status;
}
Am i doing this right?
Thanks!

cgminer must be parsing the output buffer differently from poclbm (see SETFOUND macro in its kernels), otherwise looks good, at a glance. Please also note the kernel only returns diff 1 shares, for pool you are going to need to either hardcode the target or pass it to kernel.
member
Activity: 76
Merit: 10
November 15, 2013, 07:36:12 AM
You will also probably need this, this is how the midstate for kernel is computed:
Thanks for sharing! I'm trying to use your kernel in cgminer. Could you please take a look at this:
Code:
int skeinhashmid(unsigned char *out, const unsigned char *in)
{
Skein_512_Ctxt_t ctx;
Skein_512_Init  (&ctx,8*64);
Skein_512_Update(&ctx,in,(size_t) 80);
memcpy(out, ctx.X, 64);

return 0;
}

#define CL_SET_BLKARG(blkvar) status |= clSetKernelArg(*kernel, num++, sizeof(uint), (void *)&blk->blkvar)
#define CL_SET_ARG(var) status |= clSetKernelArg(*kernel, num++, sizeof(var), (void *)&var)

cl_int queue_skein_kernel(_clState *clState, dev_blk_ctx *blk, __maybe_unused cl_uint threads)
{
cl_kernel *kernel = &clState->kernel;
unsigned int i, num = 0;
cl_int status = 0;

unsigned char swap[80];
uint32_t *swap32 = swap;
flip80(swap32, (uint32_t *)blk->work->data); // convert getwork data to big-endian

unsigned char mid[64];
skeinhashmid(mid, swap); // calc skein midstate?

uint64_t *state64 = (uint64_t *)mid;
uint32_t *data32 = (uint32_t *)swap;

CL_SET_ARG(state64[0]); // kernel state0
CL_SET_ARG(state64[1]); // kernel state1
CL_SET_ARG(state64[2]); // kernel state2
CL_SET_ARG(state64[3]); // kernel state3
CL_SET_ARG(state64[4]); // kernel state4
CL_SET_ARG(state64[5]); // kernel state5
CL_SET_ARG(state64[6]); // kernel state6
CL_SET_ARG(state64[7]); // kernel state7

CL_SET_ARG(data32[16]); // kernel data16
CL_SET_ARG(data32[17]); // kernel data17
CL_SET_ARG(data32[18]); // kernel data18

CL_SET_BLKARG(nonce); // kernel base, i.e. base nonce

CL_SET_ARG(clState->outputBuffer);

return status;
}
Am i doing this right?
Thanks!
sr. member
Activity: 462
Merit: 250
November 15, 2013, 07:33:33 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.
AMD Kernel Analizer 2 cannot compile it on 13.10 and 2.8 - unhandled exception =( maybe you can tell what versions (catalist and SDK) do you use? Thanks

Catalyst 13.8 and SDK 2.8.1. I have not tried loading it in analyser though, but have seen it crashing on different kernels way too often, so do not expect much from it. You can try preprocessing with gcc -E and loading the result, this has worked for me sometimes.
member
Activity: 60
Merit: 10
November 15, 2013, 07:18:20 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.
AMD Kernel Analizer 2 cannot compile it on 13.10 and 2.8 - unhandled exception =( maybe you can tell what versions (catalist and SDK) do you use? Thanks
sr. member
Activity: 462
Merit: 250
November 15, 2013, 04:54:03 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.

Guys - just let me know when you want to test your GPU miners on the pool as I would need to change share difficulty - otherwise you will flood my pool with low diff shares Smiley
In fact your pool keeps up to 160MHs pretty well, but trying at 280 after some optimisations started giving me ~30% stales Smiley

probably because of low diff for shares - I will change it now so you can try again.

It is probably due to poclbm not able to restart work immediately, but still it is like this now:
Code:
skc.coinmine.pl:6400 0:1:Pitcairn 72.0[277.086 MH/s (~181 MH/s)] [Rej: 96/275 (34.91%)]

I am sure cgminer can do better.
legendary
Activity: 1197
Merit: 1000
November 15, 2013, 04:51:10 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.

Guys - just let me know when you want to test your GPU miners on the pool as I would need to change share difficulty - otherwise you will flood my pool with low diff shares Smiley
In fact your pool keeps up to 160MHs pretty well, but trying at 280 after some optimisations started giving me ~30% stales Smiley

you are sending quite a lot of duplicates...
legendary
Activity: 1197
Merit: 1000
November 15, 2013, 04:37:32 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.

Guys - just let me know when you want to test your GPU miners on the pool as I would need to change share difficulty - otherwise you will flood my pool with low diff shares Smiley
In fact your pool keeps up to 160MHs pretty well, but trying at 280 after some optimisations started giving me ~30% stales Smiley

probably because of low diff for shares - I will change it now so you can try again.
sr. member
Activity: 462
Merit: 250
November 15, 2013, 04:36:09 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.

Guys - just let me know when you want to test your GPU miners on the pool as I would need to change share difficulty - otherwise you will flood my pool with low diff shares Smiley
In fact your pool keeps up to 160MHs pretty well, but trying at 280 after some optimisations started giving me ~30% stales Smiley
legendary
Activity: 1197
Merit: 1000
November 15, 2013, 04:31:15 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.

Guys - just let me know when you want to test your GPU miners on the pool as I would need to change share difficulty - otherwise you will flood my pool with low diff shares Smiley
sr. member
Activity: 462
Merit: 250
November 15, 2013, 04:28:56 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?

Should work with any, but to get BFI_INT for bitselect without binary patching you are going to need 11.9+ and 2.6+ respectively.
member
Activity: 60
Merit: 10
November 15, 2013, 04:05:35 AM
reorder, what are driver version and openCL SDK version your kernel compile/work with?
Pages:
Jump to: