Skip to content

Commit a8ae9bb

Browse files
Merge pull request #1449 from IntelPython/further-splitting-down-elementwise-functions
2 parents b291c97 + fa4924a commit a8ae9bb

File tree

157 files changed

+12712
-5573
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+12712
-5573
lines changed

dpctl/tensor/CMakeLists.txt

Lines changed: 80 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,78 @@ if(WIN32)
3030
endif()
3131
endif()
3232

33+
set(_elementwise_sources
34+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/elementwise_common.cpp
35+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/elementwise_functions_type_utils.cpp
36+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/abs.cpp
37+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/acos.cpp
38+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/acosh.cpp
39+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/add.cpp
40+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/asin.cpp
41+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/asinh.cpp
42+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/atan.cpp
43+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/atan2.cpp
44+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/atanh.cpp
45+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/bitwise_and.cpp
46+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/bitwise_invert.cpp
47+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/bitwise_left_shift.cpp
48+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/bitwise_or.cpp
49+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/bitwise_right_shift.cpp
50+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/bitwise_xor.cpp
51+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/cbrt.cpp
52+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/ceil.cpp
53+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/conj.cpp
54+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/copysign.cpp
55+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/cos.cpp
56+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/cosh.cpp
57+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/equal.cpp
58+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/exp.cpp
59+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/exp2.cpp
60+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/expm1.cpp
61+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/floor_divide.cpp
62+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/floor.cpp
63+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/greater_equal.cpp
64+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/greater.cpp
65+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/hypot.cpp
66+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/imag.cpp
67+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/isfinite.cpp
68+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/isinf.cpp
69+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/isnan.cpp
70+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/less_equal.cpp
71+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/less.cpp
72+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/log.cpp
73+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/log1p.cpp
74+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/log2.cpp
75+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/log10.cpp
76+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/logaddexp.cpp
77+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/logical_and.cpp
78+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/logical_not.cpp
79+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/logical_or.cpp
80+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/logical_xor.cpp
81+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/maximum.cpp
82+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/minimum.cpp
83+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/multiply.cpp
84+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/negative.cpp
85+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/not_equal.cpp
86+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/positive.cpp
87+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/pow.cpp
88+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/proj.cpp
89+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/real.cpp
90+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/remainder.cpp
91+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/round.cpp
92+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/rsqrt.cpp
93+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/sign.cpp
94+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/signbit.cpp
95+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/sin.cpp
96+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/sinh.cpp
97+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/sqrt.cpp
98+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/square.cpp
99+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/subtract.cpp
100+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/tan.cpp
101+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/tanh.cpp
102+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/true_divide.cpp
103+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/trunc.cpp
104+
)
33105
set(_tensor_impl_sources
34106
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_py.cpp
35107
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators.cpp
@@ -47,11 +119,12 @@ set(_tensor_impl_sources
47119
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/where.cpp
48120
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/boolean_reductions.cpp
49121
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/device_support_queries.cpp
50-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions1.cpp
51-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions2.cpp
52122
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/repeat.cpp
53123
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/reduction_over_axis.cpp
54124
)
125+
list(APPEND _tensor_impl_sources
126+
${_elementwise_sources}
127+
)
55128

56129
set(python_module_name _tensor_impl)
57130
pybind11_add_module(${python_module_name} MODULE ${_tensor_impl_sources})
@@ -64,10 +137,11 @@ endif()
64137
set(_no_fast_math_sources
65138
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/full_ctor.cpp
66139
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/linear_sequences.cpp
67-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions1.cpp
68-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions2.cpp
69140
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/reduction_over_axis.cpp
70141
)
142+
list(APPEND _no_fast_math_sources
143+
${_elementwise_sources}
144+
)
71145
foreach(_src_fn ${_no_fast_math_sources})
72146
get_source_file_property(_cmpl_options_prop ${_src_fn} COMPILE_OPTIONS)
73147
set(_combined_options_prop ${_cmpl_options_prop} "${_clang_prefix}-fno-fast-math")
@@ -78,7 +152,8 @@ foreach(_src_fn ${_no_fast_math_sources})
78152
endforeach()
79153
if (UNIX)
80154
set_source_files_properties(
81-
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions.cpp
155+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/abs.cpp
156+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/elementwise_functions/sqrt.cpp
82157
PROPERTIES COMPILE_DEFINITIONS "USE_STD_ABS_FOR_COMPLEX_TYPES;USE_STD_SQRT_FOR_COMPLEX_TYPES")
83158
endif()
84159
target_compile_options(${python_module_name} PRIVATE -fno-sycl-id-queries-fit-in-int)

dpctl/tensor/_elementwise_funcs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,7 @@
11831183
_logical_xor_docstring_,
11841184
)
11851185

1186-
# B??: ==== MAXIMUM (x1, x2)
1186+
# B26: ==== MAXIMUM (x1, x2)
11871187
_maximum_docstring_ = """
11881188
maximum(x1, x2, out=None, order='K')
11891189
@@ -1213,7 +1213,7 @@
12131213
_maximum_docstring_,
12141214
)
12151215

1216-
# B??: ==== MINIMUM (x1, x2)
1216+
# B27: ==== MINIMUM (x1, x2)
12171217
_minimum_docstring_ = """
12181218
minimum(x1, x2, out=None, order='K')
12191219
@@ -1373,7 +1373,7 @@
13731373
binary_inplace_fn=ti._pow_inplace,
13741374
)
13751375

1376-
# U??: ==== PROJ (x)
1376+
# U40: ==== PROJ (x)
13771377
_proj_docstring = """
13781378
proj(x, out=None, order='K')
13791379
@@ -1514,7 +1514,7 @@
15141514
"sign", ti._sign_result_type, ti._sign, _sign_docstring
15151515
)
15161516

1517-
# ==== SIGNBIT (x)
1517+
# U41: ==== SIGNBIT (x)
15181518
_signbit_docstring = """
15191519
signbit(x, out=None, order='K')
15201520

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_and.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "utils/type_utils.hpp"
3434

3535
#include "kernels/elementwise_functions/common.hpp"
36+
#include "kernels/elementwise_functions/common_inplace.hpp"
3637
#include <pybind11/pybind11.h>
3738

3839
namespace dpctl

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_invert.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
#include "utils/type_utils.hpp"
3636
#include <pybind11/pybind11.h>
3737

38+
#include "kernels/elementwise_functions/common.hpp"
39+
3840
namespace dpctl
3941
{
4042
namespace tensor

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_left_shift.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "utils/type_utils.hpp"
3535

3636
#include "kernels/elementwise_functions/common.hpp"
37+
#include "kernels/elementwise_functions/common_inplace.hpp"
3738
#include <pybind11/pybind11.h>
3839

3940
namespace dpctl

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_or.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "utils/type_utils.hpp"
3434

3535
#include "kernels/elementwise_functions/common.hpp"
36+
#include "kernels/elementwise_functions/common_inplace.hpp"
3637
#include <pybind11/pybind11.h>
3738

3839
namespace dpctl

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_right_shift.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "utils/type_utils.hpp"
3535

3636
#include "kernels/elementwise_functions/common.hpp"
37+
#include "kernels/elementwise_functions/common_inplace.hpp"
3738
#include <pybind11/pybind11.h>
3839

3940
namespace dpctl

dpctl/tensor/libtensor/include/kernels/elementwise_functions/bitwise_xor.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "utils/type_utils.hpp"
3434

3535
#include "kernels/elementwise_functions/common.hpp"
36+
#include "kernels/elementwise_functions/common_inplace.hpp"
3637
#include <pybind11/pybind11.h>
3738

3839
namespace dpctl

dpctl/tensor/libtensor/include/kernels/elementwise_functions/floor_divide.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "utils/type_utils.hpp"
3535

3636
#include "kernels/elementwise_functions/common.hpp"
37+
#include "kernels/elementwise_functions/common_inplace.hpp"
3738
#include <pybind11/pybind11.h>
3839

3940
namespace dpctl

dpctl/tensor/libtensor/include/kernels/elementwise_functions/pow.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "utils/type_utils.hpp"
3636

3737
#include "kernels/elementwise_functions/common.hpp"
38+
#include "kernels/elementwise_functions/common_inplace.hpp"
3839
#include <pybind11/pybind11.h>
3940

4041
namespace dpctl

0 commit comments

Comments
 (0)