@@ -113,10 +113,13 @@ set(_reduction_sources
113
113
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/reductions/reduce_hypot.cpp
114
114
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/reductions/sum.cpp
115
115
)
116
+ set (_boolean_reduction_sources
117
+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/boolean_reductions.cpp
118
+ )
116
119
set (_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
119
121
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/simplify_iteration_space.cpp
122
+ ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/accumulators.cpp
120
123
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/copy_and_cast_usm_to_usm.cpp
121
124
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/copy_numpy_ndarray_into_usm_ndarray.cpp
122
125
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/copy_for_reshape.cpp
@@ -128,19 +131,39 @@ set(_tensor_impl_sources
128
131
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/full_ctor.cpp
129
132
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/triul_ctor.cpp
130
133
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/where.cpp
131
- ${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/boolean_reductions.cpp
132
134
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/device_support_queries.cpp
133
135
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/repeat.cpp
134
136
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/clip.cpp
135
137
)
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}
139
148
)
140
149
150
+ set (_py_trgts )
151
+
141
152
set (python_module_name _tensor_impl )
142
153
pybind11_add_module (${python_module_name} MODULE ${_tensor_impl_sources} )
143
154
add_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
+
144
167
set (_clang_prefix "" )
145
168
if (WIN32 )
146
169
set (_clang_prefix "/clang:" )
@@ -170,19 +193,22 @@ if (UNIX)
170
193
${CMAKE_CURRENT_SOURCE_DIR} /libtensor/source/elementwise_functions/sqrt.cpp
171
194
PROPERTIES COMPILE_DEFINITIONS "USE_STD_ABS_FOR_COMPLEX_TYPES;USE_STD_SQRT_FOR_COMPLEX_TYPES" )
172
195
endif ()
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
+
185
197
set (_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