alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
RandPhiloxStateless.hpp
Go to the documentation of this file.
1/* Copyright 2022 Jeffrey Kelling
2 * SPDX-License-Identifier: MPL-2.0
3 */
4
5#pragma once
6
9
10namespace alpaka::rand
11{
12 /** Most common Philox engine variant, stateless, outputs a 4-vector of floats
13 *
14 * This is a variant of the Philox engine generator which outputs a vector containing 4 floats. The counter
15 * size is \f$4 \times 32 = 128\f$ bits. Since the engine returns the whole generated vector, it is up to the
16 * user to extract individual floats as they need. The benefit is smaller state size since the state does not
17 * contain the intermediate results. The total size of the state is 192 bits = 24 bytes.
18 *
19 * Ref.: J. K. Salmon, M. A. Moraes, R. O. Dror and D. E. Shaw, "Parallel random numbers: As easy as 1, 2, 3,"
20 * SC '11: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and
21 * Analysis, 2011, pp. 1-12, doi: 10.1145/2063384.2063405.
22 */
24 : public alpaka::rand::engine::PhiloxStateless<engine::PhiloxParams<4, 32, 10>>
25 , public interface::Implements<ConceptRand, PhiloxStateless4x32x10Vector>
26 {
27 public:
29 };
30} // namespace alpaka::rand
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
Definition Interface.hpp:15