@@ -113,10 +113,13 @@ set(_reduction_sources
113113 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /reductions/reduce_hypot.cpp
114114 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /reductions/sum.cpp
115115)
116+ set (_boolean_reduction_sources
117+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /boolean_reductions.cpp
118+ )
116119set (_tensor_impl_sources
117- ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /tensor_py.cpp
118- ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /accumulators.cpp
120+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /tensor_ctors.cpp
119121 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /simplify_iteration_space.cpp
122+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /accumulators.cpp
120123 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /copy_and_cast_usm_to_usm.cpp
121124 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /copy_numpy_ndarray_into_usm_ndarray.cpp
122125 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /copy_for_reshape.cpp
@@ -128,19 +131,39 @@ set(_tensor_impl_sources
128131 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /full_ctor.cpp
129132 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /triul_ctor.cpp
130133 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /where.cpp
131- ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /boolean_reductions.cpp
132134 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /device_support_queries.cpp
133135 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /repeat.cpp
134136 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /clip.cpp
135137)
136- list (APPEND _tensor_impl_sources
137- ${_elementwise_sources}
138- ${_reduction_sources}
138+ set (_tensor_elementwise_impl_sources
139+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /tensor_elementwise.cpp
140+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /simplify_iteration_space.cpp
141+ ${_elementwise_sources}
142+ )
143+ set (_tensor_reductions_impl_sources
144+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /tensor_reductions.cpp
145+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /simplify_iteration_space.cpp
146+ ${_boolean_reduction_sources}
147+ ${_reduction_sources}
139148)
140149
150+ set (_py_trgts)
151+
141152set (python_module_name _tensor_impl)
142153pybind11_add_module(${python_module_name} MODULE ${_tensor_impl_sources} )
143154add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_impl_sources} )
155+ list (APPEND _py_trgts ${python_module_name} )
156+
157+ set (python_module_name _tensor_elementwise_impl)
158+ pybind11_add_module(${python_module_name} MODULE ${_tensor_elementwise_impl_sources} )
159+ add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_elementwise_impl_sources} )
160+ list (APPEND _py_trgts ${python_module_name} )
161+
162+ set (python_module_name _tensor_reductions_impl)
163+ pybind11_add_module(${python_module_name} MODULE ${_tensor_reductions_impl_sources} )
164+ add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_reductions_impl_sources} )
165+ list (APPEND _py_trgts ${python_module_name} )
166+
144167set (_clang_prefix "" )
145168if (WIN32 )
146169 set (_clang_prefix "/clang:" )
@@ -170,19 +193,22 @@ if (UNIX)
170193 ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /elementwise_functions/sqrt.cpp
171194 PROPERTIES COMPILE_DEFINITIONS "USE_STD_ABS_FOR_COMPLEX_TYPES;USE_STD_SQRT_FOR_COMPLEX_TYPES" )
172195endif ()
173- target_compile_options (${python_module_name} PRIVATE -fno-sycl-id-queries-fit-in-int)
174- target_link_options (${python_module_name} PRIVATE -fsycl-device-code-split=per_kernel)
175- if (UNIX )
176- # this option is supported on Linux only
177- target_link_options (${python_module_name} PRIVATE -fsycl-link-huge-device-code)
178- endif ()
179- target_include_directories (${python_module_name}
180- PRIVATE
181- ${CMAKE_CURRENT_SOURCE_DIR} /../include
182- ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/include
183- ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /
184- )
196+
185197set (_linker_options "LINKER:${DPCTL_LDFLAGS} " )
186- target_link_options (${python_module_name} PRIVATE ${_linker_options} )
187- add_dependencies (${python_module_name} _dpctl4pybind11_deps)
188- install (TARGETS ${python_module_name} DESTINATION "dpctl/tensor" )
198+ foreach (python_module_name ${_py_trgts} )
199+ target_compile_options (${python_module_name} PRIVATE -fno-sycl-id-queries-fit-in-int)
200+ target_link_options (${python_module_name} PRIVATE -fsycl-device-code-split=per_kernel)
201+ if (UNIX )
202+ # this option is supported on Linux only
203+ target_link_options (${python_module_name} PRIVATE -fsycl-link-huge-device-code)
204+ endif ()
205+ target_include_directories (${python_module_name}
206+ PRIVATE
207+ ${CMAKE_CURRENT_SOURCE_DIR} /../include
208+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/include
209+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source /
210+ )
211+ target_link_options (${python_module_name} PRIVATE ${_linker_options} )
212+ add_dependencies (${python_module_name} _dpctl4pybind11_deps)
213+ install (TARGETS ${python_module_name} DESTINATION "dpctl/tensor" )
214+ endforeach ()
0 commit comments