@@ -390,7 +390,11 @@ class ChaseMpiDLA : public ChaseMpiDLAInterface<T>
390390 next_ = NextOp::bAc;
391391 locked_ = locked;
392392
393- this ->V2C (V, locked_, C_ , locked_, block);
393+ for (auto j = 0 ; j < block; j++){
394+ for (auto i = 0 ; i < mblocks_; i++){
395+ std::memcpy (C_ + j * m_ + r_offs_l_[i], V + j * N_ + locked * N_ + r_offs_[i], r_lens_[i] * sizeof (T));
396+ }
397+ }
394398
395399 dla_->preApplication (V, locked, block);
396400#ifdef USE_NSIGHT
@@ -471,26 +475,6 @@ class ChaseMpiDLA : public ChaseMpiDLAInterface<T>
471475 nvtxRangePop ();
472476#endif
473477 }
474- // v1->v2
475- void V2C (T* v1, std::size_t off1, T* v2, std::size_t off2,
476- std::size_t block) override
477- {
478- #ifdef USE_NSIGHT
479- nvtxRangePushA (" ChaseMpiDLA: V2C" );
480- #endif
481- for (auto j = 0 ; j < block; j++)
482- {
483- for (auto i = 0 ; i < mblocks_; i++)
484- {
485- std::memcpy (v2 + off2 * m_ + j * m_ + r_offs_l_[i],
486- v1 + off1 * N_ + j * N_ + r_offs_[i],
487- r_lens_[i] * sizeof (T));
488- }
489- }
490- #ifdef USE_NSIGHT
491- nvtxRangePop ();
492- #endif
493- }
494478
495479 // ! collect partially distributed matrices into redundant matrices
496480 // ! @param buff the sending buff
@@ -597,24 +581,6 @@ class ChaseMpiDLA : public ChaseMpiDLAInterface<T>
597581 }
598582 }
599583
600- // v1->v2
601- void C2V (T* v1, std::size_t off1, T* v2, std::size_t off2,
602- std::size_t block) override
603- {
604- #ifdef USE_NSIGHT
605- nvtxRangePushA (" ChaseMpiDLA: C2V" );
606- #endif
607- std::size_t dimsIdx = 0 ;
608- T* buff = v1 + off1 * m_;
609- T* targetBuf = v2 + off2 * N_ ;
610-
611- this ->collecRedundantVecs (buff, targetBuf, dimsIdx, block);
612-
613- #ifdef USE_NSIGHT
614- nvtxRangePop ();
615- #endif
616- }
617-
618584 bool postApplication (T* V, std::size_t block, std::size_t locked) override
619585 {
620586#ifdef USE_NSIGHT
@@ -1549,12 +1515,8 @@ class ChaseMpiDLA : public ChaseMpiDLAInterface<T>
15491515
15501516 std::fill (v0_, v0_ + m_, T (0 ));
15511517
1552- #ifdef USE_NSIGHT
1553- nvtxRangePushA (" C2V" );
1554- #endif
15551518 if (idx >= 0 )
15561519 {
1557- // this->C2V(C2_, idx, v1_, 0, 1);
15581520 std::memcpy (v1_, C2_ + idx * m_, m_ * sizeof (T) );
15591521 }else
15601522 {
@@ -1566,9 +1528,6 @@ class ChaseMpiDLA : public ChaseMpiDLAInterface<T>
15661528 v1_[k] = getRandomT<T>([&]() { return normal_distribution (gen); });
15671529 }
15681530 }
1569- #ifdef USE_NSIGHT
1570- nvtxRangePop ();
1571- #endif
15721531 // ENSURE that v1 has one norm
15731532#ifdef USE_NSIGHT
15741533 nvtxRangePushA (" Lanczos: loop" );
0 commit comments