11cmake_minimum_required (VERSION 3.18.2)
22project (ddptensor VERSION 1.0)
33
4- set (LLVM_PATH ${PROJECT_SOURCE_DIR} /mlir-llvm)
54if (DEFINED ENV{CONDA_PREFIX})
65 set (CONDA_PREFIX $ENV{CONDA_PREFIX} )
76else ()
87 set (CONDA_PREFIX UNSET)
98endif ()
109
1110if (DEFINED ENV{MKLROOT})
12- set (MKLROOT ENV{MKLROOT})
11+ set (MKL_ROOT $ ENV{MKLROOT} )
1312else ()
14- set (MKLROOT ${CONDA_PREFIX} )
13+ set (MKL_ROOT ${CONDA_PREFIX} )
1514endif ()
1615if (DEFINED ENV{TBBROOT})
17- set (TBBROOT ENV{TBBROOT})
16+ set (TBB_ROOT $ ENV{TBBROOT} )
1817else ()
19- set (TBBROOT ${CONDA_PREFIX} )
18+ set (TBB_ROOT ${CONDA_PREFIX} )
2019endif ()
21-
20+ if (DEFINED ENV{MLIRROOT})
21+ set (MLIR_ROOT $ENV{MLIRROOT} )
22+ else ()
23+ set (MLIR_ROOT ${CONDA_PREFIX} )
24+ endif ()
25+ set (LLVM_ROOT ${MLIR_ROOT} )
26+ if (DEFINED ENV{IMEXROOT})
27+ set (IMEX_ROOT $ENV{IMEXROOT} )
28+ else ()
29+ set (IMEX_ROOT ${CONDA_PREFIX} )
30+ endif ()
31+ message ("ll ${IMEX_ROOT} " )
2232if (MKLROOT STREQUAL UNSET OR TBBROOT STREQUAL UNSET)
2333 message (FATAL_ERROR "MKLROOT and TBBROOT not set (nor CONDA_PREFIX)" )
2434endif ()
@@ -34,20 +44,24 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
3444
3545# ===============
3646# Deps
37- # ===============
38- list (APPEND CMAKE_PREFIX_PATH ${PROJECT_SOURCE_DIR} /third_party/mlir-llvm)
39-
40- # Find Python3 and NumPy
47+ # ===============
48+ # Find dependent packages like IMEX, Python3 and NumPy
4149find_package (Python3 COMPONENTS Interpreter Development.Module NumPy REQUIRED)
4250find_package (pybind11 CONFIG)
4351find_package (MPI REQUIRED)
44- find_package (LLVM REQUIRED CONFIG)
45- find_package (MLIR REQUIRED CONFIG)
52+ find_package (LLVM REQUIRED CONFIG NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
53+ message (STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR} " )
54+ find_package (MLIR REQUIRED CONFIG NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
55+ message (STATUS "Using MLIRConfig.cmake in: ${MLIR_DIR} " )
56+ find_package (IMEX REQUIRED CONFIG)
57+ message (STATUS "Using IMEXConfig.cmake in: ${IMEX_DIR} " )
4658
59+ list (APPEND CMAKE_MODULE_PATH "${IMEX_CMAKE_DIR} " )
4760list (APPEND CMAKE_MODULE_PATH "${MLIR_CMAKE_DIR} " )
4861list (APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR} " )
49- include (AddLLVM)
50- include (AddMLIR)
62+ #include(AddLLVM)
63+ #include(AddMLIR)
64+ #include(AddIMEX)
5165
5266#find_package(OpenMP)
5367
@@ -85,23 +99,61 @@ target_include_directories(_ddptensor PRIVATE
8599 $ENV{MKLROOT} /include
86100 $ENV{TBBROOT} /include
87101 ${pybind11_INCLUDE_DIRS}
88- ${MLIR_INCLUDE_DIRS} )
102+ ${MLIR_INCLUDE_DIRS}
103+ ${IMEX_INCLUDE_DIRS} )
104+
105+ if (CMAKE_SYSTEM_NAME STREQUAL Linux)
106+ target_link_options (_ddptensor PRIVATE "LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR} /export.txt" )
107+ endif ()
89108
90109#target_compile_options(_ddptensor PRIVATE -fopenmp)
110+ get_property (dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
111+ get_property (conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
112+ get_property (mlir_all_libs GLOBAL PROPERTY MLIR_ALL_LIBS)
113+ get_property (imex_all_libs GLOBAL PROPERTY IMEX_ALL_LIBS)
114+
115+ #llvm_update_compile_flags(_ddpttensor)
116+ target_link_directories (_ddptensor PRIVATE
117+ ${CONDA_PREFIX} /lib
118+ ${IMEX_INSTALL_PREFIX} /lib
119+ )
120+
121+ message (${imex_all_libs} )
91122target_link_libraries (_ddptensor PRIVATE
92123 ${MPI_C_LIBRARIES}
93124 ${MKL_LIBRARIES}
94- LLVM${LLVM_NATIVE_ARCH} CodeGen
95- LLVM${LLVM_NATIVE_ARCH} Desc
96- LLVMTarget
97- MLIRIR
98- MLIRLLVMIR
99- MLIRLLVMToLLVMIRTranslation
100- MLIRTransforms
101- MLIRFuncTransforms
102- MLIRLinalgTransforms
103- MLIRLinalgToLLVM
104- MLIRMathToLLVM
105- MLIRMathToLibm
106- MLIRTensorTransforms
107- MLIRReconcileUnrealizedCasts)
125+ ${mlir_all_libs}
126+ ${imex_all_libs}
127+ MLIROptLib
128+ )
129+ # LLVM${LLVM_NATIVE_ARCH}CodeGen
130+ # LLVM${LLVM_NATIVE_ARCH}Desc
131+ # LLVMTarget
132+ # MLIRAnalysis
133+ # MLIRCallInterfaces
134+ # MLIRCastInterfaces
135+ # MLIRExecutionEngine
136+ # MLIRFuncTransforms
137+ # MLIRGPUToGPURuntimeTransforms
138+ # MLIRGPUToSPIRV
139+ # MLIRIR
140+ # MLIRLLVMCommonConversion
141+ # MLIRLLVMIR
142+ # MLIRLLVMToLLVMIRTranslation
143+ # MLIRLinalgToLLVM
144+ # MLIRLinalgTransforms
145+ # MLIRMathToLLVM
146+ # MLIRMathToLibm
147+ # MLIRMemRef
148+ # MLIRParser
149+ # MLIRPass
150+ # MLIRReconcileUnrealizedCasts
151+ # MLIRSCFToGPU
152+ # MLIRSPIRVSerialization
153+ # MLIRSPIRVTransforms
154+ # MLIRSideEffectInterfaces
155+ # MLIRTargetLLVMIRExport
156+ # MLIRTensorTransforms
157+ # MLIRTransforms
158+ # MLIRAffineToStandard
159+ # MLIRAffineTransforms)
0 commit comments