Skip to content
This repository was archived by the owner on Jan 26, 2026. It is now read-only.

Commit 88e72e0

Browse files
committed
using imex and ptensor
1 parent dc7ef09 commit 88e72e0

File tree

4 files changed

+246
-69
lines changed

4 files changed

+246
-69
lines changed

CMakeLists.txt

Lines changed: 81 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,34 @@
11
cmake_minimum_required(VERSION 3.18.2)
22
project(ddptensor VERSION 1.0)
33

4-
set(LLVM_PATH ${PROJECT_SOURCE_DIR}/mlir-llvm)
54
if(DEFINED ENV{CONDA_PREFIX})
65
set(CONDA_PREFIX $ENV{CONDA_PREFIX})
76
else()
87
set(CONDA_PREFIX UNSET)
98
endif()
109

1110
if(DEFINED ENV{MKLROOT})
12-
set(MKLROOT ENV{MKLROOT})
11+
set(MKL_ROOT $ENV{MKLROOT})
1312
else()
14-
set(MKLROOT ${CONDA_PREFIX})
13+
set(MKL_ROOT ${CONDA_PREFIX})
1514
endif()
1615
if(DEFINED ENV{TBBROOT})
17-
set(TBBROOT ENV{TBBROOT})
16+
set(TBB_ROOT $ENV{TBBROOT})
1817
else()
19-
set(TBBROOT ${CONDA_PREFIX})
18+
set(TBB_ROOT ${CONDA_PREFIX})
2019
endif()
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}")
2232
if(MKLROOT STREQUAL UNSET OR TBBROOT STREQUAL UNSET)
2333
message(FATAL_ERROR "MKLROOT and TBBROOT not set (nor CONDA_PREFIX)")
2434
endif()
@@ -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
4149
find_package(Python3 COMPONENTS Interpreter Development.Module NumPy REQUIRED)
4250
find_package(pybind11 CONFIG)
4351
find_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}")
4760
list(APPEND CMAKE_MODULE_PATH "${MLIR_CMAKE_DIR}")
4861
list(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})
91122
target_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)

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ def build_cmake(self, ext):
3232
config = 'Debug'# if self.debug else 'RelWithDebInfo' #'Release'
3333
cmake_args = [
3434
'-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=' + str(extdir.parent.absolute()),
35-
'-DCMAKE_BUILD_TYPE=' + config
35+
'-DCMAKE_BUILD_TYPE=' + config,
36+
'-DCMAKE_VERBOSE_MAKEFILE=ON'
3637
]
3738

3839
# example of build args

0 commit comments

Comments
 (0)