QUDA
1.0.0
|
Go to the source code of this file.
Classes | |
struct | Topology_s |
Functions | |
static int | index (int ndim, const int *dims, const int *x) |
static bool | advance_coords (int ndim, const int *dims, int *x) |
char * | comm_hostname (void) |
double | comm_drand (void) |
Topology * | comm_create_topology (int ndim, const int *dims, QudaCommsMap rank_from_coords, void *map_data) |
void | comm_destroy_topology (Topology *topo) |
int | comm_gpuid (void) |
void | comm_peer2peer_init (const char *hostname_recv_buf) |
bool | comm_peer2peer_present () |
Returns true if any peer-to-peer capability is present on this system (regardless of whether it has been disabled or not. We use this, for example, to determine if we need to allocate pinned device memory or not. More... | |
bool | comm_peer2peer_enabled (int dir, int dim) |
int | comm_peer2peer_enabled_global () |
void | comm_enable_peer2peer (bool enable) |
Enable / disable peer-to-peer communication: used for dslash policies that do not presently support peer-to-peer communication. More... | |
bool | comm_intranode_enabled (int dir, int dim) |
void | comm_enable_intranode (bool enable) |
Enable / disable intra-node (non-peer-to-peer) communication. More... | |
int | comm_ndim (const Topology *topo) |
const int * | comm_dims (const Topology *topo) |
const int * | comm_coords (const Topology *topo) |
const int * | comm_coords_from_rank (const Topology *topo, int rank) |
int | comm_rank_from_coords (const Topology *topo, const int *coords) |
static int | mod (int a, int b) |
int | comm_rank_displaced (const Topology *topo, const int displacement[]) |
void | comm_set_default_topology (Topology *topo) |
Topology * | comm_default_topology (void) |
void | comm_set_neighbor_ranks (Topology *topo) |
int | comm_neighbor_rank (int dir, int dim) |
int | comm_dim (int dim) |
int | comm_coord (int dim) |
bool | isHost (const void *buffer) |
MsgHandle * | comm_declare_send_relative_ (const char *func, const char *file, int line, void *buffer, int dim, int dir, size_t nbytes) |
MsgHandle * | comm_declare_receive_relative_ (const char *func, const char *file, int line, void *buffer, int dim, int dir, size_t nbytes) |
MsgHandle * | comm_declare_strided_send_relative_ (const char *func, const char *file, int line, void *buffer, int dim, int dir, size_t blksize, int nblocks, size_t stride) |
MsgHandle * | comm_declare_strided_receive_relative_ (const char *func, const char *file, int line, void *buffer, int dim, int dir, size_t blksize, int nblocks, size_t stride) |
void | comm_finalize (void) |
void | comm_dim_partitioned_set (int dim) |
void | comm_dim_partitioned_reset () |
int | comm_dim_partitioned (int dim) |
int | comm_partitioned () |
Loop over comm_dim_partitioned(dim) for all comms dimensions. More... | |
bool | comm_gdr_enabled () |
Query if GPU Direct RDMA communication is enabled (global setting) More... | |
bool | comm_gdr_blacklist () |
Query if GPU Direct RDMA communication is blacklisted for this GPU. More... | |
void | comm_init_common (int ndim, const int *dims, QudaCommsMap rank_from_coords, void *map_data) |
Initialize the communications common to all communications abstractions. More... | |
const char * | comm_config_string () |
Return a string that defines the P2P/GDR environment variable configuration (for use as a tuneKey to enable unique policies). More... | |
const char * | comm_dim_partitioned_string (const int *comm_dim_override) |
Return a string that defines the comm partitioning (used as a tuneKey) More... | |
const char * | comm_dim_topology_string () |
Return a string that defines the comm topology (for use as a tuneKey) More... | |
bool | comm_deterministic_reduce () |
void | reduceMaxDouble (double &max) |
void | reduceDouble (double &sum) |
void | reduceDoubleArray (double *sum, const int len) |
int | commDim (int dir) |
int | commCoords (int dir) |
int | commDimPartitioned (int dir) |
void | commDimPartitionedSet (int dir) |
void | commDimPartitionedReset () |
Reset the comm dim partioned array to zero,. More... | |
bool | commGlobalReduction () |
void | commGlobalReductionSet (bool global_reduction) |
bool | commAsyncReduction () |
void | commAsyncReductionSet (bool async_reduction) |
Variables | |
static unsigned long int | rand_seed = 137 |
static int | gpuid = -1 |
static bool | peer2peer_enabled [2][4] |
static bool | peer2peer_init = false |
static bool | intranode_enabled [2][4] |
static bool | peer2peer_present = false |
static int | enable_peer_to_peer = 3 |
static bool | enable_p2p = true |
static bool | enable_intranode = true |
Topology * | default_topo = NULL |
static int | neighbor_rank [2][4] |
static bool | neighbors_cached = false |
static char | partition_string [16] |
static char | topology_string [128] |
static char | partition_override_string [16] |
static int | manual_set_partition [QUDA_MAX_DIM] = {0} |
static bool | deterministic_reduce = false |
static bool | globalReduce = true |
static bool | asyncReduce = false |
|
inlinestatic |
Definition at line 42 of file comm_common.cpp.
Referenced by comm_create_topology().
const char* comm_config_string | ( | ) |
Return a string that defines the P2P/GDR environment variable configuration (for use as a tuneKey to enable unique policies).
Definition at line 766 of file comm_common.cpp.
References comm_gdr_enabled(), and comm_peer2peer_enabled_global().
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), and quda::dslash::DslashPolicyTune< Dslash >::tuneKey().
int comm_coord | ( | int | dim | ) |
Return the coording of this process in the dimension dim
dim | Dimension which we are querying |
Definition at line 431 of file comm_common.cpp.
References comm_coords(), and comm_default_topology().
Referenced by commCoords(), DslashCuda::DslashCuda(), and quda::rngArg::rngArg().
const int* comm_coords | ( | const Topology * | topo | ) |
Definition at line 334 of file comm_common.cpp.
References Topology_s::my_coords.
Referenced by comm_coord(), and comm_rank_displaced().
const int* comm_coords_from_rank | ( | const Topology * | topo, |
int | rank | ||
) |
Definition at line 340 of file comm_common.cpp.
References Topology_s::coords, and rank.
Topology* comm_create_topology | ( | int | ndim, |
const int * | dims, | ||
QudaCommsMap | rank_from_coords, | ||
void * | map_data | ||
) |
Definition at line 94 of file comm_common.cpp.
References advance_coords(), comm_rank(), Topology_s::coords, Topology_s::dims, errorQuda, index(), Topology_s::my_coords, Topology_s::my_rank, Topology_s::ndim, QUDA_MAX_DIM, rand_seed, rank, Topology_s::ranks, and safe_malloc.
Referenced by comm_init_common().
MsgHandle* comm_declare_receive_relative_ | ( | const char * | func, |
const char * | file, | ||
int | line, | ||
void * | buffer, | ||
int | dim, | ||
int | dir, | ||
size_t | nbytes | ||
) |
Receive from the "dir" direction in the "dim" dimension
Definition at line 499 of file comm_common.cpp.
References checkCudaError, comm_declare_receive_displaced(), errorQuda, isHost(), printfQuda, and QUDA_MAX_DIM.
MsgHandle* comm_declare_send_relative_ | ( | const char * | func, |
const char * | file, | ||
int | line, | ||
void * | buffer, | ||
int | dim, | ||
int | dir, | ||
size_t | nbytes | ||
) |
Send to the "dir" direction in the "dim" dimension
Definition at line 462 of file comm_common.cpp.
References checkCudaError, comm_declare_send_displaced(), quda::blas::copy(), device_free, device_malloc, errorQuda, host_free, isHost(), printfQuda, QUDA_MAX_DIM, safe_malloc, and tmp.
MsgHandle* comm_declare_strided_receive_relative_ | ( | const char * | func, |
const char * | file, | ||
int | line, | ||
void * | buffer, | ||
int | dim, | ||
int | dir, | ||
size_t | blksize, | ||
int | nblocks, | ||
size_t | stride | ||
) |
Strided receive from the "dir" direction in the "dim" dimension
Definition at line 573 of file comm_common.cpp.
References checkCudaError, comm_declare_strided_receive_displaced(), errorQuda, isHost(), printfQuda, and QUDA_MAX_DIM.
MsgHandle* comm_declare_strided_send_relative_ | ( | const char * | func, |
const char * | file, | ||
int | line, | ||
void * | buffer, | ||
int | dim, | ||
int | dir, | ||
size_t | blksize, | ||
int | nblocks, | ||
size_t | stride | ||
) |
Strided send to the "dir" direction in the "dim" dimension
Definition at line 532 of file comm_common.cpp.
References checkCudaError, comm_declare_strided_send_displaced(), quda::blas::copy(), device_free, device_malloc, errorQuda, host_free, isHost(), printfQuda, QUDA_MAX_DIM, safe_malloc, and tmp.
Topology* comm_default_topology | ( | void | ) |
Definition at line 381 of file comm_common.cpp.
References default_topo, and errorQuda.
Referenced by comm_coord(), comm_declare_receive_displaced(), comm_declare_send_displaced(), comm_declare_strided_receive_displaced(), comm_declare_strided_send_displaced(), comm_dim(), and comm_finalize().
void comm_destroy_topology | ( | Topology * | topo | ) |
Definition at line 137 of file comm_common.cpp.
References Topology_s::coords, host_free, and Topology_s::ranks.
Referenced by comm_finalize().
bool comm_deterministic_reduce | ( | ) |
Definition at line 799 of file comm_common.cpp.
References deterministic_reduce.
Referenced by comm_allreduce(), and comm_allreduce_array().
int comm_dim | ( | int | dim | ) |
Return the number of processes in the dimension dim
dim | Dimension which we are querying |
Definition at line 424 of file comm_common.cpp.
References comm_default_topology(), and comm_dims().
Referenced by comm_dim_partitioned(), comm_init_common(), comm_peer2peer_init(), commDim(), quda::LatticeField::createIPCComms(), quda::LatticeField::destroyIPCComms(), quda::GaugeLaplace::Dslash(), quda::GaugeCovDev::DslashCD(), DslashCuda::DslashCuda(), quda::GaugeLaplace::DslashXpay(), packGhostAllLinks(), packGhostAllStaples(), quda::rngArg::rngArg(), and set_layout().
int comm_dim_partitioned | ( | int | dim | ) |
Definition at line 635 of file comm_common.cpp.
References comm_dim(), and manual_set_partition.
Referenced by quda::ApplyImprovedStaggered(), quda::GenericPackGhostLauncher< Float, block_float, Ns, Ms, Nc, Mc, Arg >::bytes(), quda::CalculateYArg< Float, fineSpin, coarseSpin, fineColor, coarseColor, coarseGauge, coarseGaugeAtomic, fineGauge, fineSpinor, fineSpinorTmp, fineSpinorV, fineClover >::CalculateYArg(), GaugeAlgTest::checkDimsPartitioned(), comm_dim_partitioned_reset(), comm_dim_partitioned_set(), comm_dim_partitioned_string(), comm_init_common(), comm_partitioned(), commDimPartitioned(), quda::cudaGaugeField::commsComplete(), computeHISQForceQuda(), quda::GaugeField::createGhostZone(), quda::ColorSpinorField::createGhostZone(), quda::GaugeLaplace::Dslash(), quda::DslashArg< Float >::DslashArg(), quda::GaugeCovDev::DslashCD(), quda::DslashCoarseArg< Float, yFloat, ghostFloat, coarseSpin, coarseColor, csOrder, gOrder >::DslashCoarseArg(), DslashCuda::DslashCuda(), quda::GaugeLaplace::DslashXpay(), quda::GaugeField::exchange(), quda::ColorSpinorField::exchange(), quda::cudaGaugeField::exchangeExtendedGhost(), quda::cpuGaugeField::exchangeExtendedGhost(), quda::cudaGaugeField::exchangeGhost(), quda::cudaColorSpinorField::exchangeGhost(), quda::ExtractGhostArg< Float, nColor_, Order, nDim >::ExtractGhostArg(), quda::gaugefixingFFT(), gaugeLink_mgpu(), quda::GenericPackGhostLauncher< Float, block_float, Ns, Ms, Nc, Mc, Arg >::GenericPackGhostLauncher(), hisq_force_init(), hisq_force_test(), quda::cudaGaugeField::injectGhost(), main(), neighborIndex_mg(), quda::PackGhostArg< Field >::PackGhostArg(), quda::PGaugeExchange(), quda::cudaGaugeField::recvStart(), quda::colorspinor::FloatNOrder< Float, Ns, Nc, N, spin_project, huge_alloc >::resetGhost(), quda::cudaGaugeField::sendStart(), GaugeAlgTest::SetUp(), spinorNeighbor_5d(), quda::WuppertalSmearingArg< Float, Ns, Nc, gRecon >::WuppertalSmearingArg(), and quda::XSD::XSD().
void comm_dim_partitioned_reset | ( | ) |
Definition at line 628 of file comm_common.cpp.
References comm_dim_partitioned(), manual_set_partition, partition_string, and QUDA_MAX_DIM.
Referenced by commDimPartitionedReset().
void comm_dim_partitioned_set | ( | int | dim | ) |
Definition at line 618 of file comm_common.cpp.
References comm_dim_partitioned(), manual_set_partition, and partition_string.
Referenced by commDimPartitionedSet().
const char* comm_dim_partitioned_string | ( | const int * | comm_dim_override = 0 | ) |
Return a string that defines the comm partitioning (used as a tuneKey)
comm_dim_override | Optional override for partitioning |
Definition at line 782 of file comm_common.cpp.
References comm_dim_partitioned(), partition_override_string, and partition_string.
Referenced by quda::CalculateY< from_coarse, Float, fineSpin, fineColor, coarseSpin, coarseColor, Arg >::CalculateY(), quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), quda::Dslash< Float >::fillAux(), quda::GenericPackGhostLauncher< Float, block_float, Ns, Ms, Nc, Mc, Arg >::GenericPackGhostLauncher(), and quda::WuppertalSmearing< Float, Ns, Nc, Arg >::WuppertalSmearing().
const char* comm_dim_topology_string | ( | ) |
Return a string that defines the comm topology (for use as a tuneKey)
Definition at line 797 of file comm_common.cpp.
References topology_string.
Referenced by quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), quda::Pack< Float, nColor, spin_project >::fillAux(), quda::GenericPackGhostLauncher< Float, block_float, Ns, Ms, Nc, Mc, Arg >::GenericPackGhostLauncher(), and quda::dslash::DslashPolicyTune< Dslash >::tuneKey().
const int* comm_dims | ( | const Topology * | topo | ) |
Definition at line 328 of file comm_common.cpp.
References Topology_s::dims.
Referenced by comm_dim(), and comm_rank_displaced().
double comm_drand | ( | void | ) |
We provide our own random number generator to avoid re-seeding rand(), which might also be used by the calling application. This is a clone of rand48(), provided by stdlib.h on UNIX.
Definition at line 82 of file comm_common.cpp.
References rand_seed.
Referenced by insertNoise(), and quda::random().
void comm_enable_intranode | ( | bool | enable | ) |
Enable / disable intra-node (non-peer-to-peer) communication.
[in] | enable | Boolean flag to enable / disable intra-node (non peer-to-peer) communication |
Definition at line 318 of file comm_common.cpp.
References enable_intranode.
void comm_enable_peer2peer | ( | bool | enable | ) |
Enable / disable peer-to-peer communication: used for dslash policies that do not presently support peer-to-peer communication.
[in] | enable | Boolean flag to enable / disable peer-to-peer communication |
Definition at line 308 of file comm_common.cpp.
References enable_p2p.
Referenced by quda::dslash::DslashPolicyTune< Dslash >::apply(), quda::dslash::DslashPolicyTune< Dslash >::DslashPolicyTune(), and quda::DslashCoarseLaunch::operator()().
void comm_finalize | ( | void | ) |
Definition at line 606 of file comm_common.cpp.
References comm_default_topology(), comm_destroy_topology(), and comm_set_default_topology().
Referenced by endQuda().
bool comm_gdr_blacklist | ( | ) |
Query if GPU Direct RDMA communication is blacklisted for this GPU.
Definition at line 665 of file comm_common.cpp.
References comm_barrier(), comm_gpuid(), comm_rank(), errorQuda, getVerbosity(), and QUDA_SILENT.
Referenced by comm_peer2peer_init(), and quda::dslash::DslashFactory< Dslash >::create().
bool comm_gdr_enabled | ( | ) |
Query if GPU Direct RDMA communication is enabled (global setting)
Definition at line 649 of file comm_common.cpp.
Referenced by comm_config_string(), comm_peer2peer_init(), quda::cudaGaugeField::commsComplete(), quda::cudaColorSpinorField::commsQuery(), quda::cudaColorSpinorField::commsWait(), quda::LatticeField::createComms(), quda::DslashCoarsePolicyTune::DslashCoarsePolicyTune(), quda::dslash::DslashPolicyTune< Dslash >::DslashPolicyTune(), quda::cudaGaugeField::exchangeExtendedGhost(), quda::cudaGaugeField::exchangeGhost(), quda::cudaColorSpinorField::exchangeGhost(), quda::cudaGaugeField::injectGhost(), quda::cudaGaugeField::recvStart(), quda::cudaColorSpinorField::recvStart(), quda::cudaGaugeField::sendStart(), and quda::cudaColorSpinorField::sendStart().
int comm_gpuid | ( | void | ) |
Definition at line 146 of file comm_common.cpp.
References gpuid.
Referenced by comm_gather_gpuid(), comm_gdr_blacklist(), comm_peer2peer_init(), quda::dslash::DslashPolicyTune< Dslash >::DslashPolicyTune(), and initQudaDevice().
char* comm_hostname | ( | void | ) |
Definition at line 58 of file comm_common.cpp.
Referenced by comm_gather_hostname(), comm_init_common(), and comm_peer2peer_init().
void comm_init_common | ( | int | ndim, |
const int * | dims, | ||
QudaCommsMap | rank_from_coords, | ||
void * | map_data | ||
) |
Initialize the communications common to all communications abstractions.
Definition at line 700 of file comm_common.cpp.
References comm_broadcast(), comm_create_topology(), comm_dim(), comm_dim_partitioned(), comm_gather_hostname(), comm_hostname(), comm_peer2peer_init(), comm_rank(), comm_set_default_topology(), comm_size(), deterministic_reduce, device, errorQuda, gpuid, host_free, partition_string, safe_malloc, and topology_string.
Referenced by comm_init().
bool comm_intranode_enabled | ( | int | dir, |
int | dim | ||
) |
Query if intra-node (non-peer-to-peer) communication is enabled in a given dimension and direction
dir | Direction (0 - backwards, 1 forwards) |
dim | Dimension (0-3) |
Definition at line 314 of file comm_common.cpp.
References enable_intranode, and intranode_enabled.
int comm_ndim | ( | const Topology * | topo | ) |
Definition at line 322 of file comm_common.cpp.
References Topology_s::ndim.
Referenced by comm_declare_receive_displaced(), comm_declare_send_displaced(), comm_declare_strided_receive_displaced(), and comm_declare_strided_send_displaced().
int comm_neighbor_rank | ( | int | dir, |
int | dim | ||
) |
Definition at line 416 of file comm_common.cpp.
References comm_set_neighbor_ranks(), neighbor_rank, and neighbors_cached.
Referenced by comm_peer2peer_init().
int comm_partitioned | ( | ) |
Loop over comm_dim_partitioned(dim) for all comms dimensions.
Definition at line 640 of file comm_common.cpp.
References comm_dim_partitioned().
Referenced by quda::DslashCoarseLaunch::operator()().
bool comm_peer2peer_enabled | ( | int | dir, |
int | dim | ||
) |
Query if peer-to-peer communication is enabled
dir | Direction (0 - backwards, 1 forwards) |
dim | Dimension (0-3) |
Definition at line 285 of file comm_common.cpp.
References enable_p2p, and peer2peer_enabled.
Referenced by comm_peer2peer_enabled_global(), quda::dslash::commsComplete(), quda::cudaGaugeField::commsComplete(), quda::cudaColorSpinorField::commsQuery(), quda::cudaColorSpinorField::commsWait(), quda::dslash::completeDslash(), quda::LatticeField::createIPCComms(), quda::LatticeField::destroyIPCComms(), quda::cudaGaugeField::exchangeExtendedGhost(), quda::cudaGaugeField::exchangeGhost(), quda::cudaColorSpinorField::exchangeGhost(), quda::cudaColorSpinorField::gather(), quda::dslash::getStreamIndex(), quda::cudaGaugeField::injectGhost(), quda::dslash::issueGather(), quda::dslash::issuePack(), quda::dslash::DslashBasic< Dslash >::operator()(), quda::dslash::DslashFusedExterior< Dslash >::operator()(), quda::dslash::DslashGDR< Dslash >::operator()(), quda::dslash::DslashFusedGDR< Dslash >::operator()(), quda::dslash::DslashGDRRecv< Dslash >::operator()(), quda::dslash::DslashFusedGDRRecv< Dslash >::operator()(), quda::dslash::DslashZeroCopyPack< Dslash >::operator()(), quda::dslash::DslashFusedZeroCopyPack< Dslash >::operator()(), quda::dslash::DslashZeroCopyPackGDRRecv< Dslash >::operator()(), quda::dslash::DslashFusedZeroCopyPackGDRRecv< Dslash >::operator()(), quda::dslash::DslashZeroCopy< Dslash >::operator()(), quda::dslash::DslashFusedZeroCopy< Dslash >::operator()(), quda::cudaGaugeField::recvStart(), quda::cudaColorSpinorField::recvStart(), quda::cudaColorSpinorField::scatter(), quda::cudaGaugeField::sendStart(), quda::cudaColorSpinorField::sendStart(), quda::Dslash< Float >::setParam(), and DslashCuda::setParam().
int comm_peer2peer_enabled_global | ( | ) |
Query what peer-to-peer communication is enabled globally
Definition at line 289 of file comm_common.cpp.
References comm_allreduce_int(), comm_peer2peer_enabled(), enable_p2p, enable_peer_to_peer, and quda::cublas::init().
Referenced by quda::dslash::DslashPolicyTune< Dslash >::apply(), comm_config_string(), comm_peer2peer_init(), quda::dslash::DslashPolicyTune< Dslash >::DslashPolicyTune(), quda::cudaColorSpinorField::exchangeGhost(), quda::Pack< Float, nColor, spin_project >::fillAux(), and quda::dslash::setMappedGhost().
void comm_peer2peer_init | ( | const char * | hostname_recv_buf | ) |
Enabled peer-to-peer communication.
hostname_buf | Array that holds all process hostnames |
Definition at line 163 of file comm_common.cpp.
References quda::abs(), checkCudaErrorNoSync, comm_barrier(), comm_dim(), comm_gather_gpuid(), comm_gdr_blacklist(), comm_gdr_enabled(), comm_gpuid(), comm_hostname(), comm_neighbor_rank(), comm_peer2peer_enabled_global(), comm_rank(), comm_set_neighbor_ranks(), comm_size(), enable_peer_to_peer, errorQuda, getVerbosity(), gpuid, host_free, intranode_enabled, neighbor_rank, peer2peer_enabled, peer2peer_init, peer2peer_present, printfQuda, QUDA_SILENT, and safe_malloc.
Referenced by comm_init_common().
bool comm_peer2peer_present | ( | ) |
Returns true if any peer-to-peer capability is present on this system (regardless of whether it has been disabled or not. We use this, for example, to determine if we need to allocate pinned device memory or not.
Definition at line 281 of file comm_common.cpp.
References peer2peer_present.
Referenced by quda::device_pinned_free_(), and quda::device_pinned_malloc_().
int comm_rank_displaced | ( | const Topology * | topo, |
const int | displacement[] | ||
) |
Definition at line 357 of file comm_common.cpp.
References comm_coords(), comm_dims(), comm_rank_from_coords(), Topology_s::coords, mod(), Topology_s::ndim, and QUDA_MAX_DIM.
Referenced by comm_declare_receive_displaced(), comm_declare_send_displaced(), comm_declare_strided_receive_displaced(), comm_declare_strided_send_displaced(), and comm_set_neighbor_ranks().
int comm_rank_from_coords | ( | const Topology * | topo, |
const int * | coords | ||
) |
Definition at line 346 of file comm_common.cpp.
References Topology_s::dims, index(), Topology_s::ndim, and Topology_s::ranks.
Referenced by comm_rank_displaced().
void comm_set_default_topology | ( | Topology * | topo | ) |
Definition at line 375 of file comm_common.cpp.
Referenced by comm_finalize(), and comm_init_common().
void comm_set_neighbor_ranks | ( | Topology * | topo | ) |
Definition at line 394 of file comm_common.cpp.
References comm_rank_displaced(), default_topo, errorQuda, neighbor_rank, neighbors_cached, and QUDA_MAX_DIM.
Referenced by comm_neighbor_rank(), and comm_peer2peer_init().
bool commAsyncReduction | ( | ) |
Definition at line 825 of file comm_common.cpp.
References asyncReduce.
Referenced by quda::blas::caxpyXmazMR(), quda::blas::multiReduceLaunch(), quda::ReduceArg< vector_type< ReduceType, NXZ > >::ReduceArg(), and quda::blas::reduceLaunch().
void commAsyncReductionSet | ( | bool | async_reduction | ) |
Definition at line 827 of file comm_common.cpp.
References asyncReduce.
Referenced by quda::MR::operator()().
int commCoords | ( | int | dir | ) |
Definition at line 813 of file comm_common.cpp.
References comm_coord().
Referenced by last_node_in_t(), and quda::Solver::Solver().
int commDim | ( | int | dir | ) |
Definition at line 811 of file comm_common.cpp.
References comm_dim().
int commDimPartitioned | ( | int | dir | ) |
Definition at line 815 of file comm_common.cpp.
References comm_dim_partitioned().
Referenced by quda::cudaColorSpinorField::commsQuery(), quda::cudaColorSpinorField::commsWait(), createCloverQuda(), quda::LatticeField::createComms(), quda::cudaColorSpinorField::createComms(), exchange_cpu_sitelink_ex(), exchange_sitelink(), exchange_sitelink_diag(), initQudaMemory(), loadGaugeQuda(), quda::cudaColorSpinorField::recvStart(), quda::cudaColorSpinorField::scatter(), quda::cudaColorSpinorField::scatterExtended(), quda::cudaColorSpinorField::sendStart(), quda::shiftColorSpinorField(), quda::ShiftColorSpinorFieldArg< Output, Input >::ShiftColorSpinorFieldArg(), and updateR().
void commDimPartitionedReset | ( | ) |
Reset the comm dim partioned array to zero,.
This should only be needed for automated testing when different partitioning is applied within a single run.
Definition at line 819 of file comm_common.cpp.
References comm_dim_partitioned_reset().
Referenced by end().
void commDimPartitionedSet | ( | int | dir | ) |
Definition at line 817 of file comm_common.cpp.
References comm_dim_partitioned_set().
Referenced by process_command_line_option(), StaggeredDslashTest::SetUp(), and DslashTest::SetUp().
bool commGlobalReduction | ( | ) |
Definition at line 821 of file comm_common.cpp.
References globalReduce.
Referenced by quda::tuneLaunch().
void commGlobalReductionSet | ( | bool | global_reduction | ) |
Definition at line 823 of file comm_common.cpp.
References globalReduce.
Referenced by quda::IncEigCG::eigCGsolve(), quda::PreconCG::operator()(), quda::MR::operator()(), and quda::SD::operator()().
|
inlinestatic |
Utility function for indexing into Topology::ranks[]
ndim | Number of grid dimensions in the network topology |
dims | Array of grid dimensions |
x | Node coordinates |
Definition at line 32 of file comm_common.cpp.
References Topology_s::ndim.
Referenced by applyGaugeFieldScaling_long(), quda::cloverDerivativeKernel(), comm_create_topology(), comm_rank_from_coords(), createGaugeForcePaths(), get_coords(), quda::dslash::getStreamIndex(), quda::ghostFaceIndex(), quda::ghostFaceIndexStaggered(), quda::IndexBlock(), quda::gauge::indexFloatN(), link_sanity_check_internal_12(), link_sanity_check_internal_8(), MPI_Wait(), neighborIndexFullLattice(), quda::Matrix< T, N >::operator()(), quda::HMatrix< T, N >::operator()(), quda::gauge::Accessor< Float, nColor, QUDA_FLOAT2_GAUGE_ORDER, storeFloat, use_tex >::operator()(), packGhostAllLinks(), packGhostAllStaples(), site_link_sanity_check_internal_12(), vget_M(), vput_M(), and vset_M().
|
inline |
Definition at line 437 of file comm_common.cpp.
References errorQuda.
Referenced by comm_declare_receive_relative_(), comm_declare_send_relative_(), comm_declare_strided_receive_relative_(), and comm_declare_strided_send_relative_().
|
inlinestatic |
Definition at line 352 of file comm_common.cpp.
Referenced by comm_rank_displaced(), and quda::polarSu3().
void reduceDouble | ( | double & | sum | ) |
Definition at line 806 of file comm_common.cpp.
References comm_allreduce(), and globalReduce.
Referenced by quda::SolverParam::updateInvertParam().
void reduceDoubleArray | ( | double * | sum, |
const int | len | ||
) |
Definition at line 808 of file comm_common.cpp.
References comm_allreduce_array(), and globalReduce.
Referenced by quda::blas::cDotProduct(), quda::blas::cDotProductCopy(), quda::blas::hDotProduct(), quda::blas::hDotProduct_Anorm(), quda::blas::mixed_reduce(), quda::blas::reDotProduct(), and quda::blas::uni_reduce().
void reduceMaxDouble | ( | double & | max | ) |
Definition at line 804 of file comm_common.cpp.
References comm_allreduce_max().
|
static |
Definition at line 802 of file comm_common.cpp.
Referenced by commAsyncReduction(), and commAsyncReductionSet().
Topology* default_topo = NULL |
Definition at line 373 of file comm_common.cpp.
Referenced by comm_default_topology(), and comm_set_neighbor_ranks().
|
static |
Definition at line 698 of file comm_common.cpp.
Referenced by comm_deterministic_reduce(), and comm_init_common().
|
static |
Definition at line 312 of file comm_common.cpp.
Referenced by comm_enable_intranode(), and comm_intranode_enabled().
|
static |
Definition at line 283 of file comm_common.cpp.
Referenced by comm_enable_peer2peer(), comm_peer2peer_enabled(), and comm_peer2peer_enabled_global().
|
static |
by default enable both copy engines and load/store access
Definition at line 160 of file comm_common.cpp.
Referenced by comm_peer2peer_enabled_global(), and comm_peer2peer_init().
|
static |
Definition at line 801 of file comm_common.cpp.
Referenced by commGlobalReduction(), commGlobalReductionSet(), reduceDouble(), and reduceDoubleArray().
|
static |
Definition at line 144 of file comm_common.cpp.
Referenced by comm_gather_gpuid(), comm_gpuid(), comm_init_common(), and comm_peer2peer_init().
|
static |
Definition at line 152 of file comm_common.cpp.
Referenced by comm_intranode_enabled(), and comm_peer2peer_init().
|
static |
string that contains any overridden partitioning
Definition at line 616 of file comm_common.cpp.
Referenced by comm_dim_partitioned(), comm_dim_partitioned_reset(), and comm_dim_partitioned_set().
|
static |
Definition at line 389 of file comm_common.cpp.
Referenced by comm_neighbor_rank(), comm_peer2peer_init(), and comm_set_neighbor_ranks().
|
static |
Definition at line 392 of file comm_common.cpp.
Referenced by comm_neighbor_rank(), and comm_set_neighbor_ranks().
|
static |
string that contains the job topology
Definition at line 615 of file comm_common.cpp.
Referenced by comm_dim_partitioned_string().
|
static |
Definition at line 613 of file comm_common.cpp.
Referenced by comm_dim_partitioned_reset(), comm_dim_partitioned_set(), comm_dim_partitioned_string(), and comm_init_common().
|
static |
Definition at line 148 of file comm_common.cpp.
Referenced by comm_peer2peer_enabled(), and comm_peer2peer_init().
|
static |
Definition at line 150 of file comm_common.cpp.
Referenced by comm_peer2peer_init().
|
static |
this records whether there is any peer-2-peer capability (regardless whether it is enabled or not)
Definition at line 157 of file comm_common.cpp.
Referenced by comm_peer2peer_init(), and comm_peer2peer_present().
|
static |
Definition at line 73 of file comm_common.cpp.
Referenced by comm_create_topology(), and comm_drand().
|
static |
string that contains the job partitioning
Definition at line 614 of file comm_common.cpp.
Referenced by comm_dim_topology_string(), and comm_init_common().