1
0
mirror of https://github.com/paboyle/Grid.git synced 2026-06-04 11:14:38 +01:00

Test_extended_meson_field: add view_open timers to measure MemoryManager H2D transfers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Peter Boyle
2026-05-28 14:04:38 -04:00
parent dbd3a0e612
commit 8540b2a85d
+14
View File
@@ -664,11 +664,20 @@ public:
Vector<Gamma::Algebra> gamma1(gamma1_in.begin(), gamma1_in.end()); Vector<Gamma::Algebra> gamma1(gamma1_in.begin(), gamma1_in.end());
Vector<Gamma::Algebra> gamma2(gamma2_in.begin(), gamma2_in.end()); Vector<Gamma::Algebra> gamma2(gamma2_in.begin(), gamma2_in.end());
t0 = usecond();
for (auto &f : loop1) { autoView(v, f, AcceleratorRead); }
for (auto &f : loop2) { autoView(v, f, AcceleratorRead); }
std::cout << GridLogMessage << tag << " view_open_loop: " << Tms(usecond()-t0) << " ms\n";
t0 = usecond(); t0 = usecond();
PropagatorField loop(grid); PropagatorField loop(grid);
A2ALoopPropagator(loop, loop1, loop2); A2ALoopPropagator(loop, loop1, loop2);
std::cout << GridLogMessage << tag << " loop_build: " << Tms(usecond()-t0) << " ms\n"; std::cout << GridLogMessage << tag << " loop_build: " << Tms(usecond()-t0) << " ms\n";
t0 = usecond();
for (int i = 0; i < N_i; i++) { autoView(v, left[i], AcceleratorRead); }
std::cout << GridLogMessage << tag << " view_open_left: " << Tms(usecond()-t0) << " ms\n";
t0 = usecond(); t0 = usecond();
std::vector<FermionField> leftv(N_i, grid); std::vector<FermionField> leftv(N_i, grid);
for (int i = 0; i < N_i; i++) for (int i = 0; i < N_i; i++)
@@ -686,6 +695,11 @@ public:
} }
std::cout << GridLogMessage << tag << " tloop: " << Tms(usecond()-t0) << " ms\n"; std::cout << GridLogMessage << tag << " tloop: " << Tms(usecond()-t0) << " ms\n";
t0 = usecond();
{ autoView(tlv, tloop, AcceleratorRead); }
for (int j = 0; j < N_j; j++) { autoView(rv, right[j], AcceleratorRead); }
std::cout << GridLogMessage << tag << " view_open_right: " << Tms(usecond()-t0) << " ms\n";
t0 = usecond(); t0 = usecond();
std::vector<FermionField> loopRight(N_j, grid); std::vector<FermionField> loopRight(N_j, grid);
for (int j = 0; j < N_j; j++) { for (int j = 0; j < N_j; j++) {