Fixed bugs with kernel (re)compiling when the global device got cleared and then reinitialized
This commit is contained in:
@ -26,15 +26,16 @@ BaseAtomicT::BaseAtomic() : _compiled(false), _max_bytes(0) {
|
||||
ans=new Answer<numtyp,acctyp>();
|
||||
nbor=new Neighbor();
|
||||
pair_program=NULL;
|
||||
ucl_device=NULL;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
BaseAtomicT::~BaseAtomic() {
|
||||
delete ans;
|
||||
delete nbor;
|
||||
if (pair_program) delete pair_program;
|
||||
k_pair_fast.clear();
|
||||
k_pair.clear();
|
||||
if (pair_program) delete pair_program;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -78,6 +79,8 @@ int BaseAtomicT::init_atomic(const int nlocal, const int nall,
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
if (ucl_device!=device->gpu) _compiled=false;
|
||||
|
||||
ucl_device=device->gpu;
|
||||
atom=&device->atom;
|
||||
|
||||
|
||||
@ -26,15 +26,16 @@ BaseChargeT::BaseCharge() : _compiled(false), _max_bytes(0) {
|
||||
ans=new Answer<numtyp,acctyp>();
|
||||
nbor=new Neighbor();
|
||||
pair_program=NULL;
|
||||
ucl_device=NULL;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
BaseChargeT::~BaseCharge() {
|
||||
delete ans;
|
||||
delete nbor;
|
||||
if (pair_program) delete pair_program;
|
||||
k_pair_fast.clear();
|
||||
k_pair.clear();
|
||||
if (pair_program) delete pair_program;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -78,6 +79,8 @@ int BaseChargeT::init_atomic(const int nlocal, const int nall,
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
if (ucl_device!=device->gpu) _compiled=false;
|
||||
|
||||
ucl_device=device->gpu;
|
||||
atom=&device->atom;
|
||||
|
||||
|
||||
@ -26,15 +26,16 @@ BaseDipoleT::BaseDipole() : _compiled(false), _max_bytes(0) {
|
||||
ans=new Answer<numtyp,acctyp>();
|
||||
nbor=new Neighbor();
|
||||
pair_program=NULL;
|
||||
ucl_device=NULL;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
BaseDipoleT::~BaseDipole() {
|
||||
delete ans;
|
||||
delete nbor;
|
||||
if (pair_program) delete pair_program;
|
||||
k_pair_fast.clear();
|
||||
k_pair.clear();
|
||||
if (pair_program) delete pair_program;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -79,6 +80,8 @@ int BaseDipoleT::init_atomic(const int nlocal, const int nall,
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
if (ucl_device!=device->gpu) _compiled=false;
|
||||
|
||||
ucl_device=device->gpu;
|
||||
atom=&device->atom;
|
||||
|
||||
|
||||
@ -26,15 +26,16 @@ BaseDPDT::BaseDPD() : _compiled(false), _max_bytes(0) {
|
||||
ans=new Answer<numtyp,acctyp>();
|
||||
nbor=new Neighbor();
|
||||
pair_program=NULL;
|
||||
ucl_device=NULL;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
BaseDPDT::~BaseDPD() {
|
||||
delete ans;
|
||||
delete nbor;
|
||||
if (pair_program) delete pair_program;
|
||||
k_pair_fast.clear();
|
||||
k_pair.clear();
|
||||
if (pair_program) delete pair_program;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -79,6 +80,8 @@ int BaseDPDT::init_atomic(const int nlocal, const int nall,
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
if (ucl_device!=device->gpu) _compiled=false;
|
||||
|
||||
ucl_device=device->gpu;
|
||||
atom=&device->atom;
|
||||
|
||||
|
||||
@ -36,6 +36,7 @@ BaseEllipsoidT::BaseEllipsoid() : _compiled(false), _max_bytes(0) {
|
||||
nbor_program=NULL;
|
||||
ellipsoid_program=NULL;
|
||||
lj_program=NULL;
|
||||
ucl_device=NULL;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -93,6 +94,8 @@ int BaseEllipsoidT::init_base(const int nlocal, const int nall,
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
if (ucl_device!=device->gpu) _compiled=false;
|
||||
|
||||
ucl_device=device->gpu;
|
||||
atom=&device->atom;
|
||||
|
||||
|
||||
@ -28,6 +28,7 @@ BaseThreeT::BaseThree() : _compiled(false), _max_bytes(0) {
|
||||
ans2=new Answer<numtyp,acctyp>();
|
||||
#endif
|
||||
pair_program=NULL;
|
||||
ucl_device=NULL;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -37,12 +38,12 @@ BaseThreeT::~BaseThree() {
|
||||
#ifdef THREE_CONCURRENT
|
||||
delete ans2;
|
||||
#endif
|
||||
if (pair_program) delete pair_program;
|
||||
k_three_center.clear();
|
||||
k_three_end.clear();
|
||||
k_three_end_vatom.clear();
|
||||
k_pair.clear();
|
||||
k_short_nbor.clear();
|
||||
if (pair_program) delete pair_program;
|
||||
}
|
||||
|
||||
template <class numtyp, class acctyp>
|
||||
@ -94,6 +95,8 @@ int BaseThreeT::init_three(const int nlocal, const int nall,
|
||||
if (success!=0)
|
||||
return success;
|
||||
|
||||
if (ucl_device!=device->gpu) _compiled=false;
|
||||
|
||||
ucl_device=device->gpu;
|
||||
atom=&device->atom;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user