[all-commits] [llvm/llvm-project] 9ab346: [mlir] add a simple gpu barrier elimination mechanism

ftynse via All-commits all-commits at lists.llvm.org
Fri Jul 7 11:52:06 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9ab34689b08ee66f0868d38456fccc8b80d1b656
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2023-07-07 (Fri, 07 Jul 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.td
    M mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt
    M mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
    A mlir/test/Dialect/GPU/barrier-elimination.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  [mlir] add a simple gpu barrier elimination mechanism

GPU code generation, and specifically the shared memory copy insertion
may introduce spurious barriers guarding read-after-read dependencies or
read-after-write on non-aliasing data, which degrades performance due to
unnecessary synchronization. Add a pattern and transform op that removes
such barriers by analyzing memory effects that the barrier actually
guards that are not also guarded by other barriers. The code is adapted
from the Polygeist incubator project.

Co-authored-by: William Moses <gh at wsmoses.com>
Co-authored-by: Ivan Radanov Ivanov <ivanov.i.aa at m.titech.ac.jp>

Reviewed By: nicolasvasilache, wsmoses

Differential Revision: https://reviews.llvm.org/D154720

More information about the All-commits mailing list