mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Implemented acclerator-optimized versions of localCopyRegion and insertSliceLocal to speed up padding
Fixed const correctness on PaddedCell methods Fixed compile issues on Crusher Added timing breakdowns for PaddedCell::Expand and the padded implementations of the staples, visible under --log Performance Optimized kernel for StaplePadded Test_iwasaki_action_newstaple now repeats the calculation 10 times and reports average timings
This commit is contained in:
		@@ -165,18 +165,24 @@ int main (int argc, char ** argv)
 | 
			
		||||
  IwasakiGaugeActionOrig<Gimpl> action_orig(beta);
 | 
			
		||||
  IwasakiGaugeAction<Gimpl> action_new(beta);
 | 
			
		||||
 | 
			
		||||
  double t0 = usecond();
 | 
			
		||||
  action_orig.deriv(U, derivOrig);
 | 
			
		||||
  double t1 = usecond();
 | 
			
		||||
  action_new.deriv(U, derivNew);
 | 
			
		||||
  double t2 = usecond();
 | 
			
		||||
  double torig=0, tnew=0;
 | 
			
		||||
  int ntest = 10;
 | 
			
		||||
  for(int i=0;i<ntest;i++){
 | 
			
		||||
    double t0 = usecond();
 | 
			
		||||
    action_orig.deriv(U, derivOrig);
 | 
			
		||||
    double t1 = usecond();
 | 
			
		||||
    action_new.deriv(U, derivNew);
 | 
			
		||||
    double t2 = usecond();
 | 
			
		||||
 | 
			
		||||
  GaugeLorentz diff = derivOrig - derivNew;
 | 
			
		||||
  double n = norm2(diff);
 | 
			
		||||
  std::cout << GridLogMessage << "Difference " << n << " (expect 0)" << std::endl;
 | 
			
		||||
  assert(n<1e-10);
 | 
			
		||||
    GaugeLorentz diff = derivOrig - derivNew;
 | 
			
		||||
    double n = norm2(diff);
 | 
			
		||||
    std::cout << GridLogMessage << "Difference " << n << " (expect 0)" << std::endl;
 | 
			
		||||
    assert(n<1e-10);
 | 
			
		||||
 | 
			
		||||
  std::cout << GridLogMessage << "Timings orig: " << (t1-t0)/1000 << "ms,  new: " << (t2-t1)/1000 << "ms" << std::endl;
 | 
			
		||||
    std::cout << GridLogMessage << "Timings orig: " << (t1-t0)/1000 << "ms,  new: " << (t2-t1)/1000 << "ms" << std::endl;
 | 
			
		||||
    torig += (t1-t0)/1000; tnew += (t2-t1)/1000;
 | 
			
		||||
  }
 | 
			
		||||
  std::cout << GridLogMessage << "Avg timings " << ntest << " iterations: orig:" << torig/ntest << "ms,   new:" << tnew/ntest << "ms" << std::endl;
 | 
			
		||||
  
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user