Skip to content

Commit 9d3b3b9

Browse files
Merge master into support_dpnp_tests_on_iris
2 parents 3153dd8 + 4012c98 commit 9d3b3b9

32 files changed

+694
-473
lines changed

0.build.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ CC=icpx python setup.py build_ext --inplace
2525

2626
echo
2727
echo =========example3==============
28-
icpx -fsycl -g -fPIC dpnp/backend/examples/example3.cpp -Idpnp -Idpnp/backend/include -Ldpnp -Wl,-rpath='$ORIGIN'/dpnp -ldpnp_backend_c -o example3
28+
DPCTL_INCLUDES=$(python -m dpctl --includes)
29+
icpx -fsycl -g -O0 -ggdb3 -fPIC dpnp/backend/examples/example3.cpp $DPCTL_INCLUDES -Idpnp -Idpnp/backend/include -Ldpnp -Wl,-rpath='$ORIGIN'/dpnp -ldpnp_backend_c -o example3
2930
# LD_DEBUG=libs,bindings,symbols ./example3
3031
./example3
3132

@@ -47,7 +48,7 @@ icpx -fsycl -g -fPIC dpnp/backend/examples/example3.cpp -Idpnp -Idpnp/backend/in
4748
# strings /usr/share/miniconda/envs/dpnp*/lib/libstdc++.so | grep GLIBCXX | sort -n
4849

4950

50-
# echo
51+
echo
5152
echo =========example1==============
5253
# LD_DEBUG=libs,bindings,symbols python examples/example1.py
5354
# LD_DEBUG=libs python examples/example1.py

conda-recipe/build.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ fi
2929
export CFLAGS="-Wl,-rpath,\$ORIGIN/../dpctl,-rpath,\$ORIGIN $CFLAGS"
3030
export LDFLAGS="-Wl,-rpath,\$ORIGIN/../dpctl,-rpath,\$ORIGIN $LDFLAGS"
3131

32+
# Intel LLVM must cooperate with compiler and sysroot from conda
33+
echo "--gcc-toolchain=${BUILD_PREFIX} --sysroot=${BUILD_PREFIX}/${HOST}/sysroot -target ${HOST}" > icpx_for_conda.cfg
34+
export ICPXCFG="$(pwd)/icpx_for_conda.cfg"
35+
export ICXCFG="$(pwd)/icpx_for_conda.cfg"
36+
3237
$PYTHON setup.py build_clib
3338
$PYTHON setup.py build_ext install
3439

dpnp/backend/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ string(CONCAT COMMON_COMPILE_FLAGS
9393
"-fsycl "
9494
"-fsycl-device-code-split=per_kernel "
9595
"-fno-approx-func "
96+
"-fno-finite-math-only "
9697
)
9798
string(CONCAT COMMON_LINK_FLAGS
9899
"-fsycl "

dpnp/backend/include/dpnp_gen_2arg_3type_tbl.hpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@
111111

112112
MACRO_2ARG_3TYPES_OP(dpnp_add_c,
113113
input1_elem + input2_elem,
114-
sycl::add_sat(x1, x2),
115-
MACRO_UNPACK_TYPES(int, long),
114+
x1 + x2,
115+
MACRO_UNPACK_TYPES(bool, std::int32_t, std::int64_t),
116116
oneapi::mkl::vm::add,
117117
MACRO_UNPACK_TYPES(float, double, std::complex<float>, std::complex<double>))
118118

@@ -132,10 +132,10 @@ MACRO_2ARG_3TYPES_OP(dpnp_copysign_c,
132132

133133
MACRO_2ARG_3TYPES_OP(dpnp_divide_c,
134134
input1_elem / input2_elem,
135-
nullptr,
136-
std::false_type,
135+
x1 / x2,
136+
MACRO_UNPACK_TYPES(bool, std::int32_t, std::int64_t),
137137
oneapi::mkl::vm::div,
138-
MACRO_UNPACK_TYPES(float, double))
138+
MACRO_UNPACK_TYPES(float, double, std::complex<float>, std::complex<double>))
139139

140140
MACRO_2ARG_3TYPES_OP(dpnp_fmod_c,
141141
sycl::fmod((double)input1_elem, (double)input2_elem),
@@ -169,9 +169,9 @@ MACRO_2ARG_3TYPES_OP(dpnp_minimum_c,
169169
// pytest "tests/third_party/cupy/creation_tests/test_ranges.py::TestMgrid::test_mgrid3"
170170
// requires multiplication shape1[10] with shape2[10,1] and result expected as shape[10,10]
171171
MACRO_2ARG_3TYPES_OP(dpnp_multiply_c,
172-
input1_elem* input2_elem,
173-
nullptr,
174-
std::false_type,
172+
input1_elem * input2_elem,
173+
x1 * x2,
174+
MACRO_UNPACK_TYPES(bool, std::int32_t, std::int64_t),
175175
oneapi::mkl::vm::mul,
176176
MACRO_UNPACK_TYPES(float, double, std::complex<float>, std::complex<double>))
177177

@@ -184,9 +184,9 @@ MACRO_2ARG_3TYPES_OP(dpnp_power_c,
184184

185185
MACRO_2ARG_3TYPES_OP(dpnp_subtract_c,
186186
input1_elem - input2_elem,
187-
nullptr,
188-
std::false_type,
187+
x1 - x2,
188+
MACRO_UNPACK_TYPES(bool, std::int32_t, std::int64_t),
189189
oneapi::mkl::vm::sub,
190-
MACRO_UNPACK_TYPES(float, double))
190+
MACRO_UNPACK_TYPES(float, double, std::complex<float>, std::complex<double>))
191191

192192
#undef MACRO_2ARG_3TYPES_OP

dpnp/backend/include/dpnp_iface_fptr.hpp

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -370,9 +370,7 @@ enum class DPNPFuncName : size_t
370370
DPNP_FN_TRI, /**< Used in numpy.tri() impl */
371371
DPNP_FN_TRI_EXT, /**< Used in numpy.tri() impl, requires extra parameters */
372372
DPNP_FN_TRIL, /**< Used in numpy.tril() impl */
373-
DPNP_FN_TRIL_EXT, /**< Used in numpy.tril() impl, requires extra parameters */
374373
DPNP_FN_TRIU, /**< Used in numpy.triu() impl */
375-
DPNP_FN_TRIU_EXT, /**< Used in numpy.triu() impl, requires extra parameters */
376374
DPNP_FN_TRUNC, /**< Used in numpy.trunc() impl */
377375
DPNP_FN_TRUNC_EXT, /**< Used in numpy.trunc() impl, requires extra parameters */
378376
DPNP_FN_VANDER, /**< Used in numpy.vander() impl */
@@ -419,8 +417,26 @@ size_t operator-(DPNPFuncType lhs, DPNPFuncType rhs);
419417
*/
420418
typedef struct DPNPFuncData
421419
{
422-
DPNPFuncType return_type; /**< return type identifier which expected by the @ref ptr function */
423-
void* ptr; /**< C++ backend function pointer */
420+
DPNPFuncData(const DPNPFuncType gen_type, void* gen_ptr, const DPNPFuncType type_no_fp64, void* ptr_no_fp64)
421+
: return_type(gen_type)
422+
, ptr(gen_ptr)
423+
, return_type_no_fp64(type_no_fp64)
424+
, ptr_no_fp64(ptr_no_fp64)
425+
{
426+
}
427+
DPNPFuncData(const DPNPFuncType gen_type, void* gen_ptr)
428+
: DPNPFuncData(gen_type, gen_ptr, DPNPFuncType::DPNP_FT_NONE, nullptr)
429+
{
430+
}
431+
DPNPFuncData()
432+
: DPNPFuncData(DPNPFuncType::DPNP_FT_NONE, nullptr)
433+
{
434+
}
435+
436+
DPNPFuncType return_type; /**< return type identifier which expected by the @ref ptr function */
437+
void* ptr; /**< C++ backend function pointer */
438+
DPNPFuncType return_type_no_fp64; /**< alternative return type identifier when no fp64 support by device */
439+
void* ptr_no_fp64; /**< alternative C++ backend function pointer when no fp64 support by device */
424440
} DPNPFuncData_t;
425441

426442
/**

dpnp/backend/kernels/dpnp_krnl_arraycreation.cpp

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,17 +1055,6 @@ void (*dpnp_tril_default_c)(void*,
10551055
const size_t,
10561056
const size_t) = dpnp_tril_c<_DataType>;
10571057

1058-
template <typename _DataType>
1059-
DPCTLSyclEventRef (*dpnp_tril_ext_c)(DPCTLSyclQueueRef,
1060-
void*,
1061-
void*,
1062-
const int,
1063-
shape_elem_type*,
1064-
shape_elem_type*,
1065-
const size_t,
1066-
const size_t,
1067-
const DPCTLEventVectorRef) = dpnp_tril_c<_DataType>;
1068-
10691058
template <typename _DataType>
10701059
DPCTLSyclEventRef dpnp_triu_c(DPCTLSyclQueueRef q_ref,
10711060
void* array_in,
@@ -1218,17 +1207,6 @@ void (*dpnp_triu_default_c)(void*,
12181207
const size_t,
12191208
const size_t) = dpnp_triu_c<_DataType>;
12201209

1221-
template <typename _DataType>
1222-
DPCTLSyclEventRef (*dpnp_triu_ext_c)(DPCTLSyclQueueRef,
1223-
void*,
1224-
void*,
1225-
const int,
1226-
shape_elem_type*,
1227-
shape_elem_type*,
1228-
const size_t,
1229-
const size_t,
1230-
const DPCTLEventVectorRef) = dpnp_triu_c<_DataType>;
1231-
12321210
template <typename _DataType>
12331211
DPCTLSyclEventRef dpnp_zeros_c(DPCTLSyclQueueRef q_ref,
12341212
void* result,
@@ -1439,21 +1417,11 @@ void func_map_init_arraycreation(func_map_t& fmap)
14391417
fmap[DPNPFuncName::DPNP_FN_TRIL][eft_FLT][eft_FLT] = {eft_FLT, (void*)dpnp_tril_default_c<float>};
14401418
fmap[DPNPFuncName::DPNP_FN_TRIL][eft_DBL][eft_DBL] = {eft_DBL, (void*)dpnp_tril_default_c<double>};
14411419

1442-
fmap[DPNPFuncName::DPNP_FN_TRIL_EXT][eft_INT][eft_INT] = {eft_INT, (void*)dpnp_tril_ext_c<int32_t>};
1443-
fmap[DPNPFuncName::DPNP_FN_TRIL_EXT][eft_LNG][eft_LNG] = {eft_LNG, (void*)dpnp_tril_ext_c<int64_t>};
1444-
fmap[DPNPFuncName::DPNP_FN_TRIL_EXT][eft_FLT][eft_FLT] = {eft_FLT, (void*)dpnp_tril_ext_c<float>};
1445-
fmap[DPNPFuncName::DPNP_FN_TRIL_EXT][eft_DBL][eft_DBL] = {eft_DBL, (void*)dpnp_tril_ext_c<double>};
1446-
14471420
fmap[DPNPFuncName::DPNP_FN_TRIU][eft_INT][eft_INT] = {eft_INT, (void*)dpnp_triu_default_c<int32_t>};
14481421
fmap[DPNPFuncName::DPNP_FN_TRIU][eft_LNG][eft_LNG] = {eft_LNG, (void*)dpnp_triu_default_c<int64_t>};
14491422
fmap[DPNPFuncName::DPNP_FN_TRIU][eft_FLT][eft_FLT] = {eft_FLT, (void*)dpnp_triu_default_c<float>};
14501423
fmap[DPNPFuncName::DPNP_FN_TRIU][eft_DBL][eft_DBL] = {eft_DBL, (void*)dpnp_triu_default_c<double>};
14511424

1452-
fmap[DPNPFuncName::DPNP_FN_TRIU_EXT][eft_INT][eft_INT] = {eft_INT, (void*)dpnp_triu_ext_c<int32_t>};
1453-
fmap[DPNPFuncName::DPNP_FN_TRIU_EXT][eft_LNG][eft_LNG] = {eft_LNG, (void*)dpnp_triu_ext_c<int64_t>};
1454-
fmap[DPNPFuncName::DPNP_FN_TRIU_EXT][eft_FLT][eft_FLT] = {eft_FLT, (void*)dpnp_triu_ext_c<float>};
1455-
fmap[DPNPFuncName::DPNP_FN_TRIU_EXT][eft_DBL][eft_DBL] = {eft_DBL, (void*)dpnp_triu_ext_c<double>};
1456-
14571425
fmap[DPNPFuncName::DPNP_FN_ZEROS][eft_INT][eft_INT] = {eft_INT, (void*)dpnp_zeros_default_c<int32_t>};
14581426
fmap[DPNPFuncName::DPNP_FN_ZEROS][eft_LNG][eft_LNG] = {eft_LNG, (void*)dpnp_zeros_default_c<int64_t>};
14591427
fmap[DPNPFuncName::DPNP_FN_ZEROS][eft_FLT][eft_FLT] = {eft_FLT, (void*)dpnp_zeros_default_c<float>};

0 commit comments

Comments
 (0)