Eigen-unsupported
3.3.7
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
TensorSycl.h
1
// This file is part of Eigen, a lightweight C++ template library
2
// for linear algebra.
3
//
4
// Mehdi Goli Codeplay Software Ltd.
5
// Ralph Potter Codeplay Software Ltd.
6
// Luke Iwanski Codeplay Software Ltd.
7
// Contact: eigen@codeplay.com
8
//
9
// This Source Code Form is subject to the terms of the Mozilla
10
// Public License v. 2.0. If a copy of the MPL was not distributed
11
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
13
// General include header of SYCL target for Tensor Module
14
#ifndef UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_H
15
#define UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_H
16
17
#ifdef EIGEN_USE_SYCL
18
19
// global pointer to set different attribute state for a class
20
template
<
class
T>
21
struct
MakeGlobalPointer {
22
typedef
typename
cl::sycl::global_ptr<T>::pointer_t Type;
23
};
24
25
// global pointer to set different attribute state for a class
26
template
<
class
T>
27
struct
MakeLocalPointer {
28
typedef
typename
cl::sycl::local_ptr<T>::pointer_t Type;
29
};
30
31
32
namespace
Eigen {
33
namespace
TensorSycl {
34
namespace
internal {
35
37
struct
NoOP;
38
39
template
<
bool
IsConst,
typename
T>
struct
GetType{
40
typedef
const
T Type;
41
};
42
template
<
typename
T>
struct
GetType<false, T>{
43
typedef
T Type;
44
};
45
46
}
47
}
48
}
49
50
// tuple construction
51
#include "TensorSyclTuple.h"
52
53
// counting number of leaf at compile time
54
#include "TensorSyclLeafCount.h"
55
56
// The index PlaceHolder takes the actual expression and replaces the actual
57
// data on it with the place holder. It uses the same pre-order expression tree
58
// traverse as the leaf count in order to give the right access number to each
59
// node in the expression
60
#include "TensorSyclPlaceHolderExpr.h"
61
62
// creation of an accessor tuple from a tuple of SYCL buffers
63
#include "TensorSyclExtractAccessor.h"
64
65
// this is used to change the address space type in tensor map for GPU
66
#include "TensorSyclConvertToDeviceExpression.h"
67
68
// this is used to extract the functors
69
#include "TensorSyclExtractFunctors.h"
70
71
// this is used to create tensormap on the device
72
// this is used to construct the expression on the device
73
#include "TensorSyclExprConstructor.h"
74
76
#include "TensorReductionSycl.h"
77
78
// kernel execution using fusion
79
#include "TensorSyclRun.h"
80
81
#endif // end of EIGEN_USE_SYCL
82
#endif // UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_H
unsupported
Eigen
CXX11
src
Tensor
TensorSycl.h
Generated on Fri Jun 26 2020 02:30:39 for Eigen-unsupported by
1.8.5