<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Min-Yih,</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);">
Regarding public works about global instruction scheduling-- the literature is vast, spanning decades. To avoid hijacking the thread, I'll mention just a few threads one can pull on-- works that are relatively well-known and range from minimally aggressive
 and simple to much more aggressive and complex: Berstein and Rodeh (PLDI '91), extended- and super-block scheduilng, hyperblock scheduling, wave front scheduling (JILP 2000), and others. See also gcc's fairly aggressive "selective scheduling" for actual source
 code. We are one of the very few production compilers on the planet without a global scheduler (at least not in tree). Moreover, because of the desire to be JIT friendly, there is a tension between scheduling complexity and compile time, so that one size does
 not fit all (or configurability/budgeting must be built in).<br>
</div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Min-Yih Hsu <minyihh@uci.edu><br>
<b>Sent:</b> Thursday, November 11, 2021 12:58 PM<br>
<b>To:</b> Jason Eckhardt <jeckhardt@nvidia.com><br>
<b>Cc:</b> Valentin Churavy <v.churavy@gmail.com>; Lei Zhang <antiagainst@google.com>; Lieberman, Ron <Ron.Lieberman@amd.com>; justin.lebar@gmail.com <justin.lebar@gmail.com>; Chesterfield, Jonathan <Jonathan.Chesterfield@amd.com>; llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>;
 tianshilei1992@gmail.com <tianshilei1992@gmail.com>; Rodgers, Gregory <Gregory.Rodgers@amd.com>; Huber, Joseph <huberjn@ornl.gov>; Narayanaswamy, Ravi <ravi.narayanaswamy@intel.com><br>
<b>Subject:</b> Re: [llvm-dev] Should we have a "GPU working group"?</font>
<div> </div>
</div>
<div class="" style="word-wrap:break-word; line-break:after-white-space">
<table border="1" bgcolor="#FFEB9C">
<tbody>
<tr>
<td><font size="1" face="verdana" color="black"><b>External email: Use caution opening links or attachments</b>
</font></td>
</tr>
</tbody>
</table>
<br>
<div><br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Nov 11, 2021, at 10:22 AM, Jason Eckhardt via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div>
<br class="x_Apple-interchange-newline">
<div class="">
<div class="" style="font-size:12pt; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; font-family:Calibri,Arial,Helvetica,sans-serif">
+1 here as well, even if in lurk mode initially.</div>
<div class="" style="font-size:12pt; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; font-family:Calibri,Arial,Helvetica,sans-serif">
<br class="">
</div>
<div class="" style="font-size:12pt; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; font-family:Calibri,Arial,Helvetica,sans-serif">
Some additional topics of interest:<br class="">
</div>
<div class="" style="font-size:12pt; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; font-family:Calibri,Arial,Helvetica,sans-serif">
<ol class="">
<li class=""><span class=""><i class="">Occupancy vs resource trade-offs (especially registers)</i>. Requires closer coordination of scheduling + register allocation, in addition to extensions in each.  </span></li><li class=""><span class=""><i class="">Divergence analysis/uniformity analysis</i>. Applications to sync insertion, scalar vs vector register allocation, instruction selection, etc.<br class="">
</span></li><li class=""><span class=""><i class="">Synchronization insertion</i>. Some GPUs have instructions to hint where a good re-convergence point is.</span></li><li class=""><span class=""><i class="">Global instruction scheduling</i>. Some GPU code is surprisingly branchy. Numerous out-of-tree/proprietary global schedulers have been written, we<span class="x_Apple-converted-space"> </span><i class="">still</i><span class="x_Apple-converted-space"> </span>don't
 have one upstream.<br class="">
</span></li></ol>
</div>
</div>
</blockquote>
<div>I$B!G(Bm interested on this. Can you list some (public available) works?</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div class="" style="font-size:12pt; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; font-family:Calibri,Arial,Helvetica,sans-serif">
<ol class="" start="5">
<li class=""><span class="">I<i class="">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).<span class="x_Apple-converted-space"> </span><br class="">
</span></li></ol>
</div>
</div>
</blockquote>
<div>This brings benefits to a wider community so I$B!G(Bm definitely +1 on it.</div>
<div>Also, I believe there are some ongoing efforts on porting codegen pipeline to use the new PassManager. Which has the potential to speed up the compilation speed.</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div class="" style="font-size:12pt; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; font-family:Calibri,Arial,Helvetica,sans-serif">
<div class="">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.<span class="x_Apple-converted-space"> </span><br class="">
</div>
<div class=""><br class="">
</div>
</div>
<div id="x_appendonsend" class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none">
</div>
<hr tabindex="-1" class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; display:inline-block; width:767.328125px">
<span class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; float:none; display:inline!important"></span>
<div id="x_divRplyFwdMsg" dir="ltr" class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none">
<font class="" style="font-size:11pt" face="Calibri, sans-serif"><b class="">From:</b><span class="x_Apple-converted-space"> </span>llvm-dev <<a href="mailto:llvm-dev-bounces@lists.llvm.org" class="">llvm-dev-bounces@lists.llvm.org</a>> on behalf of Lei Zhang
 via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>><br class="">
<b class="">Sent:</b><span class="x_Apple-converted-space"> </span>Thursday, November 11, 2021 9:44 AM<br class="">
<b class="">To:</b><span class="x_Apple-converted-space"> </span>Valentin Churavy <<a href="mailto:v.churavy@gmail.com" class="">v.churavy@gmail.com</a>><br class="">
<b class="">Cc:</b><span class="x_Apple-converted-space"> </span>Lieberman, Ron <<a href="mailto:Ron.Lieberman@amd.com" class="">Ron.Lieberman@amd.com</a>>;<span class="x_Apple-converted-space"> </span><a href="mailto:justin.lebar@gmail.com" class="">justin.lebar@gmail.com</a><span class="x_Apple-converted-space"> </span><<a href="mailto:justin.lebar@gmail.com" class="">justin.lebar@gmail.com</a>>;
 Chesterfield, Jonathan <<a href="mailto:Jonathan.Chesterfield@amd.com" class="">Jonathan.Chesterfield@amd.com</a>>;<span class="x_Apple-converted-space"> </span><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><span class="x_Apple-converted-space"> </span><<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>>;<span class="x_Apple-converted-space"> </span><a href="mailto:tianshilei1992@gmail.com" class="">tianshilei1992@gmail.com</a><span class="x_Apple-converted-space"> </span><<a href="mailto:tianshilei1992@gmail.com" class="">tianshilei1992@gmail.com</a>>;
 Rodgers, Gregory <<a href="mailto:Gregory.Rodgers@amd.com" class="">Gregory.Rodgers@amd.com</a>>; Huber, Joseph <<a href="mailto:huberjn@ornl.gov" class="">huberjn@ornl.gov</a>>; Narayanaswamy, Ravi <<a href="mailto:ravi.narayanaswamy@intel.com" class="">ravi.narayanaswamy@intel.com</a>><br class="">
<b class="">Subject:</b><span class="x_Apple-converted-space"> </span>Re: [llvm-dev] Should we have a "GPU working group"?</font>
<div class=""> </div>
</div>
<div class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none">
<table class="" border="1" bgcolor="#FFEB9C">
<tbody class="">
<tr class="">
<td class=""><font class="" size="1" face="verdana"><b class="">External email: Use caution opening links or attachments</b></font></td>
</tr>
</tbody>
</table>
<br class="">
<div class="">
<div dir="ltr" class="">+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 class=""><br class="" clear="all">
<div class="">
<div dir="ltr" class="x_x_gmail_signature">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class="">Thanks,
<div class="">Lei</div>
</div>
</div>
</div>
</div>
</div>
<br class="">
</div>
</div>
<br class="">
<div class="x_x_gmail_quote">
<div dir="ltr" class="x_x_gmail_attr">On Wed, Nov 10, 2021 at 4:03 PM Valentin Churavy via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class="">
</div>
<blockquote class="x_x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div dir="ltr" class="">
<div class="">I would certainly be interested in joining such an effort.</div>
<div class=""><br class="">
</div>
<div class="">-V<br class="">
</div>
</div>
<br class="">
<div class="x_x_gmail_quote">
<div dir="ltr" class="x_x_gmail_attr">On Wed, Nov 10, 2021 at 3:56 PM Johannes Doerfert via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class="">
</div>
<blockquote class="x_x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
Hey,<br class="">
<br class="">
We nowadays have various "working groups" that meet regularly to discuss<span class="x_Apple-converted-space"> </span><br class="">
technical topics (incl. RISC-V, MLIR, OpenMP, Alias Analysis, ML, Flang,<span class="x_Apple-converted-space"> </span><br class="">
...).<br class="">
It's a reasonably nice way for people to connect and present ideas, get<span class="x_Apple-converted-space"> </span><br class="">
feedback, etc. in an interactive environment.<br class="">
While the OpenMP meeting has a strong emphasis on offloading, we do not<span class="x_Apple-converted-space"> </span><br class="">
meet to discuss "generic GPU" topics as a community.<br class="">
<br class="">
This email is to determine if people would be interested in meeting once<span class="x_Apple-converted-space"> </span><br class="">
every N weeks (initially we could say 2) to coordinate efforts in this<span class="x_Apple-converted-space"> </span><br class="">
space, e.g., development of GPU-specific optimizations, organization of<span class="x_Apple-converted-space"> </span><br class="">
driver and backend code, dealing with issues like convergent functions, ...<br class="">
<br class="">
I CC'ed a bunch of people that might want to join such a meeting but<span class="x_Apple-converted-space"> </span><br class="">
certainly this is something everyone would be invited to and I hope<span class="x_Apple-converted-space"> </span><br class="">
people forward this to parties that might not read llvm-dev.<br class="">
<br class="">
Looking forward to hear what people think :)<br class="">
<br class="">
~ Johannes<br class="">
<br class="">
<br class="">
<br class="">
<br class="">
--<span class="x_Apple-converted-space"> </span><br class="">
$B(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(B<br class="">
$B"f(B Johannes (he/his)<br class="">
<br class="">
_______________________________________________<br class="">
LLVM Developers mailing list<br class="">
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a><br class="">
<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%7C18a6be0e6bb4431055ef08d9a54537d0%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637722538989746360%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=GcNsQOpX%2FaYz%2Fag36CdlkxX62o5ns1CgaXYiuQZ%2FUDs%3D&reserved=0" originalsrc="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" shash="UfMDXqpWwPi/8TZVRpLq86Ivlx22OX+ZXYzSJaVcAIVOJYYUh3Y14FrkuuVlAbhoRxyDP/JDegpBJsB16zES1PfqLC8eDNqs0jdATBx2gcTrb17KOf+uw9v7OGnEY3vSnqv+LIH5WQSjTM5+CaxIT6Yfdz0qHkG/1daZIR0T0cg=" rel="noreferrer" target="_blank" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
</blockquote>
</div>
_______________________________________________<br class="">
LLVM Developers mailing list<br class="">
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a><br class="">
<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%7C18a6be0e6bb4431055ef08d9a54537d0%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637722538989746360%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=GcNsQOpX%2FaYz%2Fag36CdlkxX62o5ns1CgaXYiuQZ%2FUDs%3D&reserved=0" originalsrc="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" shash="UfMDXqpWwPi/8TZVRpLq86Ivlx22OX+ZXYzSJaVcAIVOJYYUh3Y14FrkuuVlAbhoRxyDP/JDegpBJsB16zES1PfqLC8eDNqs0jdATBx2gcTrb17KOf+uw9v7OGnEY3vSnqv+LIH5WQSjTM5+CaxIT6Yfdz0qHkG/1daZIR0T0cg=" rel="noreferrer" target="_blank" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
</blockquote>
</div>
</div>
</div>
<span class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; float:none; display:inline!important">_______________________________________________</span><br class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none">
<span class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; float:none; display:inline!important">LLVM
 Developers mailing list</span><br class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none">
<span class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; float:none; display:inline!important"><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a></span><br class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none">
<span class="" style="font-family:Helvetica; font-size:16px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-decoration:none; float:none; display:inline!important"><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%7C18a6be0e6bb4431055ef08d9a54537d0%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637722538989756360%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=iYwlVs4AnTYeyz%2FGhOL34KbS59E9DLB6Ii%2B%2FiBT9Dqs%3D&reserved=0" originalsrc="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" shash="EOBe/U7/L2zY954tWMF820lHobrdKs6WmE2svpmJyDS8rV8MrvZDYsW9Hxis6MOryfDccauVOwbajAPJ6Y2HvWyZsJbLDcs0UukBWm4hpSPzpKQ4T3bz9siehpFglgQjqkdqNzpPlwMHOneKDMkb0V9uMJBXjINQxVplY4z63Ts=" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></span></div>
</blockquote>
</div>
<br class="">
</div>
</div>
</body>
</html>