equihash: missing free on benchs
This commit is contained in:
parent
e505d1051d
commit
cf18cb632c
@ -147,6 +147,9 @@ extern "C" int scanhash_jha(int thr_id, struct work *work, uint32_t max_nonce, u
|
|||||||
CUDA_LOG_ERROR();
|
CUDA_LOG_ERROR();
|
||||||
}
|
}
|
||||||
cuda_get_arch(thr_id);
|
cuda_get_arch(thr_id);
|
||||||
|
if (cuda_arch[dev_id] >= 500) {
|
||||||
|
applog(LOG_WARNING, "You are not using the optimal algo, please try -a jackpot");
|
||||||
|
}
|
||||||
gpulog(LOG_INFO, thr_id, "Intensity set to %g, %u cuda threads", throughput2intensity(throughput), throughput);
|
gpulog(LOG_INFO, thr_id, "Intensity set to %g, %u cuda threads", throughput2intensity(throughput), throughput);
|
||||||
|
|
||||||
CUDA_SAFE_CALL(cudaMalloc(&d_hash[thr_id], (size_t) 64 * throughput));
|
CUDA_SAFE_CALL(cudaMalloc(&d_hash[thr_id], (size_t) 64 * throughput));
|
||||||
|
@ -59,6 +59,7 @@ void algo_free_all(int thr_id)
|
|||||||
free_cryptonight(thr_id);
|
free_cryptonight(thr_id);
|
||||||
free_decred(thr_id);
|
free_decred(thr_id);
|
||||||
free_deep(thr_id);
|
free_deep(thr_id);
|
||||||
|
free_equihash(thr_id);
|
||||||
free_keccak256(thr_id);
|
free_keccak256(thr_id);
|
||||||
free_fresh(thr_id);
|
free_fresh(thr_id);
|
||||||
free_fugue256(thr_id);
|
free_fugue256(thr_id);
|
||||||
|
@ -2081,7 +2081,7 @@ __host__ void eq_cuda_context<RB, SM, SSM, THREADS, PACKER>::solve(const char *t
|
|||||||
// destructor
|
// destructor
|
||||||
template <u32 RB, u32 SM, u32 SSM, u32 THREADS, typename PACKER>
|
template <u32 RB, u32 SM, u32 SSM, u32 THREADS, typename PACKER>
|
||||||
__host__
|
__host__
|
||||||
eq_cuda_context<RB, SM, SSM, THREADS, PACKER>::~eq_cuda_context()
|
void eq_cuda_context<RB, SM, SSM, THREADS, PACKER>::freemem()
|
||||||
{
|
{
|
||||||
if (solutions)
|
if (solutions)
|
||||||
free(solutions);
|
free(solutions);
|
||||||
@ -2104,6 +2104,12 @@ eq_cuda_context<RB, SM, SSM, THREADS, PACKER>::~eq_cuda_context()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <u32 RB, u32 SM, u32 SSM, u32 THREADS, typename PACKER>
|
||||||
|
__host__
|
||||||
|
eq_cuda_context<RB, SM, SSM, THREADS, PACKER>::~eq_cuda_context()
|
||||||
|
{
|
||||||
|
freemem();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_MODE_1
|
#ifdef CONFIG_MODE_1
|
||||||
template class eq_cuda_context<CONFIG_MODE_1>;
|
template class eq_cuda_context<CONFIG_MODE_1>;
|
||||||
|
@ -90,7 +90,7 @@ template <u32 RB, u32 SM> struct equi;
|
|||||||
|
|
||||||
struct eq_cuda_context_interface
|
struct eq_cuda_context_interface
|
||||||
{
|
{
|
||||||
virtual ~eq_cuda_context_interface();
|
//virtual ~eq_cuda_context_interface();
|
||||||
|
|
||||||
virtual void solve(const char *tequihash_header,
|
virtual void solve(const char *tequihash_header,
|
||||||
unsigned int tequihash_header_len,
|
unsigned int tequihash_header_len,
|
||||||
@ -99,6 +99,7 @@ struct eq_cuda_context_interface
|
|||||||
fn_cancel cancelf,
|
fn_cancel cancelf,
|
||||||
fn_solution solutionf,
|
fn_solution solutionf,
|
||||||
fn_hashdone hashdonef);
|
fn_hashdone hashdonef);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int thread_id;
|
int thread_id;
|
||||||
int device_id;
|
int device_id;
|
||||||
@ -125,9 +126,9 @@ class eq_cuda_context : public eq_cuda_context_interface
|
|||||||
fn_cancel cancelf,
|
fn_cancel cancelf,
|
||||||
fn_solution solutionf,
|
fn_solution solutionf,
|
||||||
fn_hashdone hashdonef);
|
fn_hashdone hashdonef);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
eq_cuda_context(int thr_id, int dev_id);
|
eq_cuda_context(int thr_id, int dev_id);
|
||||||
|
void freemem();
|
||||||
~eq_cuda_context();
|
~eq_cuda_context();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -281,7 +281,11 @@ void free_equihash(int thr_id)
|
|||||||
if (!init[thr_id])
|
if (!init[thr_id])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
delete(solvers[thr_id]);
|
// assume config 1 was used... interface destructor seems bad
|
||||||
|
eq_cuda_context<CONFIG_MODE_1>* ptr = dynamic_cast<eq_cuda_context<CONFIG_MODE_1>*>(solvers[thr_id]);
|
||||||
|
ptr->freemem();
|
||||||
|
ptr = NULL;
|
||||||
|
|
||||||
solvers[thr_id] = NULL;
|
solvers[thr_id] = NULL;
|
||||||
|
|
||||||
init[thr_id] = false;
|
init[thr_id] = false;
|
||||||
@ -291,4 +295,3 @@ void free_equihash(int thr_id)
|
|||||||
void eq_cuda_context_interface::solve(const char *tequihash_header, unsigned int tequihash_header_len,
|
void eq_cuda_context_interface::solve(const char *tequihash_header, unsigned int tequihash_header_len,
|
||||||
const char* nonce, unsigned int nonce_len,
|
const char* nonce, unsigned int nonce_len,
|
||||||
fn_cancel cancelf, fn_solution solutionf, fn_hashdone hashdonef) { }
|
fn_cancel cancelf, fn_solution solutionf, fn_hashdone hashdonef) { }
|
||||||
eq_cuda_context_interface::~eq_cuda_context_interface() { }
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user