QUDA
v0.7.0
A library for QCD on GPUs
|
#include <tune_quda.h>
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 unsigned int | sharedBytesPerThread () const =0 |
virtual unsigned int | sharedBytesPerBlock (const TuneParam ¶m) const =0 |
virtual unsigned int | minThreads () const |
virtual bool | tuneGridDim () const |
virtual bool | tuneSharedBytes () const |
virtual bool | advanceGridDim (TuneParam ¶m) const |
virtual bool | advanceBlockDim (TuneParam ¶m) const |
virtual bool | advanceSharedBytes (TuneParam ¶m) const |
void | writeAuxString (const char *format,...) |
Protected Attributes | |
char | aux [TuneKey::aux_n] |
Definition at line 40 of file tune_quda.h.
|
inline |
Definition at line 148 of file tune_quda.h.
|
inlinevirtual |
Definition at line 149 of file tune_quda.h.
|
inlineprotectedvirtual |
Definition at line 74 of file tune_quda.h.
|
inlineprotectedvirtual |
Definition at line 57 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 113 of file tune_quda.h.
|
inlinevirtual |
Definition at line 205 of file tune_quda.h.
|
pure virtual |
Implemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::CopySpinorEx< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis, extend >, quda::ContractCuda< Float2, rFloat >, quda::ExtractGhostEx< Float, length, nDim, Order >, quda::GaugeForceCuda, quda::PackSpinor< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis >, quda::CloverCuda< sFloat, cFloat >, quda::KSForceComplete< Float, Oprod, Gauge, Mom >, quda::ShiftColorSpinorField< Output, Input >, quda::CopyGauge< FloatOut, FloatIn, length, OutOrder, InOrder, isGhost >, quda::ExtractGhost< Float, length, nDim, Order >, quda::CopyGaugeEx< FloatOut, FloatIn, length, OutOrder, InOrder >, quda::copy::CopyCuda< FloatN, N, Output, Input >, and quda::Gamma5Cuda< sFloat >.
|
inlineprotectedvirtual |
Reimplemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::ContractCuda< Float2, rFloat >, quda::CopySpinorEx< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis, extend >, quda::ExtractGhostEx< Float, length, nDim, Order >, quda::PackSpinor< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis >, quda::ShiftColorSpinorField< Output, Input >, quda::KSForceComplete< Float, Oprod, Gauge, Mom >, quda::CopyGauge< FloatOut, FloatIn, length, OutOrder, InOrder, isGhost >, quda::ExtractGhost< Float, length, nDim, Order >, quda::CopyGaugeEx< FloatOut, FloatIn, length, OutOrder, InOrder >, quda::copy::CopyCuda< FloatN, N, Output, Input >, and quda::Gamma5Cuda< sFloat >.
Definition at line 44 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 214 of file tune_quda.h.
|
inlinevirtual |
sets default values for when tuning is disabled
Reimplemented in quda::ShiftColorSpinorField< Output, Input >.
Definition at line 199 of file tune_quda.h.
|
protectedpure virtual |
Implemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::ContractCuda< Float2, rFloat >, quda::CopySpinorEx< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis, extend >, quda::ExtractGhostEx< Float, length, nDim, Order >, quda::GaugeForceCuda, quda::CloverCuda< sFloat, cFloat >, quda::PackSpinor< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis >, quda::ShiftColorSpinorField< Output, Input >, quda::KSForceComplete< Float, Oprod, Gauge, Mom >, quda::CopyGauge< FloatOut, FloatIn, length, OutOrder, InOrder, isGhost >, quda::ExtractGhost< Float, length, nDim, Order >, quda::CopyGaugeEx< FloatOut, FloatIn, length, OutOrder, InOrder >, quda::copy::CopyCuda< FloatN, N, Output, Input >, and quda::Gamma5Cuda< sFloat >.
|
inlinevirtual |
Reimplemented in quda::ShiftColorSpinorField< Output, Input >.
Definition at line 175 of file tune_quda.h.
|
inlineprotectedvirtual |
Reimplemented in quda::CloverCuda< sFloat, cFloat >.
Definition at line 53 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::ContractCuda< Float2, rFloat >, quda::CopySpinorEx< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis, extend >, quda::ExtractGhostEx< Float, length, nDim, Order >, quda::CloverCuda< sFloat, cFloat >, quda::PackSpinor< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis >, quda::KSForceComplete< Float, Oprod, Gauge, Mom >, quda::CopyGauge< FloatOut, FloatIn, length, OutOrder, InOrder, isGhost >, quda::ExtractGhost< Float, length, nDim, Order >, quda::CopyGaugeEx< FloatOut, FloatIn, length, OutOrder, InOrder >, and quda::Gamma5Cuda< sFloat >.
Definition at line 156 of file tune_quda.h.
|
inlinevirtual |
Definition at line 165 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::ContractCuda< Float2, rFloat >, quda::GaugeForceCuda, quda::CloverCuda< sFloat, cFloat >, quda::ShiftColorSpinorField< Output, Input >, quda::copy::CopyCuda< FloatN, N, Output, Input >, and quda::Gamma5Cuda< sFloat >.
Definition at line 153 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::ContractCuda< Float2, rFloat >, quda::GaugeForceCuda, quda::CloverCuda< sFloat, cFloat >, quda::ShiftColorSpinorField< Output, Input >, quda::copy::CopyCuda< FloatN, N, Output, Input >, and quda::Gamma5Cuda< sFloat >.
Definition at line 152 of file tune_quda.h.
|
protectedpure virtual |
Implemented in quda::CloverCuda< sFloat, cFloat >.
|
protectedpure virtual |
Implemented in quda::CloverCuda< sFloat, cFloat >.
|
inlineprotectedvirtual |
Reimplemented in quda::CloverCuda< sFloat, cFloat >.
Definition at line 54 of file tune_quda.h.
|
pure virtual |
Implemented in quda::TwistCloverGamma5Cuda< cFloat, sFloat >, quda::KSLongLinkForce< Float, Result, Oprod, Gauge >, quda::TwistGamma5Cuda< sFloat >, quda::CopySpinorEx< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis, extend >, quda::GaugeForceCuda, quda::ExtractGhostEx< Float, length, nDim, Order >, quda::ContractCuda< Float2, rFloat >, quda::ShiftColorSpinorField< Output, Input >, quda::PackSpinor< FloatOut, FloatIn, Ns, Nc, OutOrder, InOrder, Basis >, quda::CloverCuda< sFloat, cFloat >, quda::KSForceComplete< Float, Oprod, Gauge, Mom >, quda::CopyGauge< FloatOut, FloatIn, length, OutOrder, InOrder, isGhost >, quda::ExtractGhost< Float, length, nDim, Order >, quda::CopyGaugeEx< FloatOut, FloatIn, length, OutOrder, InOrder >, quda::copy::CopyCuda< FloatN, N, Output, Input >, and quda::Gamma5Cuda< sFloat >.
|
inlineprotectedvirtual |
Definition at line 55 of file tune_quda.h.
|
inlinevirtual |
Reimplemented in quda::copy::CopyCuda< FloatN, N, Output, Input >.
Definition at line 154 of file tune_quda.h.
|
inlineprotected |
Definition at line 138 of file tune_quda.h.
|
protected |
Definition at line 136 of file tune_quda.h.