|
QUDA
0.9.0
|

Go to the source code of this file.
Namespaces | |
| anonymous_namespace{dslash_policy.cuh} | |
Macros | |
| #define | PROFILE(f, profile, idx) f; |
| #define | CUDA_CALL(call) call |
Typedefs | |
| typedef std::map< TuneKey, TuneParam > | map |
Functions | |
| const map & | getTuneCache () |
| void | disableProfileCount () |
| void | enableProfileCount () |
| void | setPolicyTuning (bool) |
| void | setFusedParam (DslashParam ¶m, DslashCuda &dslash, const int *faceVolumeCB) |
| void | anonymous_namespace{dslash_policy.cuh}::issueRecv (cudaColorSpinorField &input, const DslashCuda &dslash, cudaStream_t *stream, bool gdr) |
| This helper function simply posts all receives in all directions. More... | |
| void | anonymous_namespace{dslash_policy.cuh}::issuePack (cudaColorSpinorField &in, const DslashCuda &dslash, int parity, MemoryLocation location, int packIndex) |
| This helper function simply posts the packing kernel needed for halo exchange. More... | |
| void | anonymous_namespace{dslash_policy.cuh}::issueGather (cudaColorSpinorField &in, const DslashCuda &dslash) |
| This helper function simply posts the device-host memory copies of all halos in all dimensions and directions. More... | |
| template<typename T > | |
| int | anonymous_namespace{dslash_policy.cuh}::getStreamIndex (const T &dslashParam) |
| Returns a stream index for posting the pack/scatters to. We desire a stream index that is not being used for peer-to-peer communication. This is used by the fused halo dslash kernels where we post all scatters to the same stream so we only have a single event to wait on before the exterior kernel is applied, and by the zero-copy dslash kernels where we want to post the packing kernel to an unused stream. More... | |
| bool | anonymous_namespace{dslash_policy.cuh}::commsComplete (cudaColorSpinorField &in, const DslashCuda &dslash, int dim, int dir, bool gdr_send, bool gdr_recv, bool zero_copy_recv, bool async, int scatterIndex=-1) |
| Wrapper for querying if communication is finished in the dslash, and if it is take the appropriate action: More... | |
| template<typename T > | |
| void | anonymous_namespace{dslash_policy.cuh}::completeDslash (const ColorSpinorField &in, const T &dslashParam) |
| Ensure that the dslash is complete. By construction, the dslash will have completed (or is in flight) on this process, however, we must also ensure that no local work begins until any communication in flight from this process to another has completed. This prevents a race condition where we could start updating the local buffers on a subsequent computation before we have finished sending. More... | |
| void | anonymous_namespace{dslash_policy.cuh}::setMappedGhost (DslashCuda &dslash, cudaColorSpinorField &in, bool to_mapped) |
| Set the ghosts to the mapped CPU ghost buffer, or unsets if already set. Note this must not be called until after the interior dslash has been called, since sets the peer-to-peer ghost pointers, and this need to be done without the mapped ghost enabled. More... | |
| static std::vector< QudaDslashPolicy > | anonymous_namespace{dslash_policy.cuh}::policies (static_cast< int >(QudaDslashPolicy::QUDA_DSLASH_POLICY_DISABLED), QudaDslashPolicy::QUDA_DSLASH_POLICY_DISABLED) |
| static std::vector< QudaP2PPolicy > | anonymous_namespace{dslash_policy.cuh}::p2p_policies (static_cast< int >(QudaP2PPolicy::QUDA_P2P_POLICY_DISABLED), QudaP2PPolicy::QUDA_P2P_POLICY_DISABLED) |
| void | anonymous_namespace{dslash_policy.cuh}::enable_policy (QudaDslashPolicy p) |
| void | anonymous_namespace{dslash_policy.cuh}::disable_policy (QudaDslashPolicy p) |
Variables | |
| static cudaColorSpinorField * | inSpinor |
| static bool | dslash_pack_compute = true |
| static bool | dslash_interior_compute = true |
| static bool | dslash_exterior_compute = true |
| static bool | dslash_comms = true |
| static bool | dslash_copy = true |
| static bool | anonymous_namespace{dslash_policy.cuh}::dslash_init = false |
| static int | anonymous_namespace{dslash_policy.cuh}::config = 0 |
| static int | anonymous_namespace{dslash_policy.cuh}::first_active_policy =static_cast<int>(QudaDslashPolicy::QUDA_DSLASH_POLICY_DISABLED) |
| static int | anonymous_namespace{dslash_policy.cuh}::first_active_p2p_policy =static_cast<int>(QudaP2PPolicy::QUDA_P2P_POLICY_DISABLED) |
| #define CUDA_CALL | ( | call | ) | call |
Definition at line 1030 of file dslash_policy.cuh.
Definition at line 86 of file dslash_policy.cuh.
Referenced by anonymous_namespace{dslash_policy.cuh}::commsComplete(), anonymous_namespace{dslash_policy.cuh}::completeDslash(), anonymous_namespace{dslash_policy.cuh}::issueGather(), anonymous_namespace{dslash_policy.cuh}::issuePack(), anonymous_namespace{dslash_policy.cuh}::issueRecv(), anonymous_namespace{dslash_policy.cuh}::DslashBasic::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashPthreads::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedExterior::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopy::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopy::operator()(), and anonymous_namespace{dslash_policy.cuh}::DslashNC::operator()().
| typedef std::map<TuneKey, TuneParam> map |
Definition at line 4 of file dslash_policy.cuh.
| void disableProfileCount | ( | ) |
Definition at line 107 of file tune.cpp.
References quda::profile_count.
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), and quda::blas::TileSizeTune< ReducerDiagonal, writeDiagonal, ReducerOffDiagonal, writeOffDiagonal >::TileSizeTune().

| void enableProfileCount | ( | ) |
Definition at line 108 of file tune.cpp.
References quda::profile_count.
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), and quda::blas::TileSizeTune< ReducerDiagonal, writeDiagonal, ReducerOffDiagonal, writeOffDiagonal >::TileSizeTune().

| const map& getTuneCache | ( | ) |
Definition at line 110 of file tune.cpp.
References quda::tunecache.
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), and quda::blas::TileSizeTune< ReducerDiagonal, writeDiagonal, ReducerOffDiagonal, writeOffDiagonal >::TileSizeTune().

|
inline |
Definition at line 62 of file dslash_policy.cuh.
References EXTERIOR_KERNEL_ALL, fused_exterior_ndeg_tm_dslash_cuda_gen::i, and param.
Referenced by anonymous_namespace{dslash_policy.cuh}::DslashFusedExterior::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPackGDRRecv::operator()(), and anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopy::operator()().

| void setPolicyTuning | ( | bool | ) |
Definition at line 457 of file tune.cpp.
References quda::policy_tuning.
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), quda::blas::TileSizeTune< ReducerDiagonal, writeDiagonal, ReducerOffDiagonal, writeOffDiagonal >::TileSizeTune(), quda::DslashCoarsePolicyTune::~DslashCoarsePolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::~DslashPolicyTune(), and quda::blas::TileSizeTune< ReducerDiagonal, writeDiagonal, ReducerOffDiagonal, writeOffDiagonal >::~TileSizeTune().

|
static |
Definition at line 16 of file dslash_policy.cuh.
Referenced by anonymous_namespace{dslash_policy.cuh}::commsComplete(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), anonymous_namespace{dslash_policy.cuh}::issueRecv(), anonymous_namespace{dslash_policy.cuh}::DslashBasic::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashPthreads::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedExterior::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopy::operator()(), and anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopy::operator()().
|
static |
Definition at line 17 of file dslash_policy.cuh.
Referenced by anonymous_namespace{dslash_policy.cuh}::commsComplete(), anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), anonymous_namespace{dslash_policy.cuh}::issueGather(), and anonymous_namespace{dslash_policy.cuh}::DslashPthreads::operator()().
|
static |
Definition at line 15 of file dslash_policy.cuh.
Referenced by anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashBasic::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashPthreads::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedExterior::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopy::operator()(), and anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopy::operator()().
|
static |
Definition at line 14 of file dslash_policy.cuh.
Referenced by anonymous_namespace{dslash_policy.cuh}::DslashPolicyTune::DslashPolicyTune(), anonymous_namespace{dslash_policy.cuh}::DslashBasic::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashPthreads::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedExterior::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDR::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPack::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopyPackGDRRecv::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashZeroCopy::operator()(), anonymous_namespace{dslash_policy.cuh}::DslashFusedZeroCopy::operator()(), and anonymous_namespace{dslash_policy.cuh}::DslashNC::operator()().
|
static |
|
static |
Definition at line 1 of file dslash_policy.cuh.
1.8.14