__global__ void
spmv_csr_scalar_kernel(
const int num_rows, const int * rowptr,
const int * index, const float * value,
const float * x, float * y){
int row = blockDim.x * blockIdx.x +
threadIdx.x;
if (row < num_rows){
int row_start = rowptr[row];
int row_end = rowptr[row+1];
for (int jj = row_start;
jj < row_end ; jj++)
dot += value[jj] * x[index[jj]];
y[row] += dot;
}
}
)