19 #ifndef OPM_CUISTL_VECTOR_OPERATIONS_HPP 20 #define OPM_CUISTL_VECTOR_OPERATIONS_HPP 23 #include <cublas_v2.h> 35 void setVectorValue(T* deviceData,
size_t numberOfElements,
const T& value);
44 void setZeroAtIndexSet(T* deviceData,
size_t numberOfElements,
const int* indices);
60 T
innerProductAtIndices(cublasHandle_t cublasHandle,
const T* deviceA,
const T* deviceB, T* buffer,
size_t numberOfElements,
const int* indices);
63 void prepareSendBuf(
const T* deviceA, T* buffer,
size_t numberOfElements,
const int* indices);
65 void syncFromRecvBuf(T* deviceA, T* buffer,
size_t numberOfElements,
const int* indices);
82 const size_t numberOfRows,
83 const size_t blocksize,
void setVectorValue(T *deviceData, size_t numberOfElements, const T &value)
setVectorValue sets every element of deviceData to value
void weightedDiagMV(const T *squareBlockVector, const size_t numberOfRows, const size_t blocksize, T relaxationFactor, const T *srcVec, T *dstVec)
Compue the weighted matrix vector product where the matrix is diagonal, the diagonal is a vector...
void setZeroAtIndexSet(T *deviceData, size_t numberOfElements, const int *indices)
setZeroAtIndexSet sets deviceData to zero in the indices of contained in indices
T innerProductAtIndices(cublasHandle_t cublasHandle, const T *deviceA, const T *deviceB, T *buffer, size_t numberOfElements, const int *indices)
innerProductAtIndices computes the inner product between deviceA[indices] and deviceB[indices] ...
Contains wrappers to make the CuBLAS library behave as a modern C++ library with function overlading...
Definition: autotuner.hpp:29