|
QUDA
v0.5.0
A library for QCD on GPUs
|
#include <tune_quda.h>
Inheritance diagram for quda::Tunable:Public Member Functions | |
| Tunable () | |
| virtual | ~Tunable () |
| virtual TuneKey | tuneKey () const =0 |
| virtual void | apply (const cudaStream_t &stream)=0 |
| virtual void | preTune () |
| virtual void | postTune () |
| virtual int | tuningIter () const |
| virtual std::string | paramString (const TuneParam ¶m) const |
| virtual std::string | perfString (float time) const |
| virtual void | initTuneParam (TuneParam ¶m) const |
| virtual void | defaultTuneParam (TuneParam ¶m) const |
| virtual bool | advanceTuneParam (TuneParam ¶m) const |
| void | checkLaunchParam (TuneParam ¶m) |
Protected Member Functions | |
| virtual long long | flops () const =0 |
| virtual long long | bytes () const |
| virtual int | sharedBytesPerThread () const =0 |
| virtual int | sharedBytesPerBlock (const TuneParam ¶m) const =0 |
| virtual bool | advanceGridDim (TuneParam ¶m) const |
| virtual bool | advanceBlockDim (TuneParam ¶m) const |
| virtual bool | advanceSharedBytes (TuneParam ¶m) const |
Definition at line 68 of file tune_quda.h.
|
inline |
Definition at line 135 of file tune_quda.h.
|
inlinevirtual |
Definition at line 136 of file tune_quda.h.
|
inlineprotectedvirtual |
Reimplemented in quda::DomainWallDslashCuda< sFloat, gFloat >, and quda::DslashCuda.
Definition at line 93 of file tune_quda.h.
|
inlineprotectedvirtual |
Reimplemented in quda::CloverCuda< sFloat, cFloat >, and quda::DslashCuda.
Definition at line 80 of file tune_quda.h.
|
inlineprotectedvirtual |
The goal here is to throttle the number of thread blocks per SM by over-allocating shared memory (in order to improve L2 utilization, etc.). Note that:
Definition at line 115 of file tune_quda.h.
|
inlinevirtual |
Definition at line 178 of file tune_quda.h.
|
pure virtual |
Implemented in quda::TwistGamma5Cuda< sFloat >, quda::CloverCuda< sFloat, cFloat >, quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::StaggeredDslashCuda< sFloat, fatGFloat, longGFloat >, quda::fermion_force::SideLink< RealA, RealB >, quda::DomainWallDslashCuda< sFloat, gFloat >, quda::TwistedDslashCuda< sFloat, gFloat >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::AsymCloverDslashCuda< sFloat, gFloat, cFloat >, quda::CloverDslashCuda< sFloat, gFloat, cFloat >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::WilsonDslashCuda< sFloat, gFloat >, quda::fermion_force::UnitarizeForceCuda, quda::UnitarizeLinksCuda, quda::GaugeForceCuda, and quda::copy::CopyCuda< FloatN, N, Output, Input >.
|
inlineprotectedvirtual |
Reimplemented in quda::copy::CopyCuda< FloatN, N, Output, Input >.
Definition at line 72 of file tune_quda.h.
|
inline |
Check the launch parameters of the kernel to ensure that they are valid for the current device.
Definition at line 187 of file tune_quda.h.
|
inlinevirtual |
sets default values for when tuning is disabled
Reimplemented in quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::fermion_force::SideLink< RealA, RealB >, quda::DomainWallDslashCuda< sFloat, gFloat >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::fermion_force::UnitarizeForceCuda, quda::UnitarizeLinksCuda, quda::DslashCuda, and quda::GaugeForceCuda.
Definition at line 172 of file tune_quda.h.
|
protectedpure virtual |
Implemented in quda::TwistGamma5Cuda< sFloat >, quda::CloverCuda< sFloat, cFloat >, quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::StaggeredDslashCuda< sFloat, fatGFloat, longGFloat >, quda::fermion_force::SideLink< RealA, RealB >, quda::DomainWallDslashCuda< sFloat, gFloat >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::TwistedDslashCuda< sFloat, gFloat >, quda::AsymCloverDslashCuda< sFloat, gFloat, cFloat >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::CloverDslashCuda< sFloat, gFloat, cFloat >, quda::WilsonDslashCuda< sFloat, gFloat >, quda::fermion_force::UnitarizeForceCuda, quda::UnitarizeLinksCuda, quda::GaugeForceCuda, and quda::copy::CopyCuda< FloatN, N, Output, Input >.
|
inlinevirtual |
Reimplemented in quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::fermion_force::SideLink< RealA, RealB >, quda::DomainWallDslashCuda< sFloat, gFloat >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::fermion_force::UnitarizeForceCuda, quda::UnitarizeLinksCuda, quda::DslashCuda, and quda::GaugeForceCuda.
Definition at line 162 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::TwistGamma5Cuda< sFloat >, quda::CloverCuda< sFloat, cFloat >, and quda::DslashCuda.
Definition at line 143 of file tune_quda.h.
|
inlinevirtual |
Definition at line 152 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::TwistGamma5Cuda< sFloat >, quda::CloverCuda< sFloat, cFloat >, quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::fermion_force::SideLink< RealA, RealB >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::fermion_force::UnitarizeForceCuda, quda::DslashCuda, quda::UnitarizeLinksCuda, quda::GaugeForceCuda, and quda::copy::CopyCuda< FloatN, N, Output, Input >.
Definition at line 140 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::TwistGamma5Cuda< sFloat >, quda::CloverCuda< sFloat, cFloat >, quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::fermion_force::SideLink< RealA, RealB >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::fermion_force::UnitarizeForceCuda, quda::DslashCuda, quda::UnitarizeLinksCuda, quda::GaugeForceCuda, and quda::copy::CopyCuda< FloatN, N, Output, Input >.
Definition at line 139 of file tune_quda.h.
|
protectedpure virtual |
Implemented in quda::CloverCuda< sFloat, cFloat >, and quda::DslashCuda.
|
protectedpure virtual |
Implemented in quda::CloverCuda< sFloat, cFloat >, quda::StaggeredDslashCuda< sFloat, fatGFloat, longGFloat >, quda::DomainWallDslashCuda< sFloat, gFloat >, quda::TwistedDslashCuda< sFloat, gFloat >, quda::AsymCloverDslashCuda< sFloat, gFloat, cFloat >, quda::CloverDslashCuda< sFloat, gFloat, cFloat >, and quda::WilsonDslashCuda< sFloat, gFloat >.
|
pure virtual |
Implemented in quda::TwistGamma5Cuda< sFloat >, quda::CloverCuda< sFloat, cFloat >, quda::fermion_force::CompleteForce< RealA, RealB >, quda::fermion_force::LongLinkTerm< RealA, RealB >, quda::fermion_force::OneLinkTerm< RealA, RealB >, quda::fermion_force::AllLink< RealA, RealB >, quda::fermion_force::SideLinkShort< RealA, RealB >, quda::StaggeredDslashCuda< sFloat, fatGFloat, longGFloat >, quda::DomainWallDslashCuda< sFloat, gFloat >, quda::fermion_force::SideLink< RealA, RealB >, quda::TwistedDslashCuda< sFloat, gFloat >, quda::fermion_force::LepageMiddleLink< RealA, RealB >, quda::AsymCloverDslashCuda< sFloat, gFloat, cFloat >, quda::CloverDslashCuda< sFloat, gFloat, cFloat >, quda::WilsonDslashCuda< sFloat, gFloat >, quda::fermion_force::MiddleLink< RealA, RealB >, quda::fermion_force::UnitarizeForceCuda, quda::UnitarizeLinksCuda, quda::DslashCuda, quda::GaugeForceCuda, and quda::copy::CopyCuda< FloatN, N, Output, Input >.
|
inlinevirtual |
Definition at line 141 of file tune_quda.h.
1.8.2