Skip to content

Commit 229f7a1

Browse files
Merge commit 'e9db1862b80633eaa4f8a61366fec16248eb2cb5'
2 parents 7b5daa4 + e9db186 commit 229f7a1

File tree

21 files changed

+282
-10
lines changed

21 files changed

+282
-10
lines changed

.github/workflows/integration-tests.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ jobs:
4141
if: github.event_name == 'pull_request'
4242
run: |
4343
echo "enable_integration=true" >> $GITHUB_ENV
44+
- name: Decide manual trigger integration test enablement
45+
# Always enable integration tests when manually triggered
46+
if: github.event_name == 'workflow_dispatch'
47+
run: |
48+
echo "enable_integration=true" >> $GITHUB_ENV
4449
- name: Checkout post-submit commits
4550
if: github.event_name == 'push'
4651
uses: actions/checkout@v4

.github/workflows/integration-tests.yml.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ jobs:
4545
run: |
4646
echo "enable_integration=true" >> $GITHUB_ENV
4747

48+
- name: Decide manual trigger integration test enablement
49+
# Always enable integration tests when manually triggered
50+
if: github.event_name == 'workflow_dispatch'
51+
run: |
52+
echo "enable_integration=true" >> $GITHUB_ENV
53+
4854
- name: Checkout post-submit commits
4955
if: github.event_name == 'push'
5056
uses: actions/checkout@v4

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@ if(TRITON_BUILD_PYTHON_MODULE)
233233
if (TRITON_BUILD_PROTON)
234234
add_subdirectory(third_party/proton)
235235
endif()
236+
# We always build proton dialect
237+
list(APPEND TRITON_PLUGIN_NAMES "proton")
238+
add_subdirectory(third_party/proton/dialect)
236239

237240
get_property(triton_libs GLOBAL PROPERTY TRITON_LIBS)
238241
get_property(triton_plugins GLOBAL PROPERTY TRITON_PLUGINS)
@@ -341,6 +344,7 @@ if(NOT TRITON_BUILD_PYTHON_MODULE)
341344
foreach(CODEGEN_BACKEND ${TRITON_CODEGEN_BACKENDS})
342345
add_subdirectory(third_party/${CODEGEN_BACKEND})
343346
endforeach()
347+
add_subdirectory(third_party/proton/dialect)
344348
endif()
345349
if(WIN32)
346350
option(CMAKE_USE_WIN32_THREADS_INIT "using WIN32 threads" ON)

bin/RegisterTritonDialects.h

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "amd/include/Dialect/TritonAMDGPU/IR/Dialect.h"
1313
#include "amd/include/TritonAMDGPUTransforms/Passes.h"
1414
#include "third_party/nvidia/include/Dialect/NVGPU/IR/Dialect.h"
15+
#include "third_party/proton/dialect/include/Dialect/Proton/IR/Dialect.h"
1516
#include "triton/Dialect/Triton/IR/Dialect.h"
1617
#include "triton/Dialect/TritonGPU/IR/Dialect.h"
1718
#include "triton/Dialect/TritonNvidiaGPU/IR/Dialect.h"
@@ -93,14 +94,15 @@ inline void registerTritonDialects(mlir::DialectRegistry &registry) {
9394
mlir::triton::registerTritonAMDGPULowerInstructionSchedHints();
9495

9596
// TODO: register Triton & TritonGPU passes
96-
registry.insert<mlir::triton::TritonDialect, mlir::cf::ControlFlowDialect,
97-
mlir::triton::nvidia_gpu::TritonNvidiaGPUDialect,
98-
mlir::triton::gpu::TritonGPUDialect, mlir::math::MathDialect,
99-
mlir::arith::ArithDialect, mlir::scf::SCFDialect,
100-
mlir::gpu::GPUDialect, mlir::LLVM::LLVMDialect,
101-
mlir::NVVM::NVVMDialect, mlir::triton::nvgpu::NVGPUDialect,
102-
mlir::triton::amdgpu::TritonAMDGPUDialect,
103-
mlir::ROCDL::ROCDLDialect,
104-
mlir::triton::gpu::intel::TritonIntelGPUDialect,
105-
mlir::triton::TritonGEN::TritonGENDialect>();
97+
registry
98+
.insert<mlir::triton::TritonDialect, mlir::cf::ControlFlowDialect,
99+
mlir::triton::nvidia_gpu::TritonNvidiaGPUDialect,
100+
mlir::triton::gpu::TritonGPUDialect, mlir::math::MathDialect,
101+
mlir::arith::ArithDialect, mlir::scf::SCFDialect,
102+
mlir::gpu::GPUDialect, mlir::LLVM::LLVMDialect,
103+
mlir::NVVM::NVVMDialect, mlir::triton::nvgpu::NVGPUDialect,
104+
mlir::triton::amdgpu::TritonAMDGPUDialect,
105+
mlir::triton::proton::ProtonDialect, mlir::ROCDL::ROCDLDialect,
106+
mlir::triton::gpu::intel::TritonIntelGPUDialect,
107+
mlir::triton::TritonGEN::TritonGENDialect>();
106108
}

test/Proton/ops.mlir

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// RUN: triton-opt --split-input-file %s -cse -canonicalize | FileCheck %s
2+
3+
module {
4+
// CHECK-LABEL: proton_record
5+
tt.func @proton_record() {
6+
// CHECK: proton.record() {isStart = true, regionId = 1 : i32}
7+
// CHECK-NEXT: proton.record() {isStart = false, regionId = 1 : i32}
8+
// CHECK-NEXT: tt.return
9+
proton.record() {isStart = true, regionId = 1 : i32}
10+
proton.record() {isStart = false, regionId = 1 : i32}
11+
tt.return
12+
}
13+
} // end module
14+
15+
// -----
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
2+
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
3+
add_subdirectory(include)
4+
add_subdirectory(lib)
5+
if(TRITON_BUILD_PYTHON_MODULE)
6+
add_triton_plugin(TritonProton ${CMAKE_CURRENT_SOURCE_DIR}/triton_proton.cc LINK_LIBS ProtonIR)
7+
endif()
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(Dialect)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(Proton)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(IR)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
set(MLIR_BINARY_DIR ${CMAKE_BINARY_DIR})
2+
3+
set(LLVM_TARGET_DEFINITIONS ProtonOps.td)
4+
mlir_tablegen(Dialect.h.inc -gen-dialect-decls -dialect=proton)
5+
mlir_tablegen(Dialect.cpp.inc -gen-dialect-defs -dialect=proton)
6+
mlir_tablegen(OpsConversions.inc -gen-llvmir-conversions)
7+
mlir_tablegen(Ops.h.inc -gen-op-decls)
8+
mlir_tablegen(Ops.cpp.inc -gen-op-defs)
9+
mlir_tablegen(OpsEnums.h.inc -gen-enum-decls)
10+
mlir_tablegen(OpsEnums.cpp.inc -gen-enum-defs)
11+
add_mlir_doc(ProtonDialect ProtonDialect dialects/ -gen-dialect-doc)
12+
add_mlir_doc(ProtonOps ProtonOps dialects/ -gen-op-doc)
13+
add_public_tablegen_target(ProtonTableGen)
14+
15+
set(LLVM_TARGET_DEFINITIONS ProtonAttrDefs.td)
16+
mlir_tablegen(ProtonAttrDefs.h.inc -gen-attrdef-decls)
17+
mlir_tablegen(ProtonAttrDefs.cpp.inc -gen-attrdef-defs)
18+
add_public_tablegen_target(ProtonAttrDefsIncGen)

0 commit comments

Comments
 (0)