|
QUDA
0.9.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.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_CASE_P (QUDA, BlasTest, Combine(Range(0, 3), Range(0, Nkernels)), getblasname) | |
Variables | |
| int | test_type |
| QudaPrecision | prec |
| QudaDslashType | dslash_type |
| QudaInverterType | inv_type |
| int | nvec |
| int | device |
| int | xdim |
| int | ydim |
| int | zdim |
| int | tdim |
| int | gridsize_from_cmdline [] |
| int | niter |
| bool | verify_results |
| int | Nsrc |
| int | Msrc |
| QudaSolveType | solve_type |
| const int | Nkernels = 42 |
| ColorSpinorField * | xH |
| ColorSpinorField * | yH |
| ColorSpinorField * | zH |
| ColorSpinorField * | wH |
| ColorSpinorField * | vH |
| ColorSpinorField * | hH |
| ColorSpinorField * | lH |
| ColorSpinorField * | xD |
| ColorSpinorField * | yD |
| ColorSpinorField * | zD |
| ColorSpinorField * | wD |
| ColorSpinorField * | vD |
| ColorSpinorField * | hD |
| 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 = 3 |
| const char * | prec_str [] = {"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 490 of file blas_test.cu.
Referenced by test().
Definition at line 283 of file blas_test.cu.
References a, fused_exterior_ndeg_tm_dslash_cuda_gen::a2, quda::blas::ax(), quda::blas::axpby(), quda::blas::axpy(), quda::blas::axpyBzpcx(), quda::blas::axpyNorm(), quda::blas::axpyReDot(), quda::blas::axpyZpbx(), b, c, quda::blas::cabxpyAx(), quda::blas::cabxpyAxNorm(), quda::blas::caxpby(), quda::blas::caxpbypczpw(), quda::blas::caxpbypz(), 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(), end, errorQuda, hD, quda::blas::HeavyQuarkResidualNorm(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, lD, Msrc, quda::blas::mxpy(), niter, quda::blas::norm2(), Nsrc, quda::blas::reDotProduct(), start, quda::blas::tripleCGReduction(), quda::blas::tripleCGUpdate(), vD, wD, xD, xmD, quda::blas::xmyNorm(), quda::blas::xpay(), quda::blas::xpaycDotzy(), quda::blas::xpy(), quda::blas::xpyHeavyQuarkResidualNorm(), yD, ymD, zD, and zmD.
Referenced by TEST_P().


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


| void freeFields | ( | ) |
| void initFields | ( | int | prec | ) |
Definition at line 100 of file blas_test.cu.
References checkCudaError, errorQuda, hD, hH, fused_exterior_ndeg_tm_dslash_cuda_gen::i, lD, lH, Msrc, Ncolor, Nspin, Nsrc, param, prec, 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_PARITY_SITE_SUBSET, QUDA_RANDOM_SOURCE, QUDA_SINGLE_PRECISION, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, QUDA_UKQCD_GAMMA_BASIS, QUDA_ZERO_FIELD_CREATE, setPrec(), solve_type, tdim, vD, vH, wD, wH, xD, xdim, xH, xmD, xmH, yD, ydim, yH, ymD, ymH, zD, zdim, zH, zmD, and zmH.
Referenced by BlasTest::SetUp().


| INSTANTIATE_TEST_CASE_P | ( | QUDA | , |
| BlasTest | , | ||
| Combine(Range(0, 3), Range(0, Nkernels)) | , | ||
| getblasname | |||
| ) |
Definition at line 970 of file blas_test.cu.
References device, display_test_info(), dslash_type, endQuda(), finalizeComms(), gridsize_from_cmdline, fused_exterior_ndeg_tm_dslash_cuda_gen::i, initComms(), initQuda(), inv_type, Ncolor, Nspin, nvec, prec, printfQuda, process_command_line_option(), QUDA_ASQTAD_DSLASH, QUDA_INVALID_PRECISION, QUDA_MG_INVERTER, QUDA_SILENT, QUDA_STAGGERED_DSLASH, setSpinorSiteSize(), setVerbosity(), test_type, usage(), and verify_results.

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

Definition at line 75 of file blas_test.cu.
References Ncolor, Nprec, Nspin, prec, QUDA_DOUBLE_PRECISION, QUDA_HALF_PRECISION, QUDA_INVALID_PRECISION, QUDA_SINGLE_PRECISION, and test_type.
Referenced by TEST_P().

Definition at line 492 of file blas_test.cu.
References a, fused_exterior_ndeg_tm_dslash_cuda_gen::a2, quda::abs(), abs(), quda::blas::ax(), quda::blas::axpby(), quda::blas::axpy(), quda::blas::axpyBzpcx(), quda::blas::axpyNorm(), quda::blas::axpyReDot(), quda::blas::axpyZpbx(), b, c, quda::blas::cabxpyAx(), quda::blas::cabxpyAxNorm(), quda::blas::caxpby(), quda::blas::caxpbypczpw(), quda::blas::caxpbypz(), 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(), d, ERROR, errorQuda, quda::exp(), fabs(), h, hD, quda::blas::HeavyQuarkResidualNorm(), hH, fused_exterior_ndeg_tm_dslash_cuda_gen::i, lD, lH, Msrc, quda::blas::mxpy(), quda::blas::norm2(), Nsrc, quda::blas::reDotProduct(), quda::sqrt(), quda::blas::tripleCGReduction(), quda::blas::tripleCGUpdate(), vD, vH, w, wD, wH, x, xD, xH, xmD, xmH, quda::blas::xmyNorm(), quda::blas::xpay(), quda::blas::xpaycDotzy(), quda::blas::xpy(), quda::blas::xpyHeavyQuarkResidualNorm(), y, yD, yH, ymD, ymH, z, zD, zH, zmD, and zmH.
Referenced by benchmark(), and TEST_P().


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

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

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

| int device |
Definition at line 2238 of file CMakeCUDACompilerId.cpp1.ii.
Referenced by main().
| QudaDslashType dslash_type |
Definition at line 1626 of file test_util.cpp.
Referenced by main(), and printQudaInvertParam().
| int gridsize_from_cmdline[] |
For MPI, the default node mapping is lexicographical with t varying fastest.
Definition at line 50 of file test_util.cpp.
Referenced by main().
| ColorSpinorField * hD |
Definition at line 41 of file blas_test.cu.
Referenced by benchmark(), freeFields(), initFields(), and test().
| ColorSpinorField * hH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| QudaInverterType inv_type |
Definition at line 1638 of file test_util.cpp.
Referenced by main(), and printQudaInvertParam().
| ColorSpinorField * lD |
Definition at line 41 of file blas_test.cu.
Referenced by benchmark(), freeFields(), initFields(), and test().
| ColorSpinorField * lH |
Definition at line 40 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| int Msrc |
Definition at line 1629 of file test_util.cpp.
Referenced by benchmark(), freeFields(), initFields(), process_command_line_option(), and test().
| const char* names[] |
Definition at line 924 of file blas_test.cu.
Referenced by getblasname(), and TEST_P().
| int Ncolor |
Definition at line 46 of file blas_test.cu.
Referenced by display_test_info(), initFields(), main(), multiblasCuda(), and skip_kernel().
| int niter |
Definition at line 1630 of file test_util.cpp.
Referenced by benchmark(), and TEST_P().
| const int Nkernels = 42 |
Definition at line 36 of file blas_test.cu.
| int Nprec = 3 |
Definition at line 73 of file blas_test.cu.
Referenced by skip_kernel().
| int Nspin |
Definition at line 45 of file blas_test.cu.
Referenced by display_test_info(), initFields(), SpinorTexture< RegType, StoreType, N, tex_id >::loadGhost(), main(), multiblasCuda(), mixed::multiblasCuda(), multiReduceCuda(), mixed::multiReduceCuda(), setPrec(), skip_kernel(), and quda::Transfer::Transfer().
| int Nsrc |
Definition at line 1628 of file test_util.cpp.
Referenced by benchmark(), freeFields(), initFields(), and test().
| int nvec |
Definition at line 1635 of file test_util.cpp.
Referenced by quda::MPCG::computeMatrixPowers(), and main().
| QudaPrecision prec |
Definition at line 1615 of file test_util.cpp.
Referenced by quda::cublas::BatchInvertMatrix(), computeLongLinkCPU(), display_test_info(), gauge_force_reference(), gauge_force_reference_dir(), get_prec(), get_prec_str(), getblasname(), getdslashtestname(), getstaggereddslashtestname(), init(), initFields(), quda::DiracCoarse::initializeCoarse(), llfat_reference(), magma_Xgeev(), magma_Xgels(), magma_Xgesv(), magma_Xheev(), main(), StaggeredDslashTest::SetUp(), DslashTest::SetUp(), skip_kernel(), and TEST_P().
| const char* prec_str[] = {"half", "single", "double"} |
Definition at line 919 of file blas_test.cu.
Referenced by getblasname().
| QudaSolveType solve_type |
Definition at line 1653 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 1634 of file test_util.cpp.
Referenced by dslashQuda_4dpc(), dslashQuda_mdwf(), main(), and skip_kernel().
| ColorSpinorField * vD |
Definition at line 41 of file blas_test.cu.
Referenced by benchmark(), freeFields(), initFields(), and test().
| bool verify_results |
Definition at line 1641 of file test_util.cpp.
Referenced by main().
| 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 benchmark(), freeFields(), initFields(), and test().
| 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 benchmark(), freeFields(), initFields(), and test().
| int xdim |
Definition at line 1620 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 benchmark(), freeFields(), initFields(), and test().
| std::vector<cpuColorSpinorField*> xmH |
Definition at line 42 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * yD |
Definition at line 41 of file blas_test.cu.
Referenced by benchmark(), freeFields(), initFields(), and test().
| int ydim |
Definition at line 1621 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 benchmark(), freeFields(), initFields(), and test().
| std::vector<cpuColorSpinorField*> ymH |
Definition at line 43 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
| ColorSpinorField * zD |
Definition at line 41 of file blas_test.cu.
Referenced by benchmark(), freeFields(), initFields(), and test().
| int zdim |
Definition at line 1622 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 benchmark(), freeFields(), initFields(), and test().
| std::vector<cpuColorSpinorField*> zmH |
Definition at line 44 of file blas_test.cu.
Referenced by freeFields(), initFields(), and test().
1.8.14