Welcome to the second issue of LLVM GPU News, a bi-weekly newsletter on all the GPU things under the LLVM umbrella. This issue covers the period from December 11 to December 24 2020.

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

  • Portable Computing Language (PoCL) v1.6 was released. The release provides Clang/LLVM 11 support, in addition to the existing compatibility down to LLVM 6.0. CUDA backed gained several performance optimizations, including use of 32-bit pointer arithmetic for local memory, use of static CUDA memory blocks for __local blocks and function arguments, and loop unrolling heuristic tweaks.
  • AMD released ROCm v4.0 with support for the new MI100 accelerator (HPC GPU) and its new CDNA architecture. CDNA is based on the previous GCN architecture and backward-compatible with it.

LLVM and Clang

Discussions

Commits

MLIR

Discussions

  • George Mitenkov posted an RFC on converting multi-threaded SPIR-V to the LLVM dialect. After the initial work during the GSoC project that focused on single-threaded code, the next step is to handle multi-threaded GPU kernels with synchronization so that they can be compiled for CPU execution. George proposes to map each workgroup to a CPU thread and subgroups/invocations to SIMD vector operations. There are no replies under the thread as of writing.

Commits

External Compilers

Please submit pointers to your mailing lists, forums, or newsletters if you want your LLVM- or MLIR-based GPU compiler project to be covered in future LLVM GPU News issues.

CUDA

JuliaGPU

LLPC

  • Steven Perron added support for multi-table descriptor sets. This allows for experimentation with more flexible binding models than in the Vulkan API that currently guarantees that all resources in the same descriptor set will be in the same descriptor table. The patch lifts this assumption.

Mesa

  • Michael Tang committed initial code for a new spirv_to_dxil library. The plan is to use the Mesa code for WebGPU shader compilation for DirectX, using the following translation path: WGSL (WebGPU Shading Language) -> SPIR-V (IR from Khronos) -> NIR (Mesa’s IR) -> DXIL (DirectX Intermediate Language).

SYCL