mirror of
https://github.com/GOSTSec/sgminer
synced 2025-02-02 18:14:20 +00:00
Merge pull request #185 from Diapolo/diakgcn
add goffset support for diakgcn with -v 1 and update kernel version
This commit is contained in:
commit
5d99f5d3e8
@ -367,7 +367,7 @@ AC_DEFINE_UNQUOTED([CGMINER_PREFIX], ["$prefix/bin"], [Path to cgminer install])
|
|||||||
|
|
||||||
AC_DEFINE_UNQUOTED([PHATK_KERNNAME], ["phatk120223"], [Filename for phatk kernel])
|
AC_DEFINE_UNQUOTED([PHATK_KERNNAME], ["phatk120223"], [Filename for phatk kernel])
|
||||||
AC_DEFINE_UNQUOTED([POCLBM_KERNNAME], ["poclbm120327"], [Filename for poclbm kernel])
|
AC_DEFINE_UNQUOTED([POCLBM_KERNNAME], ["poclbm120327"], [Filename for poclbm kernel])
|
||||||
AC_DEFINE_UNQUOTED([DIAKGCN_KERNNAME], ["diakgcn120223"], [Filename for diakgcn kernel])
|
AC_DEFINE_UNQUOTED([DIAKGCN_KERNNAME], ["diakgcn120427"], [Filename for diakgcn kernel])
|
||||||
AC_DEFINE_UNQUOTED([DIABLO_KERNNAME], ["diablo120328"], [Filename for diablo kernel])
|
AC_DEFINE_UNQUOTED([DIABLO_KERNNAME], ["diablo120328"], [Filename for diablo kernel])
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// DiaKGCN 16-03-2012 - OpenCL kernel by Diapolo
|
// DiaKGCN 27-04-2012 - OpenCL kernel by Diapolo
|
||||||
//
|
//
|
||||||
// Parts and / or ideas for this kernel are based upon the public-domain poclbm project, the phatk kernel by Phateus and the DiabloMiner kernel by DiabloD3.
|
// Parts and / or ideas for this kernel are based upon the public-domain poclbm project, the phatk kernel by Phateus and the DiabloMiner kernel by DiabloD3.
|
||||||
// The kernel was rewritten by me (Diapolo) and is still public-domain!
|
// The kernel was rewritten by me (Diapolo) and is still public-domain!
|
||||||
@ -33,7 +33,9 @@
|
|||||||
__kernel
|
__kernel
|
||||||
__attribute__((reqd_work_group_size(WORKSIZE, 1, 1)))
|
__attribute__((reqd_work_group_size(WORKSIZE, 1, 1)))
|
||||||
void search(
|
void search(
|
||||||
|
#ifndef GOFFSET
|
||||||
const u base,
|
const u base,
|
||||||
|
#endif
|
||||||
const uint PreVal0, const uint PreVal4,
|
const uint PreVal0, const uint PreVal4,
|
||||||
const uint H1, const uint D1A, const uint B1, const uint C1,
|
const uint H1, const uint D1A, const uint B1, const uint C1,
|
||||||
const uint F1, const uint G1, const uint C1addK5, const uint B1addK6, const uint PreVal0addK7,
|
const uint F1, const uint G1, const uint C1addK5, const uint B1addK6, const uint PreVal0addK7,
|
||||||
@ -56,7 +58,11 @@ __kernel
|
|||||||
#elif defined VECTORS2
|
#elif defined VECTORS2
|
||||||
const u nonce = (uint)(get_local_id(0)) * 2U + (uint)(get_group_id(0)) * (uint)(WORKVEC) + base;
|
const u nonce = (uint)(get_local_id(0)) * 2U + (uint)(get_group_id(0)) * (uint)(WORKVEC) + base;
|
||||||
#else
|
#else
|
||||||
const u nonce = (uint)(get_local_id(0)) + (uint)(get_group_id(0)) * (uint)(WORKSIZE) + base;
|
#ifdef GOFFSET
|
||||||
|
const u nonce = (uint)(get_global_id(0));
|
||||||
|
#else
|
||||||
|
const u nonce = (uint)(get_local_id(0)) + (uint)(get_group_id(0)) * (uint)(WORKSIZE) + base;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
V[0] = PreVal0 + nonce;
|
V[0] = PreVal0 + nonce;
|
@ -879,15 +879,17 @@ static cl_int queue_diakgcn_kernel(_clState *clState, dev_blk_ctx *blk,
|
|||||||
__maybe_unused cl_uint threads)
|
__maybe_unused cl_uint threads)
|
||||||
{
|
{
|
||||||
cl_kernel *kernel = &clState->kernel;
|
cl_kernel *kernel = &clState->kernel;
|
||||||
cl_uint vwidth = clState->vwidth;
|
unsigned int num = 0;
|
||||||
unsigned int i, num = 0;
|
|
||||||
cl_int status = 0;
|
cl_int status = 0;
|
||||||
uint *nonces;
|
|
||||||
|
|
||||||
nonces = alloca(sizeof(uint) * vwidth);
|
if (!clState->goffset) {
|
||||||
for (i = 0; i < vwidth; i++)
|
cl_uint vwidth = clState->vwidth;
|
||||||
nonces[i] = blk->nonce + i;
|
uint *nonces = alloca(sizeof(uint) * vwidth);
|
||||||
CL_SET_VARG(vwidth, nonces);
|
unsigned int i;
|
||||||
|
for (i = 0; i < vwidth; i++)
|
||||||
|
nonces[i] = blk->nonce + i;
|
||||||
|
CL_SET_VARG(vwidth, nonces);
|
||||||
|
}
|
||||||
|
|
||||||
CL_SET_BLKARG(PreVal0);
|
CL_SET_BLKARG(PreVal0);
|
||||||
CL_SET_BLKARG(PreVal4_2);
|
CL_SET_BLKARG(PreVal4_2);
|
||||||
|
2
ocl.c
2
ocl.c
@ -421,7 +421,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
|
|||||||
gpus[gpu].vwidth = preferred_vwidth;
|
gpus[gpu].vwidth = preferred_vwidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((clState->chosen_kernel == KL_POCLBM || clState->chosen_kernel == KL_DIABLO) &&
|
if ((clState->chosen_kernel == KL_POCLBM || clState->chosen_kernel == KL_DIABLO || clState->chosen_kernel == KL_DIAKGCN) &&
|
||||||
clState->vwidth == 1 && clState->hasOpenCL11plus)
|
clState->vwidth == 1 && clState->hasOpenCL11plus)
|
||||||
clState->goffset = true;
|
clState->goffset = true;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user