<div dir="ltr">Hi,<div><br></div><div>Last night I grabbed a trivial OpenCL sample code that does vector addition (source [1]) and threw in an atomic add on floats: <a href="https://pastee.org/8jtbj">https://pastee.org/8jtbj</a></div><div>Would this work as a starting point?</div><div><br></div><div>If this is too trivial, one option for extending it is to e.g. generate a trivial neighbor list (e.g. a random list of index pairs into a coordinate array) that the kernel looks over and calculate a distance (or some simple pair potential-like function).</div><div><br></div><div>Cheers,</div><div class="gmail_extra"><div><div class="gmail_signature">--<br>Szilárd</div></div><div class="gmail_signature"><br></div><div class="gmail_signature">[1] <a href="https://www.olcf.ornl.gov/tutorials/opencl-vector-addition/#vecAdd.c" target="_blank">https://www.olcf.ornl.gov/tutorials/opencl-vector-addition/#vecAdd.c</a><br></div><div class="gmail_signature"><br></div>
<br><div class="gmail_quote">On Thu, Dec 10, 2015 at 4:56 PM, Szilárd Páll <span dir="ltr">&lt;<a href="mailto:pall.szilard@gmail.com" target="_blank">pall.szilard@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Vedran,<div><br></div><div>Unfortunately, don&#39;t think I will have enough time at least in the coming 1-2 weeks. I could help composing the kernel, but that&#39;s likely going to be little effort and I am quite inexperienced with OpenCL, especially with the API &quot;glue&quot; code needed to just have a small test kernel running.</div><div><br></div><div>I could pith in with putting together the kernel, but if the goal is to have a simple test for global memory atomic addition on floats, perhaps the best idea is to strip down an SDK example* like a float vector addition (or reduction) and replace the regular global memory writes with the atomicAdd_g_f() function implemented in src/gromacs/mdlib/nbnxn_ocl/vectype_ops.clh.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">* Both the AMD SDK and NVIDIA&#39;s ancient OpenCL SDK should have ready code, but having checked briefly, a slight stripping down may be needed to remove certain optimizations and avoid utility functions.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Cheers,<br clear="all"><div><div>--<br>Szilárd</div></div><div><div class="h5">
<br><div class="gmail_quote">On Wed, Dec 9, 2015 at 10:30 AM, Vedran Miletić <span dir="ltr">&lt;<a href="mailto:rivanvx@gmail.com" target="_blank">rivanvx@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>2015-12-04 18:13 GMT+01:00 Szilárd Páll &lt;<a href="mailto:pall.szilard@gmail.com" target="_blank">pall.szilard@gmail.com</a>&gt;:<br>
&gt; Sounds good, is there anything on our side we can help with?<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; --<br>
&gt; Szilárd<br>
&gt;<br>
<br>
</span>Szilard,<br>
<br>
actually, there is something that would be very useful, as I am<br>
struggling with testing my changes at the moment. It would be great to<br>
have minimal self-contained OpenCL example programs covering a<br>
spectrum of features we use. As a start, I could use a minimal atomic<br>
compare and swap example that would crash in the same way GROMACS does<br>
now.<br>
<br>
LLVM requires tests for all patches [1]. So I would certainly reuse these.<br>
<br>
Is this doable? I can try to make them myself, but you mentioned you<br>
are familiar with the code so I&#39;m hoping you could make them quicker.<br>
<br>
Regards,<br>
Vedran<br>
<br>
[1] <a href="http://llvm.org/docs/DeveloperPolicy.html" rel="noreferrer" target="_blank">http://llvm.org/docs/DeveloperPolicy.html</a><br>
<div><div><br>
--<br>
Vedran Miletić<br>
<a href="http://vedranmileti.ch/" rel="noreferrer" target="_blank">http://vedranmileti.ch/</a><br>
--<br>
Gromacs Developers mailing list<br>
<br>
* Please search the archive at <a href="http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List</a> before posting!<br>
<br>
* Can&#39;t post? Read <a href="http://www.gromacs.org/Support/Mailing_Lists" rel="noreferrer" target="_blank">http://www.gromacs.org/Support/Mailing_Lists</a><br>
<br>
* For (un)subscribe requests visit<br>
<a href="https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers" rel="noreferrer" target="_blank">https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers</a> or send a mail to <a href="mailto:gmx-developers-request@gromacs.org" target="_blank">gmx-developers-request@gromacs.org</a>.</div></div></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div></div>