diff --git a/third_party/intel/backend/compiler.py b/third_party/intel/backend/compiler.py index 86948112b9..a13834f991 100644 --- a/third_party/intel/backend/compiler.py +++ b/third_party/intel/backend/compiler.py @@ -245,6 +245,8 @@ def make_ttgir(mod, metadata, opt, properties): passes.common.add_cse(pm) passes.ttgpuir.add_prefetch(pm) passes.ttgpuir.add_optimize_dot_operands(pm, True) + if os.getenv("TRITON_INTEL_OPTIMIZE_REDUCTION_LOCALITY", "0") == 1: + intel.passes.ttgpuir.add_optimize_reduction_locality(pm) intel.passes.ttgpuir.add_remove_layout_conversions(pm) intel.passes.ttgpuir.add_reduce_data_duplication(pm) passes.ttgpuir.add_reorder_instructions(pm) diff --git a/third_party/intel/triton_xpu.cc b/third_party/intel/triton_xpu.cc index 201ec17a74..82d405fce0 100644 --- a/third_party/intel/triton_xpu.cc +++ b/third_party/intel/triton_xpu.cc @@ -99,6 +99,8 @@ void init_triton_intel_passes_ttgpuir(py::module &&m) { gpu::intel::createTritonIntelGPUReduceDataDuplication); ADD_PASS_WRAPPER_0("add_materialize_block_pointer", gpu::intel::createTritonIntelGPUMaterializeBlockPointer); + ADD_PASS_WRAPPER_0("add_optimize_reduction_locality", + gpu::intel::createTritonIntelGPUOptimizeReductionLocality); } void init_triton_intel(py::module &&m) {