|
QUDA
1.0.0
|
#include <stdio.h>#include <stdlib.h>#include <quda_internal.h>#include <color_spinor_field.h>#include <blas_quda.h>#include <test_util.h>#include <dslash_util.h>#include <gtest/gtest.h>
Go to the source code of this file.
Classes | |
| class | BlasTest |
Macros | |
| #define | ERROR(a) fabs(blas::norm2(*a##D) - blas::norm2(*a##H)) / blas::norm2(*a##H) |
Functions | |
| void | usage (char **) |
| void | setPrec (ColorSpinorParam ¶m, const QudaPrecision precision) |
| void | display_test_info () |
| bool | skip_kernel (int precision, int kernel) |
| void | initFields (int prec) |
| void | freeFields () |
| double | benchmark (int kernel, const int niter) |
| double | test (int kernel) |
| int | main (int argc, char **argv) |
| TEST_P (BlasTest, verify) | |
| TEST_P (BlasTest, benchmark) | |
| std::string | getblasname (testing::TestParamInfo<::testing::tuple< int, int >> param) |
| INSTANTIATE_TEST_SUITE_P (QUDA, BlasTest, Combine(Range(0, 4), Range(0, Nkernels)), getblasname) | |
Variables | |
| int | test_type |
| QudaPrecision | prec |
| QudaDslashType | dslash_type |
| QudaInverterType | inv_type |
| int | nvec [QUDA_MAX_MG_LEVEL] |
| int | device |
| int | xdim |
| int | ydim |
| int | zdim |
| int | tdim |
| int | gridsize_from_cmdline [] |
| int | niter |
| int | Nsrc |
| int | Msrc |
| QudaSolveType | solve_type |
| QudaVerbosity | verbosity |
| const int | Nkernels = 40 |
| ColorSpinorField * | xH |
| ColorSpinorField * | yH |
| ColorSpinorField * | zH |
| ColorSpinorField * | wH |
| ColorSpinorField * | vH |
| ColorSpinorField * | hH |
| ColorSpinorField * | mH |
| ColorSpinorField * | lH |
| ColorSpinorField * | xD |
| ColorSpinorField * | yD |
| ColorSpinorField * | zD |
| ColorSpinorField * | wD |
| ColorSpinorField * | vD |
| ColorSpinorField * | hD |
| ColorSpinorField * | mD |
| ColorSpinorField * | lD |
| ColorSpinorField * | xmD |
| ColorSpinorField * | ymD |
| ColorSpinorField * | zmD |
| std::vector< cpuColorSpinorField * > | xmH |
| std::vector< cpuColorSpinorField * > | ymH |
| std::vector< cpuColorSpinorField * > | zmH |
| int | Nspin |
| int | Ncolor |
| int | Nprec = 4 |
| const char * | prec_str [] = {"quarter", "half", "single", "double"} |
| const char * | names [] |
| #define ERROR | ( | a | ) | fabs(blas::norm2(*a##D) - blas::norm2(*a##H)) / blas::norm2(*a##H) |
Definition at line 502 of file blas_test.cu.
Referenced by test().
| double benchmark | ( | int | kernel, |
| const int | niter | ||
| ) |
Definition at line 303 of file blas_test.cu.
References quda::blas::ax(), quda::blas::axpby(), quda::blas::axpy(), quda::blas::axpyBzpcx(), quda::blas::axpyNorm(), quda::blas::axpyReDot(), quda::blas::axpyZpbx(), quda::blas::cabxpyAx(), quda::blas::cabxpyzAxNorm(), quda::blas::caxpby(), quda::blas::caxpbypzYmbw(), quda::blas::caxpbypzYmbwcDotProductUYNormY(), quda::blas::caxpy(), quda::blas::caxpyBxpz(), quda::blas::caxpyBzpx(), quda::blas::caxpyDotzy(), quda::blas::caxpyNorm(), quda::blas::caxpyXmaz(), quda::blas::caxpyXmazNormX(), quda::blas::cDotProduct(), quda::blas::cDotProductNormA(), quda::blas::cDotProductNormB(), quda::ColorSpinorField::Components(), quda::blas::copy(), quda::blas::cxpaypbz(), quda::blas::end(), errorQuda, quda::blas::HeavyQuarkResidualNorm(), Msrc, quda::blas::mxpy(), niter, quda::blas::norm2(), Nsrc, quda::blas::reDotProduct(), quda::blas::tripleCGReduction(), quda::blas::tripleCGUpdate(), quda::blas::xmyNorm(), quda::blas::xpay(), quda::blas::xpy(), and quda::blas::xpyHeavyQuarkResidualNorm().
Referenced by TEST_P().


| void display_test_info | ( | ) |
Definition at line 58 of file blas_test.cu.
References dimPartitioned(), Ncolor, Nspin, printfQuda, tdim, xdim, ydim, and zdim.
Referenced by main().


| void freeFields | ( | ) |
| std::string getblasname | ( | testing::TestParamInfo<::testing::tuple< int, int >> | param | ) |
Definition at line 1065 of file blas_test.cu.
References INSTANTIATE_TEST_SUITE_P(), names, Nkernels, param, prec, and prec_str.

| void initFields | ( | int | prec | ) |
Definition at line 101 of file blas_test.cu.
References checkCudaError, quda::ColorSpinorParam::composite_dim, quda::ColorSpinorParam::create, errorQuda, quda::ColorSpinorParam::fieldOrder, quda::ColorSpinorParam::gammaBasis, hH, quda::ColorSpinorParam::is_component, quda::ColorSpinorParam::is_composite, lH, mH, Msrc, Ncolor, quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, Nspin, quda::ColorSpinorParam::nSpin, Nsrc, quda::LatticeFieldParam::pad, param, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_DIRECT_PC_SOLVE, QUDA_DIRECT_SOLVE, QUDA_DOUBLE_PRECISION, QUDA_EVEN_ODD_SITE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_HALF_PRECISION, QUDA_INVALID_PRECISION, QUDA_NORMOP_PC_SOLVE, QUDA_NORMOP_SOLVE, QUDA_PARITY_SITE_SUBSET, QUDA_QUARTER_PRECISION, QUDA_RANDOM_SOURCE, QUDA_SINGLE_PRECISION, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, QUDA_UKQCD_GAMMA_BASIS, QUDA_ZERO_FIELD_CREATE, setPrec(), quda::ColorSpinorParam::setPrecision(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, solve_type, tdim, vH, wH, quda::LatticeFieldParam::x, xdim, xH, ydim, yH, zdim, and zH.
Referenced by BlasTest::SetUp().


| INSTANTIATE_TEST_SUITE_P | ( | QUDA | , |
| BlasTest | , | ||
| Combine(Range(0, 4), Range(0, Nkernels)) | , | ||
| getblasname | |||
| ) |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 957 of file blas_test.cu.
References comm_rank(), device, display_test_info(), dslash_type, endQuda(), finalizeComms(), gridsize_from_cmdline, initComms(), initQuda(), inv_type, Ncolor, Nspin, nvec, prec, printfQuda, process_command_line_option(), QUDA_ASQTAD_DSLASH, QUDA_INVALID_PRECISION, QUDA_MG_INVERTER, QUDA_STAGGERED_DSLASH, setSpinorSiteSize(), setVerbosity(), test_type, usage(), and verbosity.

| void setPrec | ( | ColorSpinorParam & | param, |
| const QudaPrecision | precision | ||
| ) |
Definition at line 48 of file blas_test.cu.
References quda::ColorSpinorParam::fieldOrder, Nspin, QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_FIELD_ORDER, QUDA_FLOAT4_FIELD_ORDER, and quda::ColorSpinorParam::setPrecision().
Referenced by initFields().


| bool skip_kernel | ( | int | precision, |
| int | kernel | ||
| ) |
Definition at line 74 of file blas_test.cu.
References getPrecision(), Ncolor, Nprec, Nspin, prec, QUDA_INVALID_PRECISION, and test_type.
Referenced by TEST_P().


| double test | ( | int | kernel | ) |
Definition at line 504 of file blas_test.cu.
References quda::abs(), quda::blas::ax(), quda::blas::axpby(), quda::blas::axpy(), quda::blas::axpyBzpcx(), quda::blas::axpyNorm(), quda::blas::axpyReDot(), quda::blas::axpyZpbx(), quda::blas::cabxpyAx(), quda::blas::cabxpyzAxNorm(), quda::blas::caxpby(), quda::blas::caxpbypzYmbw(), quda::blas::caxpbypzYmbwcDotProductUYNormY(), quda::blas::caxpy(), quda::blas::caxpyBxpz(), quda::blas::caxpyBzpx(), quda::blas::caxpyDotzy(), quda::blas::caxpyNorm(), quda::blas::caxpyXmaz(), quda::blas::caxpyXmazNormX(), quda::blas::cDotProduct(), quda::blas::cDotProductNormA(), quda::blas::cDotProductNormB(), quda::ColorSpinorField::Component(), quda::ColorSpinorField::Components(), quda::blas::copy(), quda::blas::cxpaypbz(), ERROR, errorQuda, quda::exp(), quda::blas::HeavyQuarkResidualNorm(), hH, lH, mH, Msrc, quda::blas::mxpy(), quda::blas::norm2(), Nsrc, quda::blas::reDotProduct(), quda::sqrt(), quda::blas::tripleCGReduction(), quda::blas::tripleCGUpdate(), vH, wH, xD, xH, quda::blas::xmyNorm(), quda::blas::xpay(), quda::blas::xpy(), quda::blas::xpyHeavyQuarkResidualNorm(), yD, yH, and zH.
Referenced by TEST_P().


| TEST_P | ( | BlasTest | , |
| verify | |||
| ) |
Definition at line 1030 of file blas_test.cu.
References prec, skip_kernel(), test(), and tol.

Definition at line 1044 of file blas_test.cu.
References benchmark(), quda::blas::bytes, quda::blas::flops, names, niter, prec, printfQuda, and skip_kernel().

| void usage | ( | char ** | ) |
Definition at line 1783 of file test_util.cpp.
Referenced by main().

| int device |
Definition at line 1602 of file test_util.cpp.
Referenced by comm_init_common(), quda::dslash::DslashPolicyTune< Dslash >::DslashPolicyTune(), main(), and setNumaAffinityNVML().
| QudaDslashType dslash_type |
Definition at line 1621 of file test_util.cpp.
Referenced by main(), printQudaInvertParam(), and staggered_dslash().
| int gridsize_from_cmdline[] |
For MPI, the default node mapping is lexicographical with t varying fastest.
Definition at line 49 of file test_util.cpp.
Referenced by main().
| ColorSpinorField * hD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| ColorSpinorField * hH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| QudaInverterType inv_type |
Definition at line 1640 of file test_util.cpp.
Referenced by main(), and printQudaInvertParam().
| ColorSpinorField * lD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| ColorSpinorField * lH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * mD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| ColorSpinorField * mH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| int Msrc |
Definition at line 1628 of file test_util.cpp.
Referenced by benchmark(), freeFields(), initFields(), process_command_line_option(), and test().
| const char* names[] |
Definition at line 914 of file blas_test.cu.
Referenced by getblasname(), and TEST_P().
| int Ncolor |
Definition at line 46 of file blas_test.cu.
Referenced by quda::MG::buildFreeVectors(), display_test_info(), initFields(), main(), quda::blas::multiBlas(), and skip_kernel().
| int niter |
Definition at line 1629 of file test_util.cpp.
Referenced by benchmark(), and TEST_P().
| const int Nkernels = 40 |
Definition at line 36 of file blas_test.cu.
Referenced by getblasname().
| int Nprec = 4 |
Definition at line 72 of file blas_test.cu.
Referenced by skip_kernel().
| int Nspin |
Definition at line 45 of file blas_test.cu.
Referenced by quda::MG::buildFreeVectors(), display_test_info(), initFields(), SpinorTexture< RegType, StoreType, N >::loadGhost(), main(), quda::blas::mixedMultiBlas(), quda::blas::mixedMultiReduce(), quda::blas::multiBlas(), quda::blas::multiReduce(), setPrec(), and skip_kernel().
| int Nsrc |
Definition at line 1627 of file test_util.cpp.
Referenced by benchmark(), freeFields(), initFields(), and test().
| int nvec[QUDA_MAX_MG_LEVEL] |
Definition at line 1637 of file test_util.cpp.
Referenced by quda::MPCG::computeMatrixPowers(), and main().
| QudaPrecision prec |
Definition at line 1608 of file test_util.cpp.
Referenced by checkClover(), computeHISQLinksCPU(), display_test_info(), exchange_llfat_init(), gauge_force_reference_dir(), get_prec(), getblasname(), getdslashtestname(), getstaggereddslashtestname(), init(), llfat_reference(), loadCloverQuda(), main(), quda::TRLM::operator()(), saveGaugeQuda(), StaggeredDslashTest::SetUp(), DslashTest::SetUp(), skip_kernel(), quda::spinorNoise(), TEST_P(), and quda::MG::verify().
| const char* prec_str[] = {"quarter", "half", "single", "double"} |
Definition at line 909 of file blas_test.cu.
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), and getblasname().
| QudaSolveType solve_type |
Definition at line 1663 of file test_util.cpp.
Referenced by initFields(), and printQudaInvertParam().
| int tdim |
Definition at line 24 of file gauge_force_test.cpp.
Referenced by display_test_info(), and initFields().
| int test_type |
Definition at line 1636 of file test_util.cpp.
Referenced by main(), and skip_kernel().
| ColorSpinorField * vD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| QudaVerbosity verbosity |
Definition at line 1614 of file test_util.cpp.
Referenced by main(), printQudaInvertParam(), printQudaMultigridParam(), quda::TunableVectorYZ::resizeStep(), and setVerbosity().
| ColorSpinorField * vH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * wD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| ColorSpinorField * wH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField* xD |
Definition at line 41 of file blas_test.cu.
Referenced by quda::MG::buildFreeVectors(), freeFields(), and test().
| int xdim |
Definition at line 1615 of file test_util.cpp.
Referenced by display_test_info(), and initFields().
| ColorSpinorField* xH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * xmD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| std::vector<cpuColorSpinorField*> xmH |
Definition at line 42 of file blas_test.cu.
| ColorSpinorField * yD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields(), and test().
| int ydim |
Definition at line 1616 of file test_util.cpp.
Referenced by display_test_info(), and initFields().
| ColorSpinorField * yH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * ymD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| std::vector<cpuColorSpinorField*> ymH |
Definition at line 43 of file blas_test.cu.
| ColorSpinorField * zD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| int zdim |
Definition at line 1617 of file test_util.cpp.
Referenced by display_test_info(), and initFields().
| ColorSpinorField * zH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * zmD |
Definition at line 41 of file blas_test.cu.
Referenced by freeFields().
| std::vector<cpuColorSpinorField*> zmH |
Definition at line 44 of file blas_test.cu.
1.8.13