spla
Loading...
Searching...
No Matches
src
opencl
generated
auto_vector_eadd_fdb.hpp
Go to the documentation of this file.
1
2
// Copyright (c) 2021 - 2023 SparseLinearAlgebra
3
// Autogenerated file, do not modify
5
6
#pragma once
7
8
static
const
char
source_vector_eadd_fdb[] = R
"(
9
10
11
__kernel void sparse_to_dense(__global TYPE* g_rx,
12
__global const uint* g_vi,
13
__global const TYPE* g_vx,
14
__global uint* g_fdbi,
15
__global TYPE* g_fdbx,
16
__global uint* g_fdb_size,
17
const uint n) {
18
const uint gid = get_global_id(0);
19
const uint gsize = get_global_size(0);
20
21
for (uint k = gid; k < n; k += gsize) {
22
const uint i = g_vi[k];
23
const TYPE prev = g_rx[i];
24
25
g_rx[i] = OP_BINARY(prev, g_vx[k]);
26
27
if (prev != g_rx[i]) {
28
const uint offset = atomic_inc(g_fdb_size);
29
g_fdbi[offset] = i;
30
g_fdbx[offset] = g_rx[i];
31
}
32
}
33
}
34
35
__kernel void dense_to_dense(__global TYPE* g_rx,
36
__global const TYPE* g_vx,
37
__global TYPE* g_fdbx,
38
const uint n) {
39
const uint gid = get_global_id(0);
40
const uint gsize = get_global_size(0);
41
42
for (uint i = gid; i < n; i += gsize) {
43
const TYPE prev = g_rx[i];
44
45
g_rx[i] = OP_BINARY(prev, g_vx[i]);
46
47
if (prev != g_rx[i]) {
48
g_fdbx[i] = g_rx[i];
49
}
50
}
51
}
52
)";
Generated by
1.12.0