* develop:
Hand unrolled to use optimised code paths on GPU for coalesced reads in Wilson case. Other cases to do. This now includes comms code path.
Better SIMD usage/coalescence
* develop: (26 commits)
Added the ability to apply a custom "filter" to the conjugate momentum in the Integrator classes, applied both after refresh and after applying the forces Added a conjugate momentum "filter" that applies a phase to each site. With sites set to 1.0 or 0.0 this acts as a mask and enables, for example, the freezing of inactive gauge links in DDHMC Added tests/forces/Test_momentum_filter demonstrating the use of the filter to freeze boundary links
Correct misleading ac help string
Enable performance counting in WilsonFermion like in others
changed back A2AUtils warning
changed if and accelerator_for - no runtime errors any more
Mac OS (Darwin) sed -i flag for in-place editing differs from posix / gnu
Seems the intention with AutoConf produced Grid/Config.h was to use sed to translate standard PACKAGE_ #defines into GRID_ however due to missing '' after -i this hasn't been working. Perhaps it is too late to fix this, since we don't know who/what is relying on this downstream? ... but if they are, and AutoConf is being used, then likely these #defines have just been redefined anyway. Seems reasonable to redefine PACKAGE and VERSION as well, as none of these macros are used throughout Grid or Hadrons.
Fixed compile issues with maxLocalNorm2 for non-scalar lattices maxLocalNorm2 test now reuses the random field
MADWF 5d source option for hadrons - look at Grid of source Abort on GPU error
maxLocalNorm2()
change back benchmark_ITT
prettify
Flop cout matches DiRAC-ITT-2020
revert changes
merge develop
fixes
weird bug in 2pt function...
revert changes
final version, tested on CPU and GPU
bugfix
...
* develop: (26 commits)
Added the ability to apply a custom "filter" to the conjugate momentum in the Integrator classes, applied both after refresh and after applying the forces Added a conjugate momentum "filter" that applies a phase to each site. With sites set to 1.0 or 0.0 this acts as a mask and enables, for example, the freezing of inactive gauge links in DDHMC Added tests/forces/Test_momentum_filter demonstrating the use of the filter to freeze boundary links
Correct misleading ac help string
Enable performance counting in WilsonFermion like in others
changed back A2AUtils warning
changed if and accelerator_for - no runtime errors any more
Mac OS (Darwin) sed -i flag for in-place editing differs from posix / gnu
Seems the intention with AutoConf produced Grid/Config.h was to use sed to translate standard PACKAGE_ #defines into GRID_ however due to missing '' after -i this hasn't been working. Perhaps it is too late to fix this, since we don't know who/what is relying on this downstream? ... but if they are, and AutoConf is being used, then likely these #defines have just been redefined anyway. Seems reasonable to redefine PACKAGE and VERSION as well, as none of these macros are used throughout Grid or Hadrons.
Fixed compile issues with maxLocalNorm2 for non-scalar lattices maxLocalNorm2 test now reuses the random field
MADWF 5d source option for hadrons - look at Grid of source Abort on GPU error
maxLocalNorm2()
change back benchmark_ITT
prettify
Flop cout matches DiRAC-ITT-2020
revert changes
merge develop
fixes
weird bug in 2pt function...
revert changes
final version, tested on CPU and GPU
bugfix
...
Perhaps it is too late to fix this, since we don't know who/what is relying on this downstream? ... but if they are, and AutoConf is being used, then likely these #defines have just been redefined anyway. Seems reasonable to redefine PACKAGE and VERSION as well, as none of these macros are used throughout Grid or Hadrons.
* develop:
bugfix ZPerambulator
registered module supporting ZMobius action
changed to push_back according to request
Added Hadrons_Error in case blockSize is set too large
bugfix in perambulator module
# Conflicts:
# Hadrons/Modules/MDistil/Perambulator.hpp
I.e. nT x nVec eigenvalues are saved in FileName.evals.conf.h5.
A new named tensor, "TimesliceEvals" can be used to simplify restoring these from disk.
NB: The changes in BaseIO add support so that Eigen tensors can be easily used in MPI operations, e.g. GlobalSum.
See LapEvec.hpp for an example of how this is done.
* develop:
Change to reporting
NVCC timer support
Fix nocompilee under NVCC
--enable-summit flag
IBM summit optimisation. Synchronise in node is still btweeen 2 halves of AC922, so could be a little faster
Sliced propagator contraction was not producing any results because buf.size()=0
several typos in hadrons
If they are saved, then metadata saved are:
solverXml Parameters for this LapEvec module instance
OperatorXml module type and parameters (if any) for the module that created the gauge field
1) virtual functions not available in base class constructor where I'd like to use them - e.g. IndexNames
2) Must define new constructors in derived classes
... so the specialisations are fatter than I'd like. Would prefer to revert to specifying tensor name and index name defaults in template
* develop:
Summit jsrun GPU mapping updates. Conffigure with --enable-jsrun
Fixed Lanczos calling aligned alloc in threaded region hitting up against pointer-cache no-threading restrictions Fixed Lattice::reset not compiling with new Grid explicit memory region handling Fixed memory leak in Lattice::resize that occurs when data region has been previously allocated
* develop: (27 commits)
Update README.md
result layout standardised, iterator size more elegant
updated syntac in Test_hadrons_spectrum
chroma-regression test now prints difference correctly
baryon input strings are now pairs of pairs of gammas - still ugly!!
second update to pull request
Changing back interface for Gamma3pt
Removing old debug code
Changes to A2Autils
suggested changes for 1st pull request implemented
changed input parameters for easier use
Should compile everywhere now
changed baryon interface
added author information
ready for pull request
code compiling now - still need to test
Baryons module works in 1 of 3 cases - still need SlicedProp and Msource part!!
thread_for caused the problems - slow for loop for now
still bugfix
weird bug...
...
# Conflicts:
# Hadrons/Modules.hpp
# Hadrons/modules.inc
This compiles and looks right ... but may need some testing
* develop: (762 commits)
Tensor ambiguous fix
Fix for GCC preprocessor/pragma handling bug
Trips up NVCC for reasons I dont understand on summit
Fix GCC complaint
Zero() change
Force a couple of things to compile on NVCC
Remove debug code
nvcc error suppress
Merge develop
Reduction finished and hopefully fixes CI regression fail on single precisoin and force
Double precision variants for summation accuracy
Update todo list
Freeze the seed
Fix compiling of MSource::Gauss for single precision
Think the reduction is now sorted and cleaned up
Fix force term
Printing improvement
GPU reduction fix and also exit backtrace option
GPU friendly
Simplify the comms benchmark
...
# Conflicts:
# Grid/communicator/SharedMemoryMPI.cc
# Grid/qcd/action/fermion/WilsonKernelsAsm.cc
# Grid/qcd/action/fermion/implementation/StaggeredKernelsAsm.h
# Grid/qcd/smearing/StoutSmearing.h
# Hadrons/Modules.hpp
# Hadrons/Utilities/Contractor.cc
# Hadrons/modules.inc
# tests/forces/Test_dwf_force_eofa.cc
# tests/forces/Test_dwf_gpforce_eofa.cc
1) Move definitions of serialisable objects into header for re-use by external programs/utilities
2) Add "-s" switch for "Simple" correlators, i.e. only include A2AMatrix info for the actual fields included in each contraction
UnsmearedSinkFileName: If present, specifies the filename to write to
UnsmearedSinkMultiFile: defaults to true to write each sink vector to a different file, but can be set to 0 for a single file