Advanced Multi-Physics (AMP)
On-Line Documentation
GPUFunctionTable.h
Go to the documentation of this file.
1#ifndef included_AMP_GPUFunctionTable
2#define included_AMP_GPUFunctionTable
3
4
5#include "AMP/utils/ArraySize.h"
6
7#include <memory>
8
9
10namespace AMP {
11
12
19template<class TYPE>
20class GPUFunctionTable final
21{
22public:
23 typedef TYPE value_type;
24 template<class TYPE2>
26
27public:
33 static void rand( size_t N, TYPE *x );
34
44 template<typename LAMBDA>
45 static TYPE reduce( LAMBDA &op, size_t N, const TYPE *A, TYPE initialValue )
46 {
47 AMP_ERROR( "Not implemented for GPU" );
48 }
49
60 template<typename LAMBDA>
61 static TYPE reduce( LAMBDA &op, size_t N, const TYPE *A, const TYPE *B, TYPE initialValue )
62 {
63 AMP_ERROR( "Not implemented for GPU" );
64 }
65
74 template<typename LAMBDA>
75 static void transform( LAMBDA &fun, size_t N, const TYPE *x, TYPE *y )
76 {
77 AMP_ERROR( "Not implemented for GPU" );
78 }
79
89 template<typename LAMBDA>
90 static void transform( LAMBDA &fun, size_t N, const TYPE *x, const TYPE *y, TYPE *z )
91 {
92 AMP_ERROR( "Not implemented for GPU" );
93 }
94
100 static TYPE min( size_t N, const TYPE *x );
101
107 static TYPE max( size_t N, const TYPE *x );
108
114 static TYPE sum( size_t N, const TYPE *x );
115
125 static void multiply( const ArraySize &sa,
126 const TYPE *a,
127 const ArraySize &sb,
128 const TYPE *b,
129 const ArraySize &sc,
130 TYPE *c );
131
138 static void scale( size_t N, TYPE x, TYPE *y );
139
146 static void px( size_t N, TYPE x, TYPE *y );
147
154 static void px( size_t N, const TYPE *x, TYPE *y );
155
162 static void mx( size_t N, TYPE x, TYPE *y );
163
170 static void mx( size_t N, const TYPE *x, TYPE *y );
171
179 static void axpy( TYPE alpha, size_t N, const TYPE *x, TYPE *y );
180
189 static void axpby( TYPE alpha, size_t N, const TYPE *x, TYPE beta, TYPE *y );
190
198 static bool equals( size_t N, const TYPE *A, const TYPE *B, TYPE tol );
199
200
201 /* Specialized Functions */
202
209 static void transformReLU( size_t N, const TYPE *A, TYPE *B );
210
217 static void transformAbs( size_t N, const TYPE *A, TYPE *B );
218
225 static void transformTanh( size_t N, const TYPE *A, TYPE *B );
226
233 static void transformHardTanh( size_t N, const TYPE *A, TYPE *B );
234
241 static void transformSigmoid( size_t N, const TYPE *A, TYPE *B );
242
249 static void transformSoftPlus( size_t N, const TYPE *A, TYPE *B );
250
251private:
253};
254} // namespace AMP
255
256
257#endif
Simple class to store the array dimensions.
Definition ArraySize.h:138
static void transformSigmoid(size_t N, const TYPE *A, TYPE *B)
static void mx(size_t N, const TYPE *x, TYPE *y)
static void axpy(TYPE alpha, size_t N, const TYPE *x, TYPE *y)
static TYPE reduce(LAMBDA &op, size_t N, const TYPE *A, TYPE initialValue)
static void transformAbs(size_t N, const TYPE *A, TYPE *B)
static void transformSoftPlus(size_t N, const TYPE *A, TYPE *B)
static void transform(LAMBDA &fun, size_t N, const TYPE *x, const TYPE *y, TYPE *z)
static TYPE sum(size_t N, const TYPE *x)
static void transformTanh(size_t N, const TYPE *A, TYPE *B)
static TYPE max(size_t N, const TYPE *x)
static void transformHardTanh(size_t N, const TYPE *A, TYPE *B)
static void transformReLU(size_t N, const TYPE *A, TYPE *B)
static void transform(LAMBDA &fun, size_t N, const TYPE *x, TYPE *y)
static void mx(size_t N, TYPE x, TYPE *y)
static void px(size_t N, const TYPE *x, TYPE *y)
static void rand(size_t N, TYPE *x)
static TYPE reduce(LAMBDA &op, size_t N, const TYPE *A, const TYPE *B, TYPE initialValue)
static void scale(size_t N, TYPE x, TYPE *y)
static bool equals(size_t N, const TYPE *A, const TYPE *B, TYPE tol)
static void axpby(TYPE alpha, size_t N, const TYPE *x, TYPE beta, TYPE *y)
static void px(size_t N, TYPE x, TYPE *y)
static TYPE min(size_t N, const TYPE *x)
static void multiply(const ArraySize &sa, const TYPE *a, const ArraySize &sb, const TYPE *b, const ArraySize &sc, TYPE *c)
#define AMP_ERROR(MSG)
Throw error.



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page