Skip to content

Commit

Permalink
Merge pull request #1508 from IntelPython/use_dpctl_bitwise_op
Browse files Browse the repository at this point in the history
impl_usage_dpctl_bitwise_op
  • Loading branch information
vtavana committed Aug 16, 2023
2 parents 1650774 + b60eb41 commit bde1b43
Show file tree
Hide file tree
Showing 10 changed files with 794 additions and 616 deletions.
142 changes: 65 additions & 77 deletions dpnp/backend/include/dpnp_iface_fptr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,57 +65,51 @@ enum class DPNPFuncName : size_t
DPNP_FN_ADD, /**< Used in numpy.add() impl */
DPNP_FN_ADD_EXT, /**< Used in numpy.add() impl, requires extra parameters */
DPNP_FN_ALL, /**< Used in numpy.all() impl */
DPNP_FN_ALLCLOSE, /**< Used in numpy.allclose() impl */
DPNP_FN_ALLCLOSE_EXT, /**< Used in numpy.allclose() impl, requires extra
parameters */
DPNP_FN_ANY, /**< Used in numpy.any() impl */
DPNP_FN_ARANGE, /**< Used in numpy.arange() impl */
DPNP_FN_ARCCOS, /**< Used in numpy.arccos() impl */
DPNP_FN_ARCCOS_EXT, /**< Used in numpy.arccos() impl, requires extra
parameters */
DPNP_FN_ARCCOSH, /**< Used in numpy.arccosh() impl */
DPNP_FN_ARCCOSH_EXT, /**< Used in numpy.arccosh() impl, requires extra
parameters */
DPNP_FN_ARCSIN, /**< Used in numpy.arcsin() impl */
DPNP_FN_ARCSIN_EXT, /**< Used in numpy.arcsin() impl, requires extra
parameters */
DPNP_FN_ARCSINH, /**< Used in numpy.arcsinh() impl */
DPNP_FN_ARCSINH_EXT, /**< Used in numpy.arcsinh() impl, requires extra
parameters */
DPNP_FN_ARCTAN, /**< Used in numpy.arctan() impl */
DPNP_FN_ARCTAN_EXT, /**< Used in numpy.arctan() impl, requires extra
parameters */
DPNP_FN_ARCTAN2, /**< Used in numpy.arctan2() impl */
DPNP_FN_ARCTAN2_EXT, /**< Used in numpy.arctan2() impl, requires extra
parameters */
DPNP_FN_ARCTANH, /**< Used in numpy.arctanh() impl */
DPNP_FN_ARCTANH_EXT, /**< Used in numpy.arctanh() impl, requires extra
parameters */
DPNP_FN_ARGMAX, /**< Used in numpy.argmax() impl */
DPNP_FN_ARGMAX_EXT, /**< Used in numpy.argmax() impl, requires extra
parameters */
DPNP_FN_ARGMIN, /**< Used in numpy.argmin() impl */
DPNP_FN_ARGMIN_EXT, /**< Used in numpy.argmin() impl, requires extra
parameters */
DPNP_FN_ARGSORT, /**< Used in numpy.argsort() impl */
DPNP_FN_ARGSORT_EXT, /**< Used in numpy.argsort() impl, requires extra
parameters */
DPNP_FN_AROUND, /**< Used in numpy.around() impl */
DPNP_FN_AROUND_EXT, /**< Used in numpy.around() impl, requires extra
parameters */
DPNP_FN_ASTYPE, /**< Used in numpy.astype() impl */
DPNP_FN_ASTYPE_EXT, /**< Used in numpy.astype() impl, requires extra
parameters */
DPNP_FN_BITWISE_AND, /**< Used in numpy.bitwise_and() impl */
DPNP_FN_BITWISE_AND_EXT, /**< Used in numpy.bitwise_and() impl, requires
extra parameters */
DPNP_FN_BITWISE_OR, /**< Used in numpy.bitwise_or() impl */
DPNP_FN_BITWISE_OR_EXT, /**< Used in numpy.bitwise_or() impl, requires extra
parameters */
DPNP_FN_BITWISE_XOR, /**< Used in numpy.bitwise_xor() impl */
DPNP_FN_BITWISE_XOR_EXT, /**< Used in numpy.bitwise_xor() impl, requires
extra parameters */
DPNP_FN_CBRT, /**< Used in numpy.cbrt() impl */
DPNP_FN_ALLCLOSE, /**< Used in numpy.allclose() impl */
DPNP_FN_ALLCLOSE_EXT, /**< Used in numpy.allclose() impl, requires extra
parameters */
DPNP_FN_ANY, /**< Used in numpy.any() impl */
DPNP_FN_ARANGE, /**< Used in numpy.arange() impl */
DPNP_FN_ARCCOS, /**< Used in numpy.arccos() impl */
DPNP_FN_ARCCOS_EXT, /**< Used in numpy.arccos() impl, requires extra
parameters */
DPNP_FN_ARCCOSH, /**< Used in numpy.arccosh() impl */
DPNP_FN_ARCCOSH_EXT, /**< Used in numpy.arccosh() impl, requires extra
parameters */
DPNP_FN_ARCSIN, /**< Used in numpy.arcsin() impl */
DPNP_FN_ARCSIN_EXT, /**< Used in numpy.arcsin() impl, requires extra
parameters */
DPNP_FN_ARCSINH, /**< Used in numpy.arcsinh() impl */
DPNP_FN_ARCSINH_EXT, /**< Used in numpy.arcsinh() impl, requires extra
parameters */
DPNP_FN_ARCTAN, /**< Used in numpy.arctan() impl */
DPNP_FN_ARCTAN_EXT, /**< Used in numpy.arctan() impl, requires extra
parameters */
DPNP_FN_ARCTAN2, /**< Used in numpy.arctan2() impl */
DPNP_FN_ARCTAN2_EXT, /**< Used in numpy.arctan2() impl, requires extra
parameters */
DPNP_FN_ARCTANH, /**< Used in numpy.arctanh() impl */
DPNP_FN_ARCTANH_EXT, /**< Used in numpy.arctanh() impl, requires extra
parameters */
DPNP_FN_ARGMAX, /**< Used in numpy.argmax() impl */
DPNP_FN_ARGMAX_EXT, /**< Used in numpy.argmax() impl, requires extra
parameters */
DPNP_FN_ARGMIN, /**< Used in numpy.argmin() impl */
DPNP_FN_ARGMIN_EXT, /**< Used in numpy.argmin() impl, requires extra
parameters */
DPNP_FN_ARGSORT, /**< Used in numpy.argsort() impl */
DPNP_FN_ARGSORT_EXT, /**< Used in numpy.argsort() impl, requires extra
parameters */
DPNP_FN_AROUND, /**< Used in numpy.around() impl */
DPNP_FN_AROUND_EXT, /**< Used in numpy.around() impl, requires extra
parameters */
DPNP_FN_ASTYPE, /**< Used in numpy.astype() impl */
DPNP_FN_ASTYPE_EXT, /**< Used in numpy.astype() impl, requires extra
parameters */
DPNP_FN_BITWISE_AND, /**< Used in numpy.bitwise_and() impl */
DPNP_FN_BITWISE_OR, /**< Used in numpy.bitwise_or() impl */
DPNP_FN_BITWISE_XOR, /**< Used in numpy.bitwise_xor() impl */
DPNP_FN_CBRT, /**< Used in numpy.cbrt() impl */
DPNP_FN_CBRT_EXT, /**< Used in numpy.cbrt() impl, requires extra parameters
*/
DPNP_FN_CEIL, /**< Used in numpy.ceil() impl */
Expand Down Expand Up @@ -246,14 +240,10 @@ enum class DPNPFuncName : size_t
DPNP_FN_INV_EXT, /**< Used in numpy.linalg.inv() impl, requires extra
parameters */
DPNP_FN_INVERT, /**< Used in numpy.invert() impl */
DPNP_FN_INVERT_EXT, /**< Used in numpy.invert() impl, requires extra
parameters */
DPNP_FN_KRON, /**< Used in numpy.kron() impl */
DPNP_FN_KRON_EXT, /**< Used in numpy.kron() impl, requires extra parameters
*/
DPNP_FN_LEFT_SHIFT, /**< Used in numpy.left_shift() impl */
DPNP_FN_LEFT_SHIFT_EXT, /**< Used in numpy.left_shift() impl, requires extra
parameters */
DPNP_FN_LEFT_SHIFT, /**< Used in numpy.left_shift() impl */
DPNP_FN_LESS_EXT, /**< Used in numpy.less() impl, requires extra parameters
*/
DPNP_FN_LESS_EQUAL_EXT, /**< Used in numpy.less_equal() impl, requires extra
Expand Down Expand Up @@ -323,27 +313,25 @@ enum class DPNPFuncName : size_t
DPNP_FN_PUT_ALONG_AXIS_EXT, /**< Used in numpy.put_along_axis() impl,
requires extra parameters */
DPNP_FN_QR, /**< Used in numpy.linalg.qr() impl */
DPNP_FN_QR_EXT, /**< Used in numpy.linalg.qr() impl, requires extra
parameters */
DPNP_FN_RADIANS, /**< Used in numpy.radians() impl */
DPNP_FN_RADIANS_EXT, /**< Used in numpy.radians() impl, requires extra
parameters */
DPNP_FN_REMAINDER, /**< Used in numpy.remainder() impl */
DPNP_FN_REMAINDER_EXT, /**< Used in numpy.remainder() impl, requires extra
parameters */
DPNP_FN_RECIP, /**< Used in numpy.recip() impl */
DPNP_FN_RECIP_EXT, /**< Used in numpy.recip() impl, requires extra
parameters */
DPNP_FN_REPEAT, /**< Used in numpy.repeat() impl */
DPNP_FN_REPEAT_EXT, /**< Used in numpy.repeat() impl, requires extra
parameters */
DPNP_FN_RIGHT_SHIFT, /**< Used in numpy.right_shift() impl */
DPNP_FN_RIGHT_SHIFT_EXT, /**< Used in numpy.right_shift() impl, requires
extra parameters */
DPNP_FN_RNG_BETA, /**< Used in numpy.random.beta() impl */
DPNP_FN_RNG_BETA_EXT, /**< Used in numpy.random.beta() impl, requires extra
parameters */
DPNP_FN_RNG_BINOMIAL, /**< Used in numpy.random.binomial() impl */
DPNP_FN_QR_EXT, /**< Used in numpy.linalg.qr() impl, requires extra
parameters */
DPNP_FN_RADIANS, /**< Used in numpy.radians() impl */
DPNP_FN_RADIANS_EXT, /**< Used in numpy.radians() impl, requires extra
parameters */
DPNP_FN_REMAINDER, /**< Used in numpy.remainder() impl */
DPNP_FN_REMAINDER_EXT, /**< Used in numpy.remainder() impl, requires extra
parameters */
DPNP_FN_RECIP, /**< Used in numpy.recip() impl */
DPNP_FN_RECIP_EXT, /**< Used in numpy.recip() impl, requires extra
parameters */
DPNP_FN_REPEAT, /**< Used in numpy.repeat() impl */
DPNP_FN_REPEAT_EXT, /**< Used in numpy.repeat() impl, requires extra
parameters */
DPNP_FN_RIGHT_SHIFT, /**< Used in numpy.right_shift() impl */
DPNP_FN_RNG_BETA, /**< Used in numpy.random.beta() impl */
DPNP_FN_RNG_BETA_EXT, /**< Used in numpy.random.beta() impl, requires extra
parameters */
DPNP_FN_RNG_BINOMIAL, /**< Used in numpy.random.binomial() impl */
DPNP_FN_RNG_BINOMIAL_EXT, /**< Used in numpy.random.binomial() impl,
requires extra parameters */
DPNP_FN_RNG_CHISQUARE, /**< Used in numpy.random.chisquare() impl */
Expand Down
57 changes: 1 addition & 56 deletions dpnp/backend/kernels/dpnp_krnl_bitwise.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,14 +127,6 @@ void (*dpnp_invert_default_c)(void *,
void *,
size_t) = dpnp_invert_c<_DataType>;

template <typename _DataType>
DPCTLSyclEventRef (*dpnp_invert_ext_c)(DPCTLSyclQueueRef,
void *,
void *,
size_t,
const DPCTLEventVectorRef) =
dpnp_invert_c<_DataType>;

static void func_map_init_bitwise_1arg_1type(func_map_t &fmap)
{
fmap[DPNPFuncName::DPNP_FN_INVERT][eft_BLN][eft_BLN] = {
Expand All @@ -144,13 +136,6 @@ static void func_map_init_bitwise_1arg_1type(func_map_t &fmap)
fmap[DPNPFuncName::DPNP_FN_INVERT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_invert_default_c<int64_t>};

fmap[DPNPFuncName::DPNP_FN_INVERT_EXT][eft_BLN][eft_BLN] = {
eft_BLN, (void *)dpnp_invert_ext_c<bool>};
fmap[DPNPFuncName::DPNP_FN_INVERT_EXT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_invert_ext_c<int32_t>};
fmap[DPNPFuncName::DPNP_FN_INVERT_EXT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_invert_ext_c<int64_t>};

return;
}

Expand Down Expand Up @@ -399,16 +384,7 @@ static void func_map_init_bitwise_1arg_1type(func_map_t &fmap)
const shape_elem_type *, const void *, const size_t, const size_t, \
const shape_elem_type *, const shape_elem_type *, const void *, \
const size_t, const size_t, const shape_elem_type *, \
const shape_elem_type *, const size_t *) = __name__<_DataType>; \
\
template <typename _DataType> \
DPCTLSyclEventRef (*__name__##_ext)( \
DPCTLSyclQueueRef, void *, const size_t, const size_t, \
const shape_elem_type *, const shape_elem_type *, const void *, \
const size_t, const size_t, const shape_elem_type *, \
const shape_elem_type *, const void *, const size_t, const size_t, \
const shape_elem_type *, const shape_elem_type *, const size_t *, \
const DPCTLEventVectorRef) = __name__<_DataType>;
const shape_elem_type *, const size_t *) = __name__<_DataType>;

#include <dpnp_gen_2arg_1type_tbl.hpp>

Expand All @@ -419,57 +395,26 @@ static void func_map_init_bitwise_2arg_1type(func_map_t &fmap)
fmap[DPNPFuncName::DPNP_FN_BITWISE_AND][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_bitwise_and_c_default<int64_t>};

fmap[DPNPFuncName::DPNP_FN_BITWISE_AND_EXT][eft_BLN][eft_BLN] = {
eft_BLN, (void *)dpnp_bitwise_and_c_ext<bool>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_AND_EXT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_bitwise_and_c_ext<int32_t>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_AND_EXT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_bitwise_and_c_ext<int64_t>};

fmap[DPNPFuncName::DPNP_FN_BITWISE_OR][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_bitwise_or_c_default<int32_t>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_OR][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_bitwise_or_c_default<int64_t>};

fmap[DPNPFuncName::DPNP_FN_BITWISE_OR_EXT][eft_BLN][eft_BLN] = {
eft_BLN, (void *)dpnp_bitwise_or_c_ext<bool>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_OR_EXT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_bitwise_or_c_ext<int32_t>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_OR_EXT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_bitwise_or_c_ext<int64_t>};

fmap[DPNPFuncName::DPNP_FN_BITWISE_XOR][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_bitwise_xor_c_default<int32_t>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_XOR][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_bitwise_xor_c_default<int64_t>};

fmap[DPNPFuncName::DPNP_FN_BITWISE_XOR_EXT][eft_BLN][eft_BLN] = {
eft_BLN, (void *)dpnp_bitwise_xor_c_ext<bool>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_XOR_EXT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_bitwise_xor_c_ext<int32_t>};
fmap[DPNPFuncName::DPNP_FN_BITWISE_XOR_EXT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_bitwise_xor_c_ext<int64_t>};

fmap[DPNPFuncName::DPNP_FN_LEFT_SHIFT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_left_shift_c_default<int32_t>};
fmap[DPNPFuncName::DPNP_FN_LEFT_SHIFT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_left_shift_c_default<int64_t>};

fmap[DPNPFuncName::DPNP_FN_LEFT_SHIFT_EXT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_left_shift_c_ext<int32_t>};
fmap[DPNPFuncName::DPNP_FN_LEFT_SHIFT_EXT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_left_shift_c_ext<int64_t>};

fmap[DPNPFuncName::DPNP_FN_RIGHT_SHIFT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_right_shift_c_default<int32_t>};
fmap[DPNPFuncName::DPNP_FN_RIGHT_SHIFT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_right_shift_c_default<int64_t>};

fmap[DPNPFuncName::DPNP_FN_RIGHT_SHIFT_EXT][eft_INT][eft_INT] = {
eft_INT, (void *)dpnp_right_shift_c_ext<int32_t>};
fmap[DPNPFuncName::DPNP_FN_RIGHT_SHIFT_EXT][eft_LNG][eft_LNG] = {
eft_LNG, (void *)dpnp_right_shift_c_ext<int64_t>};

return;
}

Expand Down
1 change: 0 additions & 1 deletion dpnp/dpnp_algo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ set(dpnp_algo_pyx_deps
${CMAKE_CURRENT_SOURCE_DIR}/dpnp_algo_searching.pxi
${CMAKE_CURRENT_SOURCE_DIR}/dpnp_algo_indexing.pxi
${CMAKE_CURRENT_SOURCE_DIR}/dpnp_algo_logic.pxi
${CMAKE_CURRENT_SOURCE_DIR}/dpnp_algo_bitwise.pxi
${CMAKE_CURRENT_SOURCE_DIR}/dpnp_algo_special.pxi
)

Expand Down
43 changes: 0 additions & 43 deletions dpnp/dpnp_algo/dpnp_algo.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,6 @@ cdef extern from "dpnp_iface_fptr.hpp" namespace "DPNPFuncName": # need this na
DPNP_FN_AROUND_EXT
DPNP_FN_ASTYPE
DPNP_FN_ASTYPE_EXT
DPNP_FN_BITWISE_AND
DPNP_FN_BITWISE_AND_EXT
DPNP_FN_BITWISE_OR
DPNP_FN_BITWISE_OR_EXT
DPNP_FN_BITWISE_XOR
DPNP_FN_BITWISE_XOR_EXT
DPNP_FN_CBRT
DPNP_FN_CBRT_EXT
DPNP_FN_CEIL
Expand Down Expand Up @@ -148,12 +142,8 @@ cdef extern from "dpnp_iface_fptr.hpp" namespace "DPNPFuncName": # need this na
DPNP_FN_INITVAL_EXT
DPNP_FN_INV
DPNP_FN_INV_EXT
DPNP_FN_INVERT
DPNP_FN_INVERT_EXT
DPNP_FN_KRON
DPNP_FN_KRON_EXT
DPNP_FN_LEFT_SHIFT
DPNP_FN_LEFT_SHIFT_EXT
DPNP_FN_LOG10
DPNP_FN_LOG10_EXT
DPNP_FN_LOG1P
Expand Down Expand Up @@ -204,8 +194,6 @@ cdef extern from "dpnp_iface_fptr.hpp" namespace "DPNPFuncName": # need this na
DPNP_FN_RECIP_EXT
DPNP_FN_REPEAT
DPNP_FN_REPEAT_EXT
DPNP_FN_RIGHT_SHIFT
DPNP_FN_RIGHT_SHIFT_EXT
DPNP_FN_RNG_BETA
DPNP_FN_RNG_BETA_EXT
DPNP_FN_RNG_BINOMIAL
Expand Down Expand Up @@ -421,37 +409,6 @@ cdef DPNPFuncType dpnp_dtype_to_DPNPFuncType(dtype)
cdef dpnp_DPNPFuncType_to_dtype(size_t type)


"""
Bitwise functions
"""
cpdef dpnp_descriptor dpnp_bitwise_and(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_bitwise_or(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_bitwise_xor(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_invert(dpnp_descriptor x1)
cpdef dpnp_descriptor dpnp_left_shift(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_right_shift(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)


"""
Logic functions
"""
Expand Down
1 change: 0 additions & 1 deletion dpnp/dpnp_algo/dpnp_algo.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ __all__ = [


include "dpnp_algo_arraycreation.pxi"
include "dpnp_algo_bitwise.pxi"
include "dpnp_algo_counting.pxi"
include "dpnp_algo_indexing.pxi"
include "dpnp_algo_linearalgebra.pxi"
Expand Down
Loading

0 comments on commit bde1b43

Please sign in to comment.