Unverified Commit d3eed9db authored by Axel Kohlmeyer's avatar Axel Kohlmeyer Committed by GitHub
Browse files

Merge pull request #1752 from ndtrung81/gpu-mem-leak-init

Fixed bugs with kernel (re)compiling when the global device got clear and reinitialized
parents 481c6478 00dce6b1
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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;

+4 −1
Original line number Diff line number Diff line
@@ -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;

+4 −1
Original line number Diff line number Diff line
@@ -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;

+4 −1
Original line number Diff line number Diff line
@@ -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;

+4 −1
Original line number Diff line number Diff line
@@ -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;

Loading