<div dir="ltr">Hi folks,<br><br>I'm starting a bi-weekly newsletter on all the GPU things under the LLVM umbrella: GPU backends in LLVM, GPU dialects in MLIR, middle-end work related to GPU compilation, external LLVM- and MLIR-based GPU compilers, relevant conference talks, etc. I'm going to publish new issues every other Friday on llvm-dev and a dedicated website:  <a href="https://llvm-gpu-news.github.io" target="_blank">https://llvm-gpu-news.github.io</a>.<br><br>The first issue is available at: <a href="https://llvm-gpu-news.github.io/2020/12/11/issue-1.html" target="_blank">https://llvm-gpu-news.github.io/2020/12/11/issue-1.html</a>.<div>I'm also pasting the content below, in case you prefer to read in your email client.</div><br>The high-level goals are to surface common themes in GPU compilation for different hardware, and to raise awareness of the general LLVM community about important aspects of GPU compilation.<div><br>-Jakub<br><br>====================================================================<br><br># LLVM GPU News Issue #1, December 11 2020<br><br>Welcome to the first issue of LLVM GPU News, a bi-weekly newsletter on all the<br>GPU things under the LLVM umbrella. This issues covers the period from<br>November 27 to December 10 2020.<br><br>We welcome your feedback and suggestions. Let us know if we missed anything interesting, or<br>want us to bring attention to your (sub)project, revisions under review, or proposals.<br>Please see the bottom of the page for details on how to submit suggestions and contribute.<br><br>## Industry News and Conference Talks<br>*  [AMD published the RDNA 2 Instruction Set Architecture manual.](<a href="https://gpuopen.com/rdna2-isa-available/">https://gpuopen.com/rdna2-isa-available/</a>)<br>   Some notable changes from the previous GCN ISA are:<br>   *  ray tracing support,<br>   *  new dot product ALU operations for accelerated inference and deep learning,<br>   *  VGPR and LDS allocation-unit size were doubled,<br>   *  legacy multiply-add instructions were removed (superseded by fused-multiply-add).<br><br>##  LLVM<br><br>### Discussions<br>*  Jay Foad ran into [issues with preserved and required transitive analyses in the Legacy Pass Manager](<a href="http://lists.llvm.org/pipermail/llvm-dev/2020-November/146923.html">http://lists.llvm.org/pipermail/llvm-dev/2020-November/146923.html</a>)<br>   in AMDGPU. Jay proposes to add a new pass preservation rule, but some existing passes currently violate it.<br>   There are no replies as of writing.<br>*  Arthur Eubanks is working [towards enabling the New Pass Manager](<a href="http://lists.llvm.org/pipermail/llvm-dev/2020-December/147004.html">http://lists.llvm.org/pipermail/llvm-dev/2020-December/147004.html</a>).<br>   Arthur looked into AMDGPU support for the NPN and points out that<br>   [passes that depended on `TargetMachine::adjustPassManager` need to be tweaked to work with the NPN](<a href="http://lists.llvm.org/pipermail/llvm-dev/2020-December/147130.html">http://lists.llvm.org/pipermail/llvm-dev/2020-December/147130.html</a>).<br>*  João Paulo L. de Carvalho asked about<br>   [modeling address space casts in the Scalar Evolution analysis](<a href="http://lists.llvm.org/pipermail/llvm-dev/2020-November/146927.html">http://lists.llvm.org/pipermail/llvm-dev/2020-November/146927.html</a>).<br>   This prevents simple SYCL loops from being vectorized. There are no replies as of writing.<br>*  Nichols A. Romero proposed to add Fortran tests to the LLVM Test Suite.<br>   [The tests will focus on language features, high-performance proxy programs, and OpenMP multi-threading and GPU offloading.](<a href="http://lists.llvm.org/pipermail/llvm-dev/2020-November/146873.html">http://lists.llvm.org/pipermail/llvm-dev/2020-November/146873.html</a>)<br>   The response seems overwhelmingly positive so far.<br><br>### Commits<br>*  (In-review) Ongoing work and discussion on<br>   [Adding convergence control operand bundle and intrinsics](<a href="https://reviews.llvm.org/D85603">https://reviews.llvm.org/D85603</a>) to LLVM IR.<br>*  [Clang Offload Bundler gained AMDGPU code object V4 ABI documentation.](<a href="https://reviews.llvm.org/D92434">https://reviews.llvm.org/D92434</a>)<br>*  Various fixes to AMDGPU assembler diagnostics: [\[1\]](<a href="https://reviews.llvm.org/D92084">https://reviews.llvm.org/D92084</a>),<br>   [\[2\]](<a href="https://reviews.llvm.org/D92115">https://reviews.llvm.org/D92115</a>), [\[3\]](<a href="https://reviews.llvm.org/D92654">https://reviews.llvm.org/D92654</a>).<br>*  (In-review) [Don't sink ptrtoint/inttoptr sequences into non-noop address space casts.](<a href="https://reviews.llvm.org/D92210">https://reviews.llvm.org/D92210</a>)<br>   This resolves an [illegal memory access with atomic shared memory JuliaGPU bug](<a href="https://github.com/JuliaGPU/CUDA.jl/issues/558">https://github.com/JuliaGPU/CUDA.jl/issues/558</a>).<br>*  [CUDA/HIP hostness function overloading fixes.](<a href="https://reviews.llvm.org/D80450">https://reviews.llvm.org/D80450</a>)<br>   A new `-fgpu-exclude-wrong-side-overloads` Clang flag controls the related behavior.<br><br>## MLIR<br><br>### Discussions<br><br>### Commits<br>*  [`gpu.allocate` and `gpu.deallocate` ops were added to runtime function calls.](<a href="https://reviews.llvm.org/D91698">https://reviews.llvm.org/D91698</a>)<br>*  The `GpuAsyncRegionPass` learned to<br>   [move `gpu.wait` ops from `async.execute` regions to its dependencies](<a href="https://reviews.llvm.org/D90346">https://reviews.llvm.org/D90346</a>).<br>   This prevents unnecessary host synchronization.<br><br>## External Compilers<br><br>Please submit pointers to your mailing lists, forums, or newsletters if you want your LLVM-<br>or MLIR-based GPU compiler project to be covered in future LLVM GPU News issues.<br><br>### CUDA<br><br>### JuliaGPU<br><br>### LLPC<br><br>### Mesa<br><br>### SYCL<br><div><br></div>-- <br><div dir="ltr" data-smartmail="gmail_signature"><div>Jakub Kuderski</div></div></div></div>