reorder
|
|
November 15, 2013, 12:33:33 PM |
|
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.
|
|
|
|
glitchboy
Member
Offline
Activity: 76
Merit: 10
|
|
November 15, 2013, 12:36:12 PM |
|
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: 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!
|
|
|
|
reorder
|
|
November 15, 2013, 12:51:31 PM |
|
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: 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.
|
|
|
|
glitchboy
Member
Offline
Activity: 76
Merit: 10
|
|
November 15, 2013, 01:04:12 PM |
|
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 // 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...
|
|
|
|
reorder
|
|
November 15, 2013, 01:09:39 PM |
|
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 // 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.
|
|
|
|
broketech
Member
Offline
Activity: 104
Merit: 10
|
|
November 17, 2013, 10: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: 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.
|
Sysadmin - Troubleshooter - Armchair Debugger BTC: 1PCocLTxLJP4L1d1Gigjhxoy2WypifA4Cy - UN: uQAR2PhjtdvNvbbh4JC4wJdx3SCh2W4xB4 - SKC: SR81M5iqLkRB6PjZgkpNkpz1G7KmY3zceL
|
|
|
snoopdoug
Newbie
Offline
Activity: 16
Merit: 0
|
|
November 18, 2013, 12:05:48 AM |
|
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: 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: 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
|
|
|
|
Gunther
Legendary
Offline
Activity: 840
Merit: 1000
|
|
November 18, 2013, 08:02:50 PM |
|
Strange. This coin still isn't on any exchange ... i don't think this will work. Too bad.
|
|
|
|
D4T
Newbie
Offline
Activity: 13
Merit: 0
|
|
November 18, 2013, 09:52:07 PM |
|
Theres still time
|
|
|
|
barwizi
Legendary
Offline
Activity: 882
Merit: 1000
|
|
November 19, 2013, 05:08:06 AM |
|
considering all the work being done on this coin and it's algo, it's a shame it has been raped.
|
|
|
|
manawenuz
Member
Offline
Activity: 76
Merit: 10
|
|
November 19, 2013, 06: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 !
|
|
|
|
reecelander
Newbie
Offline
Activity: 41
Merit: 0
|
|
November 19, 2013, 06:04:59 PM |
|
anybody interested in buying my 416 skeincoins?
|
|
|
|
asor
|
|
November 19, 2013, 08:43:27 PM |
|
I'm still selling 2500 SKC for 0.3 LTC...
|
|
|
|
Gunther
Legendary
Offline
Activity: 840
Merit: 1000
|
|
November 19, 2013, 09:40:18 PM |
|
Come on dev, respond. Aargh. LTC it is then. Mining .... now !
|
|
|
|
Red Kendra (OP)
Newbie
Offline
Activity: 59
Merit: 0
|
|
November 20, 2013, 12:33:58 AM |
|
Strange. This coin still isn't on any exchange ... i don't think this will work. Too bad.
Patience The coin is barely three weeks old. I have contacted the major exchanges and I'm sure one will pick up Skeincoin in due time.
|
|
|
|
barwizi
Legendary
Offline
Activity: 882
Merit: 1000
|
|
November 20, 2013, 05:54:29 AM |
|
i now buys @ 0.5 LTC / 10k what with money supply jumping due to that GPU rush
|
|
|
|
broketech
Member
Offline
Activity: 104
Merit: 10
|
|
November 20, 2013, 07:15:28 AM |
|
GPU rush Last block diff 3.0225129. Some rush. I've never seen it that low.
|
Sysadmin - Troubleshooter - Armchair Debugger BTC: 1PCocLTxLJP4L1d1Gigjhxoy2WypifA4Cy - UN: uQAR2PhjtdvNvbbh4JC4wJdx3SCh2W4xB4 - SKC: SR81M5iqLkRB6PjZgkpNkpz1G7KmY3zceL
|
|
|
Gunther
Legendary
Offline
Activity: 840
Merit: 1000
|
|
November 21, 2013, 12:11:52 PM |
|
Strange. This coin still isn't on any exchange ... i don't think this will work. Too bad.
Patience The coin is barely three weeks old. I have contacted the major exchanges and I'm sure one will pick up Skeincoin in due time. Hope so. I'm currently mining LTC again, but when this coin will appear on some exchange, i'll be mining this again. Have >7k SKC right now
|
|
|
|
barwizi
Legendary
Offline
Activity: 882
Merit: 1000
|
|
November 21, 2013, 06:03:11 PM |
|
come on guys, sell me some skein!!!
|
|
|
|
surfer43
Sr. Member
Offline
Activity: 560
Merit: 250
"Trading Platform of The Future!"
|
|
November 22, 2013, 12:11:52 AM |
|
come on guys, sell me some skein!!!
I sell 500 SKC for .1 BTC
|
|
|
|
|