1 #ifndef PARALUTION_MIC_VECTOR_HPP_
2 #define PARALUTION_MIC_VECTOR_HPP_
4 #include "../base_vector.hpp"
5 #include "../base_matrix.hpp"
6 #include "../backend_manager.hpp"
7 #include "../../utils/log.hpp"
12 template <
typename ValueType>
13 class MICAcceleratorVector :
public AcceleratorVector<ValueType> {
21 virtual void info(
void)
const;
24 virtual void SetDataPtr(ValueType **ptr,
const int size);
26 virtual void Clear(
void);
27 virtual void Zeros(
void);
28 virtual void Ones(
void);
29 virtual void SetValues(
const ValueType val);
31 virtual void CopyFrom(
const BaseVector<ValueType> &src) ;
32 virtual void CopyFrom(
const BaseVector<ValueType> &src,
38 virtual void CopyTo(BaseVector<ValueType> *dst)
const;
44 const BaseVector<int> &permutation);
46 const BaseVector<int> &permutation);
48 virtual void Permute(
const BaseVector<int> &permutation);
53 virtual void AddScale(
const BaseVector<ValueType> &
x,
const ValueType alpha);
55 virtual void ScaleAdd(
const ValueType alpha,
const BaseVector<ValueType> &
x);
57 virtual void ScaleAddScale(
const ValueType alpha,
const BaseVector<ValueType> &
x,
const ValueType beta);
58 virtual void ScaleAddScale(
const ValueType alpha,
const BaseVector<ValueType> &
x,
const ValueType beta,
59 const int src_offset,
const int dst_offset,
const int size);
61 virtual void ScaleAdd2(
const ValueType alpha,
const BaseVector<ValueType> &
x,
const ValueType beta,
const BaseVector<ValueType> &
y,
const ValueType gamma) ;
63 virtual void Scale(
const ValueType alpha);
65 virtual void PartialSum(
const BaseVector<ValueType> &
x);
67 virtual ValueType
Dot(
const BaseVector<ValueType> &
x)
const;
69 virtual ValueType
DotNonConj(
const BaseVector<ValueType> &
x)
const;
71 virtual ValueType
Norm(
void)
const;
73 virtual ValueType
Reduce(
void)
const;
75 virtual ValueType
Asum(
void)
const;
77 virtual int Amax(ValueType &value)
const;
80 virtual void PointWiseMult(
const BaseVector<ValueType> &
x,
const BaseVector<ValueType> &
y);
117 #endif // PARALUTION_BASE_VECTOR_HPP_
virtual void ScaleAdd2(const ValueType alpha, const BaseVector< ValueType > &x, const ValueType beta, const BaseVector< ValueType > &y, const ValueType gamma)
Perform vector update of type this = alpha*this + x*beta + y*gamma.
Definition: mic_vector.cpp:399
virtual void Power(const double power)
Definition: mic_vector.cpp:648
Definition: base_matrix.hpp:86
virtual ValueType Norm(void) const
Compute L2 norm of the vector, return = srqt(this^T this)
Definition: mic_vector.cpp:490
virtual ValueType Asum(void) const
Compute sum of absolute values of the vector (L1 norm), return = sum(|this|)
Definition: mic_vector.cpp:465
virtual void CopyFrom(const BaseVector< ValueType > &src)
Copy values from another vector.
Definition: mic_vector.cpp:176
Definition: base_matrix.hpp:80
virtual void ScaleAdd(const ValueType alpha, const BaseVector< ValueType > &x)
Perform vector update of type this = alpha*this + x.
Definition: mic_vector.cpp:343
virtual void PointWiseMult(const BaseVector< ValueType > &x)
Perform point-wise multiplication (element-wise) of type this = this * x.
Definition: mic_vector.cpp:515
virtual void CopyFromPermuteBackward(const BaseVector< ValueType > &src, const BaseVector< int > &permutation)
Copy a vector under specified permutation (backward permutation)
Definition: mic_vector.cpp:623
virtual ~MICAcceleratorVector()
Definition: mic_vector.cpp:38
friend class HostVector< ValueType >
Definition: mic_vector.hpp:92
virtual void SetValues(const ValueType val)
Set the values of the vector to given argument.
Definition: mic_vector.cpp:317
virtual void CopyToHost(HostVector< ValueType > *dst) const
Copy (host vector) from accelerator vector.
Definition: mic_vector.cpp:144
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType ValueType * y
Definition: cuda_kernels_coo.hpp:91
Definition: base_matrix.hpp:74
Definition: base_matrix.hpp:78
Definition: base_vector.hpp:10
virtual void PartialSum(const BaseVector< ValueType > &x)
Compute partial sum.
Definition: mic_vector.cpp:434
virtual void AddScale(const BaseVector< ValueType > &x, const ValueType alpha)
Perform vector update of type this = this + alpha*x.
Definition: mic_vector.cpp:325
virtual void Ones(void)
Set the values of the vector to one.
Definition: mic_vector.cpp:308
void power(const int mic_dev, const int size, const double val, ValueType *vec)
Definition: mic_vector_kernel.cpp:241
virtual void PermuteBackward(const BaseVector< int > &permutation)
Perform inplace permutation (backward) of the vector.
Definition: mic_vector.cpp:575
Definition: base_matrix.hpp:88
Definition: backend_manager.hpp:12
MICAcceleratorVector()
Definition: mic_vector.cpp:17
virtual void Permute(const BaseVector< int > &permutation)
Perform inplace permutation (forward) of the vector.
Definition: mic_vector.cpp:552
Definition: base_matrix.hpp:82
virtual void CopyTo(BaseVector< ValueType > *dst) const
Copy values to another vector.
Definition: mic_vector.cpp:249
Definition: base_matrix.hpp:76
virtual void LeaveDataPtr(ValueType **ptr)
Get a pointer from the vector data and free the vector object.
Definition: mic_vector.cpp:85
Definition: base_vector.hpp:22
virtual ValueType Reduce(void) const
Reduce vector.
Definition: mic_vector.cpp:503
virtual void CopyFromPermute(const BaseVector< ValueType > &src, const BaseVector< int > &permutation)
Copy a vector under specified permutation (forward permutation)
Definition: mic_vector.cpp:598
ValueType * vec_
Definition: mic_vector.hpp:86
Definition: backend_manager.cpp:43
virtual ValueType Dot(const BaseVector< ValueType > &x) const
Compute dot (scalar) product, return this^T y.
Definition: mic_vector.cpp:442
virtual void CopyFromHost(const HostVector< ValueType > &src)
Copy (accelerator vector) from host vector.
Definition: mic_vector.cpp:112
virtual void Zeros(void)
Set the values of the vector to zero.
Definition: mic_vector.cpp:296
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType * x
Definition: cuda_kernels_coo.hpp:91
virtual void SetDataPtr(ValueType **ptr, const int size)
Initialize a vector with externally allocated data.
Definition: mic_vector.cpp:74
virtual void info(void) const
Shows info about the object.
Definition: mic_vector.cpp:48
virtual void ScaleAddScale(const ValueType alpha, const BaseVector< ValueType > &x, const ValueType beta)
Perform vector update of type this = alpha*this + x*beta.
Definition: mic_vector.cpp:360
virtual ValueType DotNonConj(const BaseVector< ValueType > &x) const
Compute non-conjugated dot (scalar) product, return this^T y.
Definition: mic_vector.cpp:458
Definition: base_matrix.hpp:84
virtual int Amax(ValueType &value) const
Compute the absolute max value of the vector, return = max(|this|)
Definition: mic_vector.cpp:477
virtual void Scale(const ValueType alpha)
Perform vector scaling this = alpha*this.
Definition: mic_vector.cpp:422
virtual void Allocate(const int n)
Allocate a local vector with name and size.
Definition: mic_vector.cpp:55
virtual void Clear(void)
Clear (free) the vector.
Definition: mic_vector.cpp:98