16 #define MAX(a,b) ((a)>(b)?(a):(b))
32 #define MAX(a,b) ((a)>(b)?(a):(b))
37 printfQuda(
"S_dimension T_dimension Nspin Ncolor\n");
124 int pad =
MAX(x_face_size, y_face_size);
125 pad =
MAX(pad, z_face_size);
126 pad =
MAX(pad, t_face_size);
170 cudaEventCreate(&
start);
171 cudaEventCreate(&
end);
172 cudaEventRecord(
start, 0);
188 cudaEventRecord(
end, 0);
189 cudaEventSynchronize(
end);
191 cudaEventElapsedTime(&runTime,
start,
end);
192 cudaEventDestroy(
start);
193 cudaEventDestroy(
end);
195 double secs = runTime / 1000;
206 int main(
int argc,
char** argv)
217 CLI::TransformPairs<int> test_type_map {{
"Dslash", 0}, {
"Mat", 1}, {
"Clover", 2}};
218 app->add_option(
"--test",
test_type,
"Test method")->transform(CLI::CheckedTransformer(test_type_map));
221 app->parse(argc, argv);
222 }
catch (
const CLI::ParseError &e) {
236 for (
int c=24; c<=32; c+=8) {
double test(int data_type)
const ColorSpinorField & Odd() const
const ColorSpinorField & Even() const
void Clover(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
Apply the coarse clover operator.
virtual void Dslash(ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const
Apply DslashXpay out = (D * in)
virtual void M(ColorSpinorField &out, const ColorSpinorField &in) const
Apply the full operator.
unsigned long long Flops() const
returns and then zeroes flopcount
void copy(const GaugeField &src)
std::shared_ptr< QUDAApp > make_app(std::string app_description, std::string app_name)
void add_multigrid_option_group(std::shared_ptr< QUDAApp > quda_app)
QudaPrecision smoother_halo_prec
std::array< int, 4 > gridsize_from_cmdline
QudaPrecision prec_sloppy
enum QudaPrecision_s QudaPrecision
@ QUDA_DEGRAND_ROSSI_GAMMA_BASIS
@ QUDA_GHOST_EXCHANGE_PAD
@ QUDA_EVEN_ODD_SITE_ORDER
@ QUDA_FLOAT2_GAUGE_ORDER
@ QUDA_FLOAT2_FIELD_ORDER
@ QUDA_SPACE_SPIN_COLOR_FIELD_ORDER
int dimPartitioned(int dim)
void initComms(int argc, char **argv, std::array< int, 4 > &commDims)
const char * get_prec_str(QudaPrecision prec)
int main(int argc, char **argv)
void initFields(QudaPrecision prec)
double benchmark(int test, const int niter)
void start()
Start profiling.
void initQuda(int device)
QudaReconstructType reconstruct
QudaGaugeFieldOrder order
QudaFieldGeometry geometry
void setPrecision(QudaPrecision precision, bool force_native=false)
Helper function for setting the precision and corresponding field order for QUDA internal fields.
QudaGhostExchange ghostExchange
QudaSiteSubset siteSubset
void setVerbosity(QudaVerbosity verbosity)