Loading...
Searching...
No Matches
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
20template <class T>
21struct 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
26template <class T>
27struct MakeLocalPointer {
28 typedef typename cl::sycl::local_ptr<T>::pointer_t Type;
29};
30
31
32namespace Eigen {
33namespace TensorSycl {
34namespace internal {
35
37 struct NoOP;
38
39template<bool IsConst, typename T> struct GetType{
40 typedef const T Type;
41};
42template<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
Namespace containing all symbols from the Eigen library.
Definition: AdolcForward:45