From db1d5c7ed4707f39851a864dd0d09cf010dbb13e Mon Sep 17 00:00:00 2001 From: Oleksandr Pavlyk Date: Mon, 23 Sep 2024 05:50:11 -0500 Subject: [PATCH 1/3] Remove unused qualifiers, and unused include --- dpctl/tensor/libtensor/source/simplify_iteration_space.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/dpctl/tensor/libtensor/source/simplify_iteration_space.cpp b/dpctl/tensor/libtensor/source/simplify_iteration_space.cpp index 1371770937..52a086c573 100644 --- a/dpctl/tensor/libtensor/source/simplify_iteration_space.cpp +++ b/dpctl/tensor/libtensor/source/simplify_iteration_space.cpp @@ -23,7 +23,6 @@ //===--------------------------------------------------------------------===// #include "simplify_iteration_space.hpp" -#include "dpctl4pybind11.hpp" #include "utils/strided_iters.hpp" #include #include @@ -37,9 +36,6 @@ namespace py_internal namespace py = pybind11; -using dpctl::tensor::c_contiguous_strides; -using dpctl::tensor::f_contiguous_strides; - void simplify_iteration_space_1(int &nd, const py::ssize_t *const &shape, std::vector const &strides, From a84c41e48c10236032ddea40628979f269c508dd Mon Sep 17 00:00:00 2001 From: Oleksandr Pavlyk Date: Mon, 23 Sep 2024 06:25:47 -0500 Subject: [PATCH 2/3] Build simplify_iteration_space.cpp as static library Link that library into Python extensions implementing dpctl.tensor --- dpctl/tensor/CMakeLists.txt | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/dpctl/tensor/CMakeLists.txt b/dpctl/tensor/CMakeLists.txt index 65b96d981e..797815cfed 100644 --- a/dpctl/tensor/CMakeLists.txt +++ b/dpctl/tensor/CMakeLists.txt @@ -116,9 +116,11 @@ set(_sorting_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/sorting/argsort.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/sorting/searchsorted.cpp ) +set(_static_lib_sources + ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp +) set(_tensor_impl_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_ctors.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_and_cast_usm_to_usm.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_numpy_ndarray_into_usm_ndarray.cpp @@ -138,17 +140,14 @@ set(_tensor_impl_sources ) set(_tensor_elementwise_impl_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_elementwise.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp ${_elementwise_sources} ) set(_tensor_reductions_impl_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_reductions.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp ${_reduction_sources} ) set(_tensor_sorting_impl_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_sorting.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp ${_sorting_sources} ) set(_linalg_sources @@ -157,7 +156,6 @@ set(_linalg_sources ) set(_tensor_linalg_impl_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_linalg.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp ${_linalg_sources} ) set(_accumulator_sources @@ -168,40 +166,54 @@ ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators/cumulative_sum.cpp ) set(_tensor_accumulation_impl_sources ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_accumulation.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp ${_accumulator_sources} ) +set(_static_lib_trgt simplify_iteration_space) + +add_library(${_static_lib_trgt} STATIC ${_static_lib_sources}) +target_include_directories(${_static_lib_trgt} PRIVATE + ${Python_INCLUDE_DIRS} ${DPCTL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/include +) +target_link_libraries(${_static_lib_trgt} PRIVATE pybind11::headers ${Python_LIBRARIES}) +set_target_properties(${_static_lib_trgt} PROPERTIES POSITION_INDEPENDENT_CODE ON) + set(_py_trgts) set(python_module_name _tensor_impl) pybind11_add_module(${python_module_name} MODULE ${_tensor_impl_sources}) add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_impl_sources}) +target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt}) list(APPEND _py_trgts ${python_module_name}) set(python_module_name _tensor_elementwise_impl) pybind11_add_module(${python_module_name} MODULE ${_tensor_elementwise_impl_sources}) add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_elementwise_impl_sources}) +target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt}) list(APPEND _py_trgts ${python_module_name}) set(python_module_name _tensor_reductions_impl) pybind11_add_module(${python_module_name} MODULE ${_tensor_reductions_impl_sources}) add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_reductions_impl_sources}) +target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt}) list(APPEND _py_trgts ${python_module_name}) set(python_module_name _tensor_sorting_impl) pybind11_add_module(${python_module_name} MODULE ${_tensor_sorting_impl_sources}) add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_sorting_impl_sources}) +target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt}) list(APPEND _py_trgts ${python_module_name}) set(python_module_name _tensor_linalg_impl) pybind11_add_module(${python_module_name} MODULE ${_tensor_linalg_impl_sources}) add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_linalg_impl_sources}) +target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt}) list(APPEND _py_trgts ${python_module_name}) set(python_module_name _tensor_accumulation_impl) pybind11_add_module(${python_module_name} MODULE ${_tensor_accumulation_impl_sources}) add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_accumulation_impl_sources}) +target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt}) list(APPEND _py_trgts ${python_module_name}) set(_clang_prefix "") From 3f6af83fcfb3aeb2713575c2b52c4c319a76e17b Mon Sep 17 00:00:00 2001 From: Oleksandr Pavlyk Date: Mon, 23 Sep 2024 06:32:23 -0500 Subject: [PATCH 3/3] Add changelog entry for this PR --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53011709ef..b849718807 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Do not use Mambaforge variant of miniforge as deprecated [gh-1844](https://github.com/IntelPython/dpctl/pull/1844) * Use pybind11=2.13.6 [gh-1845](https://github.com/IntelPython/dpctl/pull/1845) * Remove unnecessary include in C++ header file [gh-1846](https://github.com/IntelPython/dpctl/pull/1846) +* Build translation unit "simplify_iteration_space.cpp" compiled multiple times as a static library [gh-1847](https://github.com/IntelPython/dpctl/pull/1847) ## [0.18.0] - Sept. XX, 2024