Skip to content

Commit 4d3ddf9

Browse files
Merge pull request #1847 from IntelPython/simplify-iteration-space-as-static-library
Simplify iteration space as static library
2 parents 5311078 + 3f6af83 commit 4d3ddf9

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2121
* Do not use Mambaforge variant of miniforge as deprecated [gh-1844](https://github.com/IntelPython/dpctl/pull/1844)
2222
* Use pybind11=2.13.6 [gh-1845](https://github.com/IntelPython/dpctl/pull/1845)
2323
* Remove unnecessary include in C++ header file [gh-1846](https://github.com/IntelPython/dpctl/pull/1846)
24+
* Build translation unit "simplify_iteration_space.cpp" compiled multiple times as a static library [gh-1847](https://github.com/IntelPython/dpctl/pull/1847)
2425

2526
## [0.18.0] - Sept. XX, 2024
2627

dpctl/tensor/CMakeLists.txt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,11 @@ set(_sorting_sources
116116
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/sorting/argsort.cpp
117117
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/sorting/searchsorted.cpp
118118
)
119+
set(_static_lib_sources
120+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
121+
)
119122
set(_tensor_impl_sources
120123
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_ctors.cpp
121-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
122124
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators.cpp
123125
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_and_cast_usm_to_usm.cpp
124126
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_numpy_ndarray_into_usm_ndarray.cpp
@@ -138,17 +140,14 @@ set(_tensor_impl_sources
138140
)
139141
set(_tensor_elementwise_impl_sources
140142
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_elementwise.cpp
141-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
142143
${_elementwise_sources}
143144
)
144145
set(_tensor_reductions_impl_sources
145146
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_reductions.cpp
146-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
147147
${_reduction_sources}
148148
)
149149
set(_tensor_sorting_impl_sources
150150
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_sorting.cpp
151-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
152151
${_sorting_sources}
153152
)
154153
set(_linalg_sources
@@ -157,7 +156,6 @@ set(_linalg_sources
157156
)
158157
set(_tensor_linalg_impl_sources
159158
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_linalg.cpp
160-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
161159
${_linalg_sources}
162160
)
163161
set(_accumulator_sources
@@ -168,40 +166,54 @@ ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators/cumulative_sum.cpp
168166
)
169167
set(_tensor_accumulation_impl_sources
170168
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_accumulation.cpp
171-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
172169
${_accumulator_sources}
173170
)
174171

172+
set(_static_lib_trgt simplify_iteration_space)
173+
174+
add_library(${_static_lib_trgt} STATIC ${_static_lib_sources})
175+
target_include_directories(${_static_lib_trgt} PRIVATE
176+
${Python_INCLUDE_DIRS} ${DPCTL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/include
177+
)
178+
target_link_libraries(${_static_lib_trgt} PRIVATE pybind11::headers ${Python_LIBRARIES})
179+
set_target_properties(${_static_lib_trgt} PROPERTIES POSITION_INDEPENDENT_CODE ON)
180+
175181
set(_py_trgts)
176182

177183
set(python_module_name _tensor_impl)
178184
pybind11_add_module(${python_module_name} MODULE ${_tensor_impl_sources})
179185
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_impl_sources})
186+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
180187
list(APPEND _py_trgts ${python_module_name})
181188

182189
set(python_module_name _tensor_elementwise_impl)
183190
pybind11_add_module(${python_module_name} MODULE ${_tensor_elementwise_impl_sources})
184191
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_elementwise_impl_sources})
192+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
185193
list(APPEND _py_trgts ${python_module_name})
186194

187195
set(python_module_name _tensor_reductions_impl)
188196
pybind11_add_module(${python_module_name} MODULE ${_tensor_reductions_impl_sources})
189197
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_reductions_impl_sources})
198+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
190199
list(APPEND _py_trgts ${python_module_name})
191200

192201
set(python_module_name _tensor_sorting_impl)
193202
pybind11_add_module(${python_module_name} MODULE ${_tensor_sorting_impl_sources})
194203
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_sorting_impl_sources})
204+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
195205
list(APPEND _py_trgts ${python_module_name})
196206

197207
set(python_module_name _tensor_linalg_impl)
198208
pybind11_add_module(${python_module_name} MODULE ${_tensor_linalg_impl_sources})
199209
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_linalg_impl_sources})
210+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
200211
list(APPEND _py_trgts ${python_module_name})
201212

202213
set(python_module_name _tensor_accumulation_impl)
203214
pybind11_add_module(${python_module_name} MODULE ${_tensor_accumulation_impl_sources})
204215
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_accumulation_impl_sources})
216+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
205217
list(APPEND _py_trgts ${python_module_name})
206218

207219
set(_clang_prefix "")

dpctl/tensor/libtensor/source/simplify_iteration_space.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
//===--------------------------------------------------------------------===//
2424

2525
#include "simplify_iteration_space.hpp"
26-
#include "dpctl4pybind11.hpp"
2726
#include "utils/strided_iters.hpp"
2827
#include <pybind11/pybind11.h>
2928
#include <vector>
@@ -37,9 +36,6 @@ namespace py_internal
3736

3837
namespace py = pybind11;
3938

40-
using dpctl::tensor::c_contiguous_strides;
41-
using dpctl::tensor::f_contiguous_strides;
42-
4339
void simplify_iteration_space_1(int &nd,
4440
const py::ssize_t *const &shape,
4541
std::vector<py::ssize_t> const &strides,

0 commit comments

Comments
 (0)