<div dir="auto">Many of these issues (like scheduling) also affect and impact other targets too that aren't necessarily GPUs. Definitely better and broader infrastructure here would be useful.<div dir="auto"><br></div><div dir="auto">Steve</div><div dir="auto"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 11, 2021, 10:22 AM Jason Eckhardt via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
+1 here as well, even if in lurk mode initially.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Some additional topics of interest:<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<ol>
<li><span><i>Occupancy vs resource trade-offs (especially registers)</i>. Requires closer coordination of scheduling + register allocation, in addition to extensions in each. </span></li><li><span><i>Divergence analysis/uniformity analysis</i>. Applications to sync insertion, scalar vs vector register allocation, instruction selection, etc.<br>
</span></li><li><span><i>Synchronization insertion</i>. Some GPUs have instructions to hint where a good re-convergence point is.</span></li><li><span><i>Global instruction scheduling</i>. Some GPU code is surprisingly branchy. Numerous out-of-tree/proprietary global schedulers have been written, we
<i>still</i> don't have one upstream.<br>
</span></li><li><span>I<i>ncreasing overall back-end speed for JIT compilation</i>. GPU back-ends are often situated within graphics drivers where they dynamically compile shaders with absurdly stringent timing constraints. GlobalISel is a step in the right direction,
but more needs doing (particularly for small shaders). <br>
</span></li></ol>
<div>As an example, #1 is handled (if at all) specially by each target. With the proliferation of GPUs (Teams Red, Green, Blue, and others), it would be useful for "all boats to float higher" with generic code (with target-specific hooks/overrides) supported
by the wider community as opposed to redundant re-invention of the wheel (or no wheel at all, as in #4). Then specific targets can expend effort adding value for their particular needs.
<br>
</div>
<div><br>
</div>
</div>
<div id="m_-4086861956156113816appendonsend"></div>
<hr style="display:inline-block;width:98%">
<div id="m_-4086861956156113816divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> llvm-dev <<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev-bounces@lists.llvm.org</a>> on behalf of Lei Zhang via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>><br>
<b>Sent:</b> Thursday, November 11, 2021 9:44 AM<br>
<b>To:</b> Valentin Churavy <<a href="mailto:v.churavy@gmail.com" target="_blank" rel="noreferrer">v.churavy@gmail.com</a>><br>
<b>Cc:</b> Lieberman, Ron <<a href="mailto:Ron.Lieberman@amd.com" target="_blank" rel="noreferrer">Ron.Lieberman@amd.com</a>>; <a href="mailto:justin.lebar@gmail.com" target="_blank" rel="noreferrer">justin.lebar@gmail.com</a> <<a href="mailto:justin.lebar@gmail.com" target="_blank" rel="noreferrer">justin.lebar@gmail.com</a>>; Chesterfield, Jonathan <<a href="mailto:Jonathan.Chesterfield@amd.com" target="_blank" rel="noreferrer">Jonathan.Chesterfield@amd.com</a>>; <a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>>; <a href="mailto:tianshilei1992@gmail.com" target="_blank" rel="noreferrer">tianshilei1992@gmail.com</a> <<a href="mailto:tianshilei1992@gmail.com" target="_blank" rel="noreferrer">tianshilei1992@gmail.com</a>>;
Rodgers, Gregory <<a href="mailto:Gregory.Rodgers@amd.com" target="_blank" rel="noreferrer">Gregory.Rodgers@amd.com</a>>; Huber, Joseph <<a href="mailto:huberjn@ornl.gov" target="_blank" rel="noreferrer">huberjn@ornl.gov</a>>; Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com" target="_blank" rel="noreferrer">ravi.narayanaswamy@intel.com</a>><br>
<b>Subject:</b> Re: [llvm-dev] Should we have a "GPU working group"?</font>
<div> </div>
</div>
<div>
<table bgcolor="#FFEB9C" border="1">
<tbody>
<tr>
<td><font face="verdana" color="black" size="1"><b>External email: Use caution opening links or attachments</b>
</font></td>
</tr>
</tbody>
</table>
<br>
<div>
<div dir="ltr">+1. There are certainly efforts that need broad collaboration among various interest parties; they would benefit from more interactive discussions to have everybody on the same page. What immediately jumps into my mind include how we can push
to have unified/better SPIR-V support in LLVM proper / cross LLVM/MLIR, etc. It's a big one that I'd assume will take a long time to unfold and will have back and forth. Having a place to discuss will actually make sure we put efforts towards it (or at least
have plans and revisit periodically). There are certainly many other topics to discuss too, as said by Johannes. I think this is a great idea.
<div><br clear="all">
<div>
<div dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">Thanks,
<div>Lei</div>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
<br>
<div>
<div dir="ltr">On Wed, Nov 10, 2021 at 4:03 PM Valentin Churavy via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>I would certainly be interested in joining such an effort.</div>
<div><br>
</div>
<div>-V<br>
</div>
</div>
<br>
<div>
<div dir="ltr">On Wed, Nov 10, 2021 at 3:56 PM Johannes Doerfert via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Hey,<br>
<br>
We nowadays have various "working groups" that meet regularly to discuss <br>
technical topics (incl. RISC-V, MLIR, OpenMP, Alias Analysis, ML, Flang, <br>
...).<br>
It's a reasonably nice way for people to connect and present ideas, get <br>
feedback, etc. in an interactive environment.<br>
While the OpenMP meeting has a strong emphasis on offloading, we do not <br>
meet to discuss "generic GPU" topics as a community.<br>
<br>
This email is to determine if people would be interested in meeting once <br>
every N weeks (initially we could say 2) to coordinate efforts in this <br>
space, e.g., development of GPU-specific optimizations, organization of <br>
driver and backend code, dealing with issues like convergent functions, ...<br>
<br>
I CC'ed a bunch of people that might want to join such a meeting but <br>
certainly this is something everyone would be invited to and I hope <br>
people forward this to parties that might not read llvm-dev.<br>
<br>
Looking forward to hear what people think :)<br>
<br>
~ Johannes<br>
<br>
<br>
<br>
<br>
-- <br>
───────────────────<br>
∽ Johannes (he/his)<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a><br>
<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-dev&data=04%7C01%7Cjeckhardt%40nvidia.com%7Cea5003810a644cc981b308d9a52a252b%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637722422720796637%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Wqe0548FXifuicYy39N8YafF3IUqZaATKgAYHctuPv4%3D&reserved=0" rel="noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a><br>
<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-dev&data=04%7C01%7Cjeckhardt%40nvidia.com%7Cea5003810a644cc981b308d9a52a252b%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637722422720806639%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=5ygaPNgaF5YXRlFV1wF9VajRsEZsySt7z2OCHokcHBc%3D&reserved=0" rel="noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
</div>
</div>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>