1 #ifndef PARALUTION_GPU_CUDA_KERNELS_DENSE_HPP_
2 #define PARALUTION_GPU_CUDA_KERNELS_DENSE_HPP_
4 #include "../matrix_formats_ind.hpp"
9 template <
typename ValueType,
typename IndexType>
11 const IndexType ncol, ValueType *mat) {
13 IndexType ai = blockIdx.x * blockDim.x + threadIdx.x;
16 mat[
DENSE_IND(ai, idx, nrow, ncol)] = vec[ai];
21 template <
typename ValueType,
typename IndexType>
23 const IndexType ncol, ValueType *mat) {
25 IndexType aj = blockIdx.x * blockDim.x + threadIdx.x;
28 mat[
DENSE_IND(idx, aj, nrow, ncol)] = vec[aj];
33 template <
typename ValueType,
typename IndexType>
35 const IndexType ncol,
const ValueType *mat) {
37 IndexType ai = blockIdx.x * blockDim.x + threadIdx.x;
40 vec[ai] = mat[
DENSE_IND(ai, idx, nrow, ncol)];
45 template <
typename ValueType,
typename IndexType>
47 const IndexType ncol,
const ValueType *mat) {
49 IndexType aj = blockIdx.x * blockDim.x + threadIdx.x;
52 vec[aj] = mat[
DENSE_IND(idx, aj, nrow, ncol)];
__global__ void kernel_dense_extract_column_vector(ValueType *vec, const IndexType idx, const IndexType nrow, const IndexType ncol, const ValueType *mat)
Definition: cuda_kernels_dense.hpp:34
__global__ void kernel_dense_replace_column_vector(const ValueType *vec, const IndexType idx, const IndexType nrow, const IndexType ncol, ValueType *mat)
Definition: cuda_kernels_dense.hpp:10
const IndexType idx
Definition: cuda_kernels_coo.hpp:115
__global__ void kernel_dense_replace_row_vector(const ValueType *vec, const IndexType idx, const IndexType nrow, const IndexType ncol, ValueType *mat)
Definition: cuda_kernels_dense.hpp:22
Definition: backend_manager.cpp:43
__global__ void kernel_dense_extract_row_vector(ValueType *vec, const IndexType idx, const IndexType nrow, const IndexType ncol, const ValueType *mat)
Definition: cuda_kernels_dense.hpp:46