STORMM Source Documentation
Loading...
Searching...
No Matches
hpc_random.h
1// -*-c++-*-
2#ifndef STORMM_HPC_RANDOM_H
3#define STORMM_HPC_RANDOM_H
4
5#include "copyright.h"
6#include "Accelerator/gpu_details.h"
7#include "Accelerator/hybrid.h"
8#include "DataTypes/stormm_vector_types.h"
9#include "Random/random.h"
10
11namespace stormm {
12namespace random {
13
14using card::GpuDetails;
15using card::Hybrid;
16
27void initXoroshiro128pArray(Hybrid<ullint2> *state_vector, int igseed, int scrub_cycles,
28 const GpuDetails &gpu);
29
42void initXoshiro256ppArray(Hybrid<ullint2> *state_xy, Hybrid<ullint2> *state_zw, int igseed,
43 int scrub_cycles, const GpuDetails &gpu);
44
69void fillRandomCache(ullint2* state_xy, ullint2* state_zw, double* cache, size_t length,
70 size_t depth, RandomAlgorithm method, RandomNumberKind product,
71 size_t index_start, size_t index_end, const GpuDetails &gpu);
72
73void fillRandomCache(Hybrid<ullint2> *state_xy, Hybrid<ullint2> *state_zw, Hybrid<double> *cache,
74 size_t length, size_t depth, RandomAlgorithm method, RandomNumberKind product,
75 size_t index_start, size_t index_end, const GpuDetails &gpu);
76
77void fillRandomCache(ullint2* state_xy, ullint2* state_zw, float* cache, size_t length,
78 size_t depth, RandomAlgorithm method, RandomNumberKind product,
79 size_t index_start, size_t index_end, const GpuDetails &gpu);
80
81void fillRandomCache(Hybrid<ullint2> *state_xy, Hybrid<ullint2> *state_zw, Hybrid<float> *cache,
82 size_t length, size_t depth, RandomAlgorithm method, RandomNumberKind product,
83 size_t index_start, size_t index_end, const GpuDetails &gpu);
85
86} // namespace random
87} // namespace stormm
88
89#endif
Pertinent aspects of one particular GPU. Condensing the data for each GPU in this manner helps to ens...
Definition gpu_details.h:27
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202