<feed xmlns='http://www.w3.org/2005/Atom'>
<title>boltzgen_examples, branch master</title>
<subtitle>Examples on how to use the boltzgen code generator</subtitle>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/'/>
<entry>
<title>Integrate AA in CUDA example</title>
<updated>2020-01-17T20:07:49+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2020-01-17T20:07:49+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=682c46c7932f6dfe8d3874bd54e412162a81d216'/>
<id>682c46c7932f6dfe8d3874bd54e412162a81d216</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Integrate SSS in Open(C,G)L interop example</title>
<updated>2020-01-16T21:21:00+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2020-01-16T21:20:27+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=dbe19deb0d42ee7c2359d951686c6100d4ec27b3'/>
<id>dbe19deb0d42ee7c2359d951686c6100d4ec27b3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for SSS propagation in OpenCL example</title>
<updated>2020-01-10T23:18:20+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2020-01-10T23:18:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=74392de73ae6c799486f34eccf5c2c37ff9187ea'/>
<id>74392de73ae6c799486f34eccf5c2c37ff9187ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add C++ compiler to CUDA shell expression</title>
<updated>2020-01-10T23:16:21+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2020-01-10T23:16:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=ac226d7ddf6ccfde2d5db3dc4807456ab3d46521'/>
<id>ac226d7ddf6ccfde2d5db3dc4807456ab3d46521</id>
<content type='text'>
I am not entirely sure why this was not required previously.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I am not entirely sure why this was not required previously.
</pre>
</div>
</content>
</entry>
<entry>
<title>Share Lattice implementation between plain and interop OpenCL example</title>
<updated>2019-11-12T21:59:21+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-12T21:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=8c1f317010eeba28b3d4ae3ef158b1e760997ed1'/>
<id>8c1f317010eeba28b3d4ae3ef158b1e760997ed1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Share boltzgen version between expressions</title>
<updated>2019-11-12T21:59:03+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-12T21:59:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=2dba6db0c94ccb260f3e9345b25146ce75ccea9a'/>
<id>2dba6db0c94ccb260f3e9345b25146ce75ccea9a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Export density, support indexing parameter in CUDA example</title>
<updated>2019-11-12T19:01:35+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-12T19:01:35+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=155c630827bae820412d663e1579929a2832d24b'/>
<id>155c630827bae820412d663e1579929a2832d24b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use separate Nix environments for each target</title>
<updated>2019-11-11T12:41:46+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-11T12:41:46+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=336d20eed737445f3b2aa7d875c90ccc64a97213'/>
<id>336d20eed737445f3b2aa7d875c90ccc64a97213</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add LDC example for CUDA target</title>
<updated>2019-11-10T20:25:07+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-10T20:25:07+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=988818c224197eb506ac2f42edef13d7bd1cc11a'/>
<id>988818c224197eb506ac2f42edef13d7bd1cc11a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix SSS population padding</title>
<updated>2019-11-09T22:47:58+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-09T22:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=52033eeec131fe862ad85dcb52e961b5904330eb'/>
<id>52033eeec131fe862ad85dcb52e961b5904330eb</id>
<content type='text'>
D2Q9 and D3Q27 worked by coincidence, should now work for all lattices.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
D2Q9 and D3Q27 worked by coincidence, should now work for all lattices.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for SSS pattern to C++ LDC example</title>
<updated>2019-11-09T20:36:04+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-09T19:44:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=910c2299f4be8ec1819cddaae508d60cddcb9796'/>
<id>910c2299f4be8ec1819cddaae508d60cddcb9796</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add OpenCL GL interop example</title>
<updated>2019-11-09T15:21:54+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-09T15:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=20b821bfdf8441b6e2b0e086097a729f006e5b0a'/>
<id>20b821bfdf8441b6e2b0e086097a729f006e5b0a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt to upstream function rename</title>
<updated>2019-11-09T14:41:56+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-09T14:41:56+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=0a68fc826a80123e3ce98f6696d834d0013b2c43'/>
<id>0a68fc826a80123e3ce98f6696d834d0013b2c43</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add basic AA pattern support for OpenCL example</title>
<updated>2019-11-06T20:26:03+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-06T20:24:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=4610b50bfe47ed0d75f30279fca69d0dcdc04ee2'/>
<id>4610b50bfe47ed0d75f30279fca69d0dcdc04ee2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add basic AA pattern support for C++ example</title>
<updated>2019-11-05T19:14:29+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-05T19:14:29+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=527e8aa9c33d7c82b548b2280c979f653a7131ae'/>
<id>527e8aa9c33d7c82b548b2280c979f653a7131ae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt to upstream changes</title>
<updated>2019-11-04T22:50:41+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-04T22:50:41+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=8285173fa9c69de72020962506eb080a49be0ce5'/>
<id>8285173fa9c69de72020962506eb080a49be0ce5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt to upstream changes</title>
<updated>2019-11-02T16:57:23+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-11-02T16:57:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=b708361bf722b2c19f47699ceb931c6efeb8c9d9'/>
<id>b708361bf722b2c19f47699ceb931c6efeb8c9d9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename folder, add basic README.md</title>
<updated>2019-10-30T18:45:39+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-30T18:45:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=d540b701836dbcdef727947f52a0ca01430968a6'/>
<id>d540b701836dbcdef727947f52a0ca01430968a6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract settings into config file, add documentation</title>
<updated>2019-10-30T18:40:56+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-30T18:40:56+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=fc58dab96f27624435a1c08480234a7c03071e27'/>
<id>fc58dab96f27624435a1c08480234a7c03071e27</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move C++ LDC template from upstream, improve build</title>
<updated>2019-10-30T15:09:05+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-30T15:08:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=2bff37d2d4c0e210fd3e4288bdd0add12b9eb86b'/>
<id>2bff37d2d4c0e210fd3e4288bdd0add12b9eb86b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge shell environments</title>
<updated>2019-10-29T20:07:35+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-29T20:07:35+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=022f427afe9bab50ece321442f6a62899771bbbc'/>
<id>022f427afe9bab50ece321442f6a62899771bbbc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add example for C++ target</title>
<updated>2019-10-29T20:04:53+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-29T20:04:53+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=a725685ddaa2eaa0711ceb51e1f74d09349d618e'/>
<id>a725685ddaa2eaa0711ceb51e1f74d09349d618e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move example into subfolder</title>
<updated>2019-10-29T19:50:49+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-29T19:46:21+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=6bf667eeb0c8f40e0f6a28df1ecf4a40824771c3'/>
<id>6bf667eeb0c8f40e0f6a28df1ecf4a40824771c3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Adapt to upstream changes</title>
<updated>2019-10-29T19:41:33+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-29T19:41:33+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=39aa2832b3d8e1a3e1dd2efb0bf9629d8190ed39'/>
<id>39aa2832b3d8e1a3e1dd2efb0bf9629d8190ed39</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix double precision</title>
<updated>2019-10-29T15:06:09+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-29T15:06:09+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=12e8d10df34e8def9a5fb3944bff6de25f020d27'/>
<id>12e8d10df34e8def9a5fb3944bff6de25f020d27</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Basic 2D LDC using boltzgen for kernel generation</title>
<updated>2019-10-28T22:08:39+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2019-10-28T22:07:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.kummerlaender.eu/boltzgen_examples/commit/?id=42f4ae5f67f17ff37b3e95cab3c905668816eee8'/>
<id>42f4ae5f67f17ff37b3e95cab3c905668816eee8</id>
<content type='text'>
Using cell lists as parameters for multiple non-branching kernels seems
to reduce performance by ~50 MLUPS (for single precision D2Q9).
This might be alleviated by padding the cell lists to enable thread
layout control or by improved kernel dispatching.

On the upside this OpenCL program runs not only on GPUs but is also vectorized on Intel
CPUs yielding about 180 MLUPS (single precision) and - anticlimactically - 85 MLUPS for
double precision on a i7-4790K.
However both these values compare well to the performance of established CPU LBM codes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using cell lists as parameters for multiple non-branching kernels seems
to reduce performance by ~50 MLUPS (for single precision D2Q9).
This might be alleviated by padding the cell lists to enable thread
layout control or by improved kernel dispatching.

On the upside this OpenCL program runs not only on GPUs but is also vectorized on Intel
CPUs yielding about 180 MLUPS (single precision) and - anticlimactically - 85 MLUPS for
double precision on a i7-4790K.
However both these values compare well to the performance of established CPU LBM codes.
</pre>
</div>
</content>
</entry>
</feed>
