aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/template/collect_moments.cl.mako
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-10-27 14:05:21 +0100
committerAdrian Kummerlaender2019-10-27 14:05:21 +0100
commit18c54d79699db7554faa851c87d7113db67a8a08 (patch)
treec89243b5796bb8f1e6a8cea241f3a5e1bf934ba1 /boltzgen/kernel/template/collect_moments.cl.mako
parent7fa72d8718d96727bcfd60cc3bcb1609526d3c9b (diff)
downloadboltzgen-18c54d79699db7554faa851c87d7113db67a8a08.tar
boltzgen-18c54d79699db7554faa851c87d7113db67a8a08.tar.gz
boltzgen-18c54d79699db7554faa851c87d7113db67a8a08.tar.bz2
boltzgen-18c54d79699db7554faa851c87d7113db67a8a08.tar.lz
boltzgen-18c54d79699db7554faa851c87d7113db67a8a08.tar.xz
boltzgen-18c54d79699db7554faa851c87d7113db67a8a08.tar.zst
boltzgen-18c54d79699db7554faa851c87d7113db67a8a08.zip
Separate functions into separate template files
Selection of the desired templates is possible via a new `functions` parameter.
Diffstat (limited to 'boltzgen/kernel/template/collect_moments.cl.mako')
-rw-r--r--boltzgen/kernel/template/collect_moments.cl.mako19
1 files changed, 19 insertions, 0 deletions
diff --git a/boltzgen/kernel/template/collect_moments.cl.mako b/boltzgen/kernel/template/collect_moments.cl.mako
new file mode 100644
index 0000000..b07b759
--- /dev/null
+++ b/boltzgen/kernel/template/collect_moments.cl.mako
@@ -0,0 +1,19 @@
+__kernel void collect_moments(__global ${float_type}* f,
+ __global ${float_type}* moments)
+{
+ const unsigned int gid = ${layout.gid()};
+
+ __global ${float_type}* preshifted_f = f + gid;
+
+% for i in range(0,descriptor.q):
+ const ${float_type} f_curr_${i} = preshifted_f[${layout.pop_offset(i)}];
+% endfor
+
+% for i, expr in enumerate(moments_subexpr):
+ const ${float_type} ${expr[0]} = ${ccode(expr[1])};
+% endfor
+
+% for i, expr in enumerate(moments_assignment):
+ moments[${layout.pop_offset(i)} + gid] = ${ccode(expr.rhs)};
+% endfor
+}