diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b80890cb..ff4b9ceee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ if(WIN32) add_subdirectory(deps/dlfcn-win32/src ${CMAKE_BINARY_DIR}/dlfcn-win32) endif() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_FORMAT_MACROS -std=gnu++17") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_FORMAT_MACROS -fPIC -std=gnu++17") ########## @@ -162,7 +162,7 @@ list(APPEND CMAKE_MODULE_PATH ${LLVM_LIBRARY_DIR}/cmake/mlir) include(TableGen) # required by AddMLIR include(AddLLVM) include(AddMLIR) -include(HandleLLVMOptions) # human-friendly error message +# include(HandleLLVMOptions) # human-friendly error message include_directories(${MLIR_INCLUDE_DIRS}) include_directories(${PROJECT_SOURCE_DIR}/include) @@ -174,18 +174,15 @@ add_subdirectory(lib) add_library(triton SHARED ${PYTHON_SRC}) -find_package(PythonLibs REQUIRED) +# find_package(PythonLibs REQUIRED) target_link_libraries(triton + ${PYTHON_LIBRARIES} TritonIR TritonDriver - # TritonCodeGen - # optimizations MLIRPass MLIRTransforms - - ${PYTHON_LIBRARIES} ) target_link_options(triton PRIVATE ${LLVM_LDFLAGS}) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 589793199..9da937000 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(triton/ir) +add_subdirectory(triton/Dialect) diff --git a/include/triton/Dialect/CMakeLists.txt b/include/triton/Dialect/CMakeLists.txt new file mode 100644 index 000000000..8eea29534 --- /dev/null +++ b/include/triton/Dialect/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(Triton) \ No newline at end of file diff --git a/include/triton/ir/CMakeLists.txt b/include/triton/Dialect/Triton/CMakeLists.txt similarity index 100% rename from include/triton/ir/CMakeLists.txt rename to include/triton/Dialect/Triton/CMakeLists.txt diff --git a/include/triton/ir/Dialect.h b/include/triton/Dialect/Triton/Dialect.h similarity index 63% rename from include/triton/ir/Dialect.h rename to include/triton/Dialect/Triton/Dialect.h index 4c225a7bc..0cb893e2f 100644 --- a/include/triton/ir/Dialect.h +++ b/include/triton/Dialect/Triton/Dialect.h @@ -1,7 +1,6 @@ #ifndef TRITON_IR_DIALECT_H_ #define TRITON_IR_DIALECT_H_ -#include "triton/ir/Traits.h" #include "mlir/IR/BuiltinOps.h" #include "mlir/IR/Dialect.h" @@ -9,11 +8,11 @@ #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/SCF/SCF.h" -#include "triton/ir/Dialect.h.inc" - -#include "triton/ir/OpsEnums.h.inc" +#include "triton/Dialect/Triton/Traits.h" +#include "triton/Dialect/Triton/Dialect.h.inc" +#include "triton/Dialect/Triton/OpsEnums.h.inc" #define GET_OP_CLASSES -#include "triton/ir/Ops.h.inc" +#include "triton/Dialect/Triton/Ops.h.inc" #endif // TRITON_IR_DIALECT_H_ diff --git a/include/triton/ir/Traits.h b/include/triton/Dialect/Triton/Traits.h similarity index 100% rename from include/triton/ir/Traits.h rename to include/triton/Dialect/Triton/Traits.h diff --git a/include/triton/ir/TritonDialect.td b/include/triton/Dialect/Triton/TritonDialect.td similarity index 100% rename from include/triton/ir/TritonDialect.td rename to include/triton/Dialect/Triton/TritonDialect.td diff --git a/include/triton/ir/TritonOps.td b/include/triton/Dialect/Triton/TritonOps.td similarity index 100% rename from include/triton/ir/TritonOps.td rename to include/triton/Dialect/Triton/TritonOps.td diff --git a/include/triton/ir/Types.h b/include/triton/Dialect/Triton/Types.h similarity index 79% rename from include/triton/ir/Types.h rename to include/triton/Dialect/Triton/Types.h index 2f94cf573..dad9ae091 100644 --- a/include/triton/ir/Types.h +++ b/include/triton/Dialect/Triton/Types.h @@ -5,6 +5,6 @@ #include "mlir/IR/Types.h" #define GET_TYPEDEF_CLASSES -#include "triton/ir/Types.h.inc" +#include "triton/Dialect/Triton/Types.h.inc" #endif // TRITON_IR_TYPES_H_ diff --git a/include/triton/driver/error.h b/include/triton/driver/error.h index 6502b7493..c3168c1ad 100755 --- a/include/triton/driver/error.h +++ b/include/triton/driver/error.h @@ -19,7 +19,8 @@ namespace triton namespace nvrtc { -#define TRITON_CREATE_NVRTC_EXCEPTION(name, msg) class name: public std::exception { public: const char * what() const throw(){ return "NVRTC: Error- " msg; } } +#define TRITON_CREATE_NVRTC_EXCEPTION(name, msg) \ +class name: public std::exception { public: const char * what() const throw() override { return "NVRTC: Error- " msg; } } TRITON_CREATE_NVRTC_EXCEPTION(out_of_memory ,"out of memory"); TRITON_CREATE_NVRTC_EXCEPTION(program_creation_failure ,"program creation failure"); @@ -38,7 +39,8 @@ namespace triton { class base: public std::exception{}; -#define TRITON_CREATE_CUDA_EXCEPTION(name, msg) class name: public base { public:const char * what() const throw(){ return "CUDA: Error- " msg; } } +#define TRITON_CREATE_CUDA_EXCEPTION(name, msg) \ +class name: public base { public:const char * what() const throw() override { return "CUDA: Error- " msg; } } TRITON_CREATE_CUDA_EXCEPTION(invalid_value ,"invalid value"); @@ -106,7 +108,8 @@ namespace triton { class base: public std::exception{}; -#define TRITON_CREATE_CUBLAS_EXCEPTION(name, msg) class name: public base { public: const char * what() const throw(){ return "CUBLAS: Error- " msg; } } +#define TRITON_CREATE_CUBLAS_EXCEPTION(name, msg) \ +class name: public base { public: const char * what() const throw() override { return "CUBLAS: Error- " msg; } } TRITON_CREATE_CUBLAS_EXCEPTION(not_initialized ,"not initialized"); TRITON_CREATE_CUBLAS_EXCEPTION(alloc_failed ,"alloc failed"); @@ -124,7 +127,8 @@ namespace triton namespace cudnn { -#define TRITON_CREATE_CUDNN_EXCEPTION(name, msg) class name: public std::exception { public: const char * what() const throw(){ return "CUDNN: Error- " msg; } } +#define TRITON_CREATE_CUDNN_EXCEPTION(name, msg) \ +class name: public std::exception { public: const char * what() const throw() override { return "CUDNN: Error- " msg; } } TRITON_CREATE_CUDNN_EXCEPTION(not_initialized ,"not initialized"); TRITON_CREATE_CUDNN_EXCEPTION(alloc_failed ,"allocation failed"); @@ -148,7 +152,8 @@ namespace triton { class base: public std::exception{}; -#define TRITON_CREATE_HIP_EXCEPTION(name, msg) class name: public base { public:const char * what() const throw(){ return "HIP: Error- " msg; } } +#define TRITON_CREATE_HIP_EXCEPTION(name, msg) \ +class name: public base { public:const char * what() const throw() override { return "HIP: Error- " msg; } } TRITON_CREATE_HIP_EXCEPTION(invalid_value ,"invalid value"); diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index eade8021b..44cd839e6 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,4 +1,3 @@ # add_subdirectory(codegen) add_subdirectory(driver) -add_subdirectory(ir) -# add_subdirectory(transforms) +add_subdirectory(Dialect) diff --git a/lib/Dialect/CMakeLists.txt b/lib/Dialect/CMakeLists.txt new file mode 100644 index 000000000..5e601271e --- /dev/null +++ b/lib/Dialect/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(Triton) diff --git a/lib/ir/CMakeLists.txt b/lib/Dialect/Triton/CMakeLists.txt similarity index 100% rename from lib/ir/CMakeLists.txt rename to lib/Dialect/Triton/CMakeLists.txt diff --git a/lib/ir/Dialect.cpp b/lib/Dialect/Triton/Dialect.cpp similarity index 66% rename from lib/ir/Dialect.cpp rename to lib/Dialect/Triton/Dialect.cpp index bd5dbea78..33188f157 100644 --- a/lib/ir/Dialect.cpp +++ b/lib/Dialect/Triton/Dialect.cpp @@ -1,5 +1,5 @@ -#include "triton/ir/Dialect.h" -#include "triton/ir/Types.h" +#include "triton/Dialect/Triton/Dialect.h" +#include "triton/Dialect/Triton/Types.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/ADT/TypeSwitch.h" @@ -8,7 +8,7 @@ #include "mlir/IR/DialectImplementation.h" -#include "triton/ir/Dialect.cpp.inc" +#include "triton/Dialect/Triton/Dialect.cpp.inc" using namespace mlir; using namespace mlir::triton; @@ -18,7 +18,7 @@ void TritonDialect::initialize() { addOperations< #define GET_OP_LIST -#include "triton/ir/Ops.cpp.inc" +#include "triton/Dialect/Triton/Ops.cpp.inc" >(); // We can also add interface here. diff --git a/lib/ir/Ops.cpp b/lib/Dialect/Triton/Ops.cpp similarity index 95% rename from lib/ir/Ops.cpp rename to lib/Dialect/Triton/Ops.cpp index 41975bcd4..ec64927b3 100644 --- a/lib/ir/Ops.cpp +++ b/lib/Dialect/Triton/Ops.cpp @@ -1,5 +1,5 @@ -#include "triton/ir/Dialect.h" -#include "triton/ir/Types.h" +#include "triton/Dialect/Triton/Dialect.h" +#include "triton/Dialect/Triton/Types.h" #include "mlir/IR/Builders.h" #include "mlir/IR/BuiltinAttributes.h" @@ -38,10 +38,10 @@ static Type getPointerTypeFromTensor(Type type) { } #define GET_OP_CLASSES -#include "triton/ir/Ops.cpp.inc" +#include "triton/Dialect/Triton/Ops.cpp.inc" // enum attribute definitions -#include "triton/ir/OpsEnums.cpp.inc" +#include "triton/Dialect/Triton/OpsEnums.cpp.inc" namespace mlir { namespace triton { diff --git a/lib/ir/Types.cpp b/lib/Dialect/Triton/Types.cpp similarity index 82% rename from lib/ir/Types.cpp rename to lib/Dialect/Triton/Types.cpp index ff2db0b1b..5aa8c8773 100644 --- a/lib/ir/Types.cpp +++ b/lib/Dialect/Triton/Types.cpp @@ -1,5 +1,5 @@ -#include "triton/ir/Dialect.h" -#include "triton/ir/Types.h" +#include "triton/Dialect/Triton/Dialect.h" +#include "triton/Dialect/Triton/Types.h" #include "mlir/IR/DialectImplementation.h" // required by `Types.cpp.inc` #include "llvm/ADT/TypeSwitch.h" // required by `Types.cpp.inc` @@ -7,7 +7,7 @@ using namespace mlir; using namespace mlir::triton; #define GET_TYPEDEF_CLASSES -#include "triton/ir/Types.cpp.inc" +#include "triton/Dialect/Triton/Types.cpp.inc" //===----------------------------------------------------------------------===// // Triton Dialect @@ -15,7 +15,7 @@ using namespace mlir::triton; void TritonDialect::registerTypes() { addTypes< #define GET_TYPEDEF_LIST -#include "triton/ir/Types.cpp.inc" +#include "triton/Dialect/Triton/Types.cpp.inc" >(); } diff --git a/python/src/triton.cc b/python/src/triton.cc index c6c7b3862..e69b0842a 100644 --- a/python/src/triton.cc +++ b/python/src/triton.cc @@ -12,8 +12,8 @@ #include "mlir/Transforms/Passes.h" -#include "triton/ir/Dialect.h" -#include "triton/ir/Types.h" +#include "triton/Dialect/Triton/Dialect.h" +#include "triton/Dialect/Triton/Types.h" #include "llvm/IR/Module.h" #include "llvm/IR/LegacyPassManager.h"