spla
Loading...
Searching...
No Matches
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
8static 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)";