[llvm-dev] LLVM GPU News Issue #6, February 19 2021
Jakub (Kuba) Kuderski via llvm-dev
llvm-dev at lists.llvm.org
Fri Feb 19 08:41:45 PST 2021
The sixth issue of LLVM GPU News, a bi-weekly newsletter on all
the GPU things under the LLVM umbrella, is now available at:
I'm also pasting the content below, in case you prefer to read in your
# LLVM GPU News Issue #6, February 19 2021
Authors: Jakub Kuderski, Lei Zhang, Johannes Doerfert
Welcome to the sixth issue of LLVM GPU News, a bi-weekly newsletter on all
the GPU things under the LLVM umbrella.
This issue covers the period from February 5 to February 18 2021.
We welcome your feedback and suggestions. Let us know if we missed anything
interesting, or want us to bring attention to your (sub)project, revisions
under review, or proposals. Please see the bottom of the page for details
on how to submit suggestions and contribute.
## Industry News and Conference Talks
* Vulkan, a cross-platform graphics API, is [five years old now](
* In another Apple M1 GPU tinkering effort, Dougall Johnson published an
in-progress doc attempting to [explain the M1 GPU architecture](
https://dougallj.github.io/applegpu/docs.html). The project [repository
contains various tools](https://github.com/dougallj/applegpu), including an
assembler, disassembler, emulator, and a test suite.
## LLVM and Clang
* David Blaikie is [looking for volunteers](
GPU and/or LLVM middle-end background to help review the ["Abstracting over
SSA form IRs to implement generic analyses"](
proposal. One of the main uses of the proposed abstractions is supposed to
be the Divergence Analysis.
* Sameer Sahasrabuddhe continues the attempts to [enable Divergence
Analysis](https://reviews.llvm.org/D96615) with the New Pass Manager. Alina
Sbirlea [pointed out that there are two feasible ways](
make the `SimpleLoopUnswitch` pass work: either disable non-trivial
unswitching for targets with divergence, or compute Diverge Analysis
results within the pass.
* Fixes to [AMDGPU maximum memory scope for scratch, LDS, and GDS](
https://reviews.llvm.org/D96643) address spaces.
* [Support for the AMDGPU `gfx90a` target](https://reviews.llvm.org/D96906)
was posted, but may have been committed prematurely.
* CUDA/HIP [option for specifying compilation unit ID](
* (In-review) HIP option to enable [sanitizer support for the AMDGPU
target](https://reviews.llvm.org/D96835), `-fgpu-sanitize`. This is
experimental and off by default.
* (In-review) A new [clspv target for libclc](
is an open-source OpenCL C to Vulkan SPIR-V compiler.
* NVVM/ROCDL kernel function conversions [now rely on](
https://reviews.llvm.org/D96591) target-specific attributes for better
* NVVM/ROCDL to LLVM IR conversions [now adopt](
https://reviews.llvm.org/D96592) the interface-based LLVM translation.
* In SPIR-V dialect, more [types](https://reviews.llvm.org/D96169) and
[ops](https://reviews.llvm.org/D96527) were defined to support graphics use
* More [patterns](https://reviews.llvm.org/D96042) were added to convert
vector ops to SPIR-V ops.
## OpenMP (Target Offloading)
* Konstantin Sidorov is interested in Google Summer of Code [project ideas
related to Machine Learning-assisted compiler optimizations](
Johannes Doerfert [suggested a predictor](
grid/block/thread block size for OpenMP GPU kernels.
* NVIDIA devices will from now on [require CUDA 9.0 or higher](
* We will natively [support CUDA 11.1 and 11.2](
* All target directives, not only target regions, will now utilize
[asynchronous actions](https://reviews.llvm.org/D96379) if the plugin
supports them (which includes the CUDA plugin).
* The [NVIDIA device runtime](https://reviews.llvm.org/D94745) and the
[AMDGPU device runtime](https://reviews.llvm.org/D96533) are now build as
C++ with OpenMP code, not as CUDA/HIP anymore.
* The CUDA plugin can be built [without having CUDA installed](
https://reviews.llvm.org/D95155) on a system (or known to clang), this
should allow us to distribute LLVM with OpenMP offload support more easily.
* Various bugs have been fixed, including but not limited to:
- [PR49158](https://llvm.org/PR49158) fixed by allowing unused
functions in declare target regions if they are [not emitted](
- [PR49207](https://llvm.org/PR49207) fixed by avoiding stack
locations in [asynchronous actions](https://reviews.llvm.org/D96667).
## External Compilers
* llvmpipe, a CPU OpenGL implementation, landed [support for more SPIR-V
bringing it closer to full GL4.6 support.
* Khronos released the final version of the [SYCL 2020 spec](
https://www.khronos.org/blog/sycl-2020-what-do-you-need-to-know). SYCL 2020
is based on C++17 and contains [over 40 new features](
including Unified Shared Memory, built-in parallel reduction operations,
atomic operations with C++ atomics semantics.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev