1#ifndef included_AMP_GPUFunctionTable
2#define included_AMP_GPUFunctionTable
5#include "AMP/utils/ArraySize.h"
20class GPUFunctionTable final
33 static void rand(
size_t N, TYPE *x );
44 template<
typename LAMBDA>
45 static TYPE
reduce( LAMBDA &op,
size_t N,
const TYPE *A, TYPE initialValue )
60 template<
typename LAMBDA>
61 static TYPE
reduce( LAMBDA &op,
size_t N,
const TYPE *A,
const TYPE *B, TYPE initialValue )
74 template<
typename LAMBDA>
75 static void transform( LAMBDA &fun,
size_t N,
const TYPE *x, TYPE *y )
89 template<
typename LAMBDA>
90 static void transform( LAMBDA &fun,
size_t N,
const TYPE *x,
const TYPE *y, TYPE *z )
100 static TYPE
min(
size_t N,
const TYPE *x );
107 static TYPE
max(
size_t N,
const TYPE *x );
114 static TYPE
sum(
size_t N,
const TYPE *x );
138 static void scale(
size_t N, TYPE x, TYPE *y );
146 static void px(
size_t N, TYPE x, TYPE *y );
154 static void px(
size_t N,
const TYPE *x, TYPE *y );
162 static void mx(
size_t N, TYPE x, TYPE *y );
170 static void mx(
size_t N,
const TYPE *x, TYPE *y );
179 static void axpy( TYPE alpha,
size_t N,
const TYPE *x, TYPE *y );
189 static void axpby( TYPE alpha,
size_t N,
const TYPE *x, TYPE beta, TYPE *y );
198 static bool equals(
size_t N,
const TYPE *A,
const TYPE *B, TYPE tol );
Simple class to store the array dimensions.
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)
GPUFunctionTable()=delete
#define AMP_ERROR(MSG)
Throw error.