Client software developers do not interact directly with the contents of gmx::detail, but some declarations and definitions are necessary in the public headers, such as forward declarations of implementation classes and definitions of custom deleters.
|
|
template<std::size_t alignment> |
| bool | is_sufficiently_aligned (const void *ptr) |
| |
| void | mtopFromMolType (gmx_mtop_t *mtop, const gmx_moltype_t &sourceMolType) |
| | Create a topology from a molecule type. More...
|
| |
| template<typename T > |
| Index | computePaddedSize (Index numElements) |
| | Returns the allocation size for PaddedVector that contains numElements elements plus padding for SIMD operations. More...
|
| |
|
template<typename T , typename AllocatorType > |
| void | insertPaddingElements (std::vector< T, AllocatorType > *v, Index newPaddedSize) |
| | Helper function to insert padding elements for most T.
|
| |
|
template<typename T , typename AllocatorType > |
| void | insertPaddingElements (std::vector< BasicVector< T >, AllocatorType > *v, Index newPaddedSize) |
| | Specialization of helper function to insert padding elements, used for BasicVector<T>.
|
| |
| static void | coordinateMpiRanks (MPI_Comm communicator, const bool thisRankThrew, const std::exception_ptr exceptionPtr) |
| | If any rank threw, make sure all throw. More...
|
| |
|
|
constexpr double | c_largeNegativeExponent = -10000.0 |
| | A value that can be passed to exp() with result 0, also with SIMD.
|
| |
|
constexpr double | c_largePositiveExponent = 700.0 |
| | The largest acceptable positive exponent for variables that are passed to exp().
|
| |
|
template<typename T > |
| constexpr bool | is_resizable_v = is_resizable<T>::value |
| | Type has a resize member function callable with size_t argument.
|
| |
|
constexpr int | c_nbnxnGpuClusterSize = 8 |
| | The i- and j-cluster size for GPU lists, 8 atoms for CUDA, set at configure time for OpenCL and SYCL.
|
| |
| static constexpr int | c_nbnxnGpuClusterpairSplit = 2 |
| | The number of sub-parts used for data storage for a GPU cluster pair. More...
|
| |
|
constexpr int | c_nBoxZ = 2 * gmx::c_dBoxZ + 1 |
| |
|
constexpr int | c_nBoxY = 2 * gmx::c_dBoxY + 1 |
| |
|
constexpr int | c_nBoxX = 2 * gmx::c_dBoxX + 1 |
| |
|
constexpr int | c_numIvecs = detail::c_nBoxZ * detail::c_nBoxY * detail::c_nBoxX |
| |
|
constexpr int | c_TabulatedNormalDistributionDefaultBits = 14 |
| | Number of bits that determines the resolution of the lookup table for the normal distribution.
|
| |
|
| constexpr int | c_gpuNumClusterPerCellZ = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_Z |
| | The number of clusters along a direction in a pair-search grid cell for GPU lists. More...
|
| |
|
constexpr int | c_gpuNumClusterPerCellY = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_Y |
| |
|
constexpr int | c_gpuNumClusterPerCellX = GMX_GPU_NB_NUM_CLUSTER_PER_CELL_X |
| |
| static void gmx::detail::coordinateMpiRanks |
( |
MPI_Comm |
communicator, |
|
|
const bool |
thisRankThrew, |
|
|
const std::exception_ptr |
exceptionPtr |
|
) |
| |
|
static |
If any rank threw, make sure all throw.
Any rank that threw an exception will re-throw it. If so, any other rank will throw ParallelConsistencyError. Otherwise, does not throw.
Does global MPI communication on communicator.
- Parameters
-
| [in] | communicator | The MPI communicator over which exception-throwing behaviour should be coordinated. Can be MPI_COMM_NULL only for thread-MPI before rank launch. |
| [in] | thisRankThrew | Describes whether the current MPI rank threw an exception |
| [in] | exceptionPtr | If the current MPI rank threw an exception, points to that exception, otherwise nullptr. |
| constexpr int gmx::detail::c_nbnxnGpuClusterpairSplit = 2 |
|
static |
The number of sub-parts used for data storage for a GPU cluster pair.
In CUDA the number of threads in a warp is 32 and we have cluster pairs of 8*8=64 atoms, so it's convenient to store data for cluster pair halves, i.e. split in 2.
On architectures with 64-wide execution however it is better to avoid splitting (e.g. AMD GCN, CDNA and later).