mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
[SYCL] This PR adds the minimum modifications to the Eigen unsupported module required to run it on devices supporting SYCL.
* Abstracting the pointer type so that both SYCL memory and pointer can be captured. * Converting SYCL virtual pointer to SYCL device memory in Eigen evaluator class. * Binding SYCL placeholder accessor to command group handler by using bind method in Eigen evaluator node. * Adding SYCL macro for controlling loop unrolling. * Modifying the TensorDeviceSycl.h and SYCL executor method to adopt the above changes.
This commit is contained in:
@@ -89,7 +89,10 @@ struct traits<TensorCwiseUnaryOp<UnaryOp, XprType> >
|
||||
typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
|
||||
static const int NumDimensions = XprTraits::NumDimensions;
|
||||
static const int Layout = XprTraits::Layout;
|
||||
typedef typename TypeConversion<Scalar, typename XprTraits::PointerType>::type PointerType;
|
||||
typedef typename TypeConversion<Scalar,
|
||||
typename XprTraits::PointerType
|
||||
>::type
|
||||
PointerType;
|
||||
};
|
||||
|
||||
template<typename UnaryOp, typename XprType>
|
||||
@@ -164,9 +167,10 @@ struct traits<TensorCwiseBinaryOp<BinaryOp, LhsXprType, RhsXprType> >
|
||||
static const int Layout = XprTraits::Layout;
|
||||
typedef typename TypeConversion<Scalar,
|
||||
typename conditional<Pointer_type_promotion<typename LhsXprType::Scalar, Scalar>::val,
|
||||
typename traits<LhsXprType>::PointerType,
|
||||
typename traits<RhsXprType>::PointerType>::type
|
||||
>::type PointerType;
|
||||
typename traits<LhsXprType>::PointerType,
|
||||
typename traits<RhsXprType>::PointerType>::type
|
||||
>::type
|
||||
PointerType;
|
||||
enum {
|
||||
Flags = 0
|
||||
};
|
||||
@@ -245,9 +249,10 @@ struct traits<TensorCwiseTernaryOp<TernaryOp, Arg1XprType, Arg2XprType, Arg3XprT
|
||||
static const int Layout = XprTraits::Layout;
|
||||
typedef typename TypeConversion<Scalar,
|
||||
typename conditional<Pointer_type_promotion<typename Arg2XprType::Scalar, Scalar>::val,
|
||||
typename traits<Arg2XprType>::PointerType,
|
||||
typename traits<Arg3XprType>::PointerType>::type
|
||||
>::type PointerType;
|
||||
typename traits<Arg2XprType>::PointerType,
|
||||
typename traits<Arg3XprType>::PointerType>::type
|
||||
>::type
|
||||
PointerType;
|
||||
enum {
|
||||
Flags = 0
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user