<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 19, 2020, at 09:12, Jan Vesely <<a href="mailto:jan.vesely@rutgers.edu" class="">jan.vesely@rutgers.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 15, 2020 at 2:32 PM Matt Arsenault via Libclc-dev <<a href="mailto:libclc-dev@lists.llvm.org" class="">libclc-dev@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br class="">
<br class="">
> On Jul 6, 2020, at 17:51, Aaron Watry via Libclc-dev <<a href="mailto:libclc-dev@lists.llvm.org" target="_blank" class="">libclc-dev@lists.llvm.org</a>> wrote:<br class="">
> <br class="">
> Sorry Jan (and everyone),<br class="">
> <br class="">
> I forgot to hit reply-all when I sent the attached earlier.<br class="">
> <br class="">
> â€”Aaron<br class="">
> <br class="">
<br class="">
A more substantial patch will be needed for wave32 support, which is supposed to be the default for compute<br class=""></blockquote><div class=""><br class=""></div><div class="">Can you elaborate? What changes will be visible on the IR level?<br class=""><br class="">Jan</div><div class=""><br class=""></div></div></div></div></blockquote><br class=""></div><div>The implementation of most cross-lane/reduction operations needs to be swapped depending on the wave size (not sure if those are fully implemented already in libclc). Some intrinsics (like llvm.amdgcn.ballot) need to be differently mangled. Other cases require emitting different/longer code for wave32 to handle both halves of the wave for example. ROCm-Device-Libs mostly handles the two wave sizes similarly to the other library control libraries, like libclc.</div><div><br class=""></div><div>A few sample cases: <a href="https://github.com/RadeonOpenCompute/ROCm-Device-Libs/blob/amd-stg-open/ockl/src/lane.cl" class="">https://github.com/RadeonOpenCompute/ROCm-Device-Libs/blob/amd-stg-open/ockl/src/lane.cl</a></div><div><a href="https://github.com/RadeonOpenCompute/ROCm-Device-Libs/blob/amd-stg-open/opencl/src/subgroup/subget.cl" class="">https://github.com/RadeonOpenCompute/ROCm-Device-Libs/blob/amd-stg-open/opencl/src/subgroup/subget.cl</a></div><div><br class=""></div><div><br class=""></div><div>-Matt</div><br class=""></body></html>