Skip to content

Commit

Permalink
Merge master to gold/2021 (#1441)
Browse files Browse the repository at this point in the history
* Add a copy for strided arrays in dpnp.dot()

* update versions

* Rework transpose methods to use dpctl.tensor functions (#1389)

* Rework transpose methods to call dpctl.tensor functions

* Applied review comments & added more tests

* Obtain a proper result type on device without fp64 (#1429)

* Obtain a proper result type on device without fp64

* remove excess defenitions

* Reuse dpctl.tensor.reshape (#1391)

* Rework transpose methods to call dpctl.tensor functions

* Reuse dpctl.tensor.reshape

* added dpnp.shape() and unmuted more tests

* fixed compiling issue & unmuted reshaper tests with order param

* Resolve merge issues

* resolve type mismatch on Win

* Use MCG59 engine on GPU device (#1423)

* Use MCG59 engine on GPU device

* Fix issue for Windows

* reduce precision in tests

* move w/a before import dpctl

* Reuse add(), multiply() and subtract() from dpctl (#1430)

* Reuse add(), multiply() and subtract() from dpctl

* add in-place support

* Reuse dpctl.tensor.sum for dpnp.sum (#1426)

* Reuse dpctl.tensor.sun for dpnp.sum

* Update tests for dpnp.sum

* Fix remarks

* Update tests/third_party/cupy/testing/helper.py

---------

Co-authored-by: Anton <[email protected]>

* Workaround to Klocwork (#1433)

* Add inplace support of divide (#1434)

* Add dpnp.result_type() support (#1435)

* Add dpnp.result_type() support

* Update dpnp/dpnp_iface_manipulation.py

Co-authored-by: Natalia Polina <[email protected]>

---------

Co-authored-by: Natalia Polina <[email protected]>

* Implementation of dpnp.mean() (#1431)

* Reuse dpctl.tensor.sun for dpnp.sum

* Update tests for dpnp.sum

* Fix remarks

* Implementation of dpnp.mean

* Update logic for dpnp.mean function

* add normalize_axis_tuple

* Additional tests for dpnp.mean

* Fix minor remarks

* Add inplace support of divide

* Use inplace divide only for dpnp.inexact types

* Update tests for dpnp.mean

* Skip test_sample.py::TestRandint2::test_bound_float1

* Remove unused import

* Update dtype check

* Update dpnp/dpnp_iface_statistics.py

* Return deleted skips

---------

Co-authored-by: Anton Volkov <[email protected]>
Co-authored-by: Anton <[email protected]>

* New implementation of dpnp.outer (#1436)

* Add a new implementation of dpnp.outer

* Update dpnp.outer implementation

---------

Co-authored-by: Anton <[email protected]>

* Set dpnp dependency on dpctl>=0.14.3 (#1437)

* Implement dpnp.cov() though existing dpnp methods (#1396)

* Implement dpnp.cov() though existing dpnp methods

* Applied review comments

* Clean up the code to get rid of todo

* use dpnp.mean()

* Added ChangeLog.md (#1439)

* Added ChangeLog.md

* exclude PR for comprasion ops

* Update version to 0.12.0 (#1440)

---------

Co-authored-by: vlad-perevezentsev <[email protected]>
Co-authored-by: Natalia Polina <[email protected]>
  • Loading branch information
3 people authored Jun 15, 2023
1 parent 67bead1 commit 57ce272
Show file tree
Hide file tree
Showing 51 changed files with 1,737 additions and 1,146 deletions.
4 changes: 0 additions & 4 deletions .github/workflows/conda-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,6 @@ jobs:
run: |
python -m pytest -q -ra --disable-warnings -vv ${{ env.TEST_SCOPE }}
working-directory: ${{ env.tests-path }}
env:
SYCL_QUEUE_THREAD_POOL_SIZE: 6

test_windows:
name: Test ['windows-latest', python='${{ matrix.python }}']
Expand Down Expand Up @@ -335,8 +333,6 @@ jobs:
run: |
python -m pytest -q -ra --disable-warnings -vv ${{ env.TEST_SCOPE }}
working-directory: ${{ env.tests-path }}
env:
SYCL_QUEUE_THREAD_POOL_SIZE: 6

upload:
name: Upload ['${{ matrix.os }}', python='${{ matrix.python }}']
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/generate_coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_PARALLEL: true
SYCL_QUEUE_THREAD_POOL_SIZE: 6

coveralls:
name: Indicate completion to coveralls.io
Expand Down
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.12.0] - 06/15/2023

### Added

* Implemented `dpnp.broadcast_to` function [#1333](https://github.com/IntelPython/dpnp/pull/1333)
* Implemented `dpnp.extract` function [#1340](https://github.com/IntelPython/dpnp/pull/1340)
* Implemented `dpnp.linalg.eigh` function through pybind11 extension of OneMKL call [#1383](https://github.com/IntelPython/dpnp/pull/1383)
* Implemented `dpnp.mean` function [#1431](https://github.com/IntelPython/dpnp/pull/1431)
* Added support of bool types in bitwise operations [#1334](https://github.com/IntelPython/dpnp/pull/1334)
* Added `out` parameter in `dpnp.add` function [#1329](https://github.com/IntelPython/dpnp/pull/1329)
* Added `out` parameter in `dpnp.multiply` function [#1365](https://github.com/IntelPython/dpnp/pull/1365)
* Added `out` parameter in `dpnp.sqrt` function [#1332](https://github.com/IntelPython/dpnp/pull/1332)
* Added `rowvar` parameter in `dpnp.cov` function [#1371](https://github.com/IntelPython/dpnp/pull/1371)
* Added `nbytes` property to dpnp array [#1359](https://github.com/IntelPython/dpnp/pull/1359)
* Introduced a new github Action to control code coverage [#1373](https://github.com/IntelPython/dpnp/pull/1373)
* Added change log [#1439](https://github.com/IntelPython/dpnp/pull/1439)


### Changed

* Leveraged `dpctl.tensor` implementation for `dpnp.place` function [#1337](https://github.com/IntelPython/dpnp/pull/1337)
* Leveraged `dpctl.tensor` implementation for `dpnp.moveaxis` function [#1382](https://github.com/IntelPython/dpnp/pull/1382)
* Leveraged `dpctl.tensor` implementation for `dpnp.squeeze` function [#1381](https://github.com/IntelPython/dpnp/pull/1381)
* Leveraged `dpctl.tensor` implementation for `dpnp.where` function [#1380](https://github.com/IntelPython/dpnp/pull/1380)
* Leveraged `dpctl.tensor` implementation for `dpnp.transpose` function [#1389](https://github.com/IntelPython/dpnp/pull/1389)
* Leveraged `dpctl.tensor` implementation for `dpnp.reshape` function [#1391](https://github.com/IntelPython/dpnp/pull/1391)
* Leveraged `dpctl.tensor` implementation for `dpnp.add`, `dpnp.multiply` and `dpnp.subtract` functions [#1430](https://github.com/IntelPython/dpnp/pull/1430)
* Leveraged `dpctl.tensor` implementation for `dpnp.sum` function [#1426](https://github.com/IntelPython/dpnp/pull/1426)
* Leveraged `dpctl.tensor` implementation for `dpnp.result_type` function [#1435](https://github.com/IntelPython/dpnp/pull/1435)
* Reused OneDPL `std::nth_element` function in `dpnp.partition` with 1d array [#1406](https://github.com/IntelPython/dpnp/pull/1406)
* Transitioned dpnp build system to use scikit-build [#1349](https://github.com/IntelPython/dpnp/pull/1349)
* Renamed included dpnp_algo_*.pyx files to *.pxi [#1356](https://github.com/IntelPython/dpnp/pull/1356)
* Implemented support of key as a tuple in `dpnp.__getitem__()` and `dpnp.__setitem__()` functions [#1362](https://github.com/IntelPython/dpnp/pull/1362)
* Selected dpnp own kernels for elementwise functions instead of OneMKL VM calls on a device without fp64 aspect [#1386](https://github.com/IntelPython/dpnp/pull/1386)
* Pinned to `sysroot>=2.28` and transitioned to `conda-forge` channel [#1408](https://github.com/IntelPython/dpnp/pull/1408)
* Redesigned `dpnp.divide` implementation to call `div` from OneMKL for C-contiguous data or to use `dpctl.tensor` library otherwise [#1418](https://github.com/IntelPython/dpnp/pull/1418)
* Changed an engine used for random generated array on GPU device from MT19937 to MCG59 [#1423](https://github.com/IntelPython/dpnp/pull/1423)
* Implemented in-place support of `dpnp.divide` [#1434](https://github.com/IntelPython/dpnp/pull/1434)
* Redesigned `dpnp.outer` implementation through `dpnp.multiply` with broadcasted arrays [#1436](https://github.com/IntelPython/dpnp/pull/1436)
* Pinned to `dpctl>=0.14.3` as host and run dependencies [#1437](https://github.com/IntelPython/dpnp/pull/1437)
* Reimplemented `dpnp.cov` through existing dpnp function instead of a separate kernel [#1396](https://github.com/IntelPython/dpnp/pull/1396)


### Fixed

* Fixed `dpnp.asarray` function to accept a sequence of dpnp arrays [#1355](https://github.com/IntelPython/dpnp/pull/1355)
* Fixed crash in `dpnp.sum` with an empty array [#1369](https://github.com/IntelPython/dpnp/pull/1369)
* Fixed compilation error around `sycl::abs` with DPC++ 2023.2.0 [#1393](https://github.com/IntelPython/dpnp/pull/1393)
* Fixed Klockwork run and enabled cmake verbose mode for conda build [#1433](https://github.com/IntelPython/dpnp/pull/1433)
2 changes: 1 addition & 1 deletion conda-recipe/bld.bat
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set "DPL_ROOT_HINT=%PREFIX%/Library"
%PYTHON% -m dpctl --cmakedir > Output
set /p DPCTL_CMAKE_DIR= < Output

set "SKBUILD_ARGS=-G Ninja -- -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icx"
set "SKBUILD_ARGS=-G Ninja -- -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icx -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
set "SKBUILD_ARGS=%SKBUILD_ARGS% -DDPCTL_MODULE_PATH:PATH=%DPCTL_CMAKE_DIR% "
set "SKBUILD_ARGS=%SKBUILD_ARGS% -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"

Expand Down
8 changes: 7 additions & 1 deletion conda-recipe/build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#!/bin/bash

# Workaround to Klocwork overwriting LD_LIBRARY_PATH that was modified
# by DPC++ compiler conda packages. Will need to be added to DPC++ compiler
# activation scripts.
export LDFLAGS="$LDFLAGS -Wl,-rpath,$PREFIX/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PREFIX/compiler/lib/intel64_lin:$PREFIX/compiler/lib:$PREFIX/lib"

# Intel LLVM must cooperate with compiler and sysroot from conda
echo "--gcc-toolchain=${BUILD_PREFIX} --sysroot=${BUILD_PREFIX}/${HOST}/sysroot -target ${HOST}" > icpx_for_conda.cfg
export ICPXCFG="$(pwd)/icpx_for_conda.cfg"
Expand All @@ -10,7 +16,7 @@ export TBB_ROOT_HINT=$PREFIX
export DPL_ROOT_HINT=$PREFIX
export MKL_ROOT_HINT=$PREFIX
SKBUILD_ARGS="-- -DDPCTL_MODULE_PATH=$($PYTHON -m dpctl --cmakedir) "
SKBUILD_ARGS="${SKBUILD_ARGS} -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx"
SKBUILD_ARGS="${SKBUILD_ARGS} -DCMAKE_C_COMPILER:PATH=icx -DCMAKE_CXX_COMPILER:PATH=icpx -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
SKBUILD_ARGS="${SKBUILD_ARGS} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"

# Build wheel package
Expand Down
4 changes: 2 additions & 2 deletions conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ requirements:
- cmake >=3.21
- ninja
- git
- dpctl >=0.14.2
- dpctl >=0.14.3
- mkl-devel-dpcpp {{ environ.get('MKL_VER', '>=2023.1.0') }}
- onedpl-devel
- tbb-devel
Expand All @@ -25,7 +25,7 @@ requirements:
- sysroot_linux-64 >=2.28 # [linux]
run:
- python
- dpctl >=0.14.2
- dpctl >=0.14.3
- {{ pin_compatible('dpcpp-cpp-rt', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('mkl-dpcpp', min_pin='x.x', max_pin='x') }}
- {{ pin_compatible('numpy', min_pin='x.x', max_pin='x') }}
Expand Down
4 changes: 2 additions & 2 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
author = 'Intel'

# The short X.Y version
version = '0.11'
version = '0.12'
# The full version, including alpha/beta/rc tags
release = '0.11.2dev1'
release = '0.12.0'


# -- General configuration ---------------------------------------------------
Expand Down
6 changes: 3 additions & 3 deletions dpnp/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@
import os
mypath = os.path.dirname(os.path.realpath(__file__))

# workaround against hanging in OneMKL calls and in DPCTL
os.environ.setdefault('SYCL_QUEUE_THREAD_POOL_SIZE', '6')

import dpctl
dpctlpath = os.path.dirname(dpctl.__file__)

Expand All @@ -41,9 +44,6 @@
os.add_dll_directory(dpctlpath)
os.environ["PATH"] = os.pathsep.join([os.getenv("PATH", ""), mypath, dpctlpath])

# workaround against hanging in OneMKL calls
os.environ.setdefault('SYCL_QUEUE_THREAD_POOL_SIZE', '6')

from dpnp.dpnp_array import dpnp_array as ndarray
from dpnp.dpnp_flatiter import flatiter as flatiter

Expand Down
2 changes: 1 addition & 1 deletion dpnp/backend/doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = "DPNP C++ backend kernel library"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 0.11.2dev1
PROJECT_NUMBER = 0.12.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
3 changes: 0 additions & 3 deletions dpnp/backend/include/dpnp_iface_fptr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ enum class DPNPFuncName : size_t
DPNP_FN_COUNT_NONZERO, /**< Used in numpy.count_nonzero() impl */
DPNP_FN_COUNT_NONZERO_EXT, /**< Used in numpy.count_nonzero() impl, requires extra parameters */
DPNP_FN_COV, /**< Used in numpy.cov() impl */
DPNP_FN_COV_EXT, /**< Used in numpy.cov() impl, requires extra parameters */
DPNP_FN_CROSS, /**< Used in numpy.cross() impl */
DPNP_FN_CROSS_EXT, /**< Used in numpy.cross() impl, requires extra parameters */
DPNP_FN_CUMPROD, /**< Used in numpy.cumprod() impl */
Expand Down Expand Up @@ -218,7 +217,6 @@ enum class DPNPFuncName : size_t
DPNP_FN_MAXIMUM, /**< Used in numpy.maximum() impl */
DPNP_FN_MAXIMUM_EXT, /**< Used in numpy.maximum() impl , requires extra parameters */
DPNP_FN_MEAN, /**< Used in numpy.mean() impl */
DPNP_FN_MEAN_EXT, /**< Used in numpy.mean() impl, requires extra parameters */
DPNP_FN_MEDIAN, /**< Used in numpy.median() impl */
DPNP_FN_MEDIAN_EXT, /**< Used in numpy.median() impl, requires extra parameters */
DPNP_FN_MIN, /**< Used in numpy.min() impl */
Expand Down Expand Up @@ -360,7 +358,6 @@ enum class DPNPFuncName : size_t
DPNP_FN_TANH, /**< Used in numpy.tanh() impl */
DPNP_FN_TANH_EXT, /**< Used in numpy.tanh() impl, requires extra parameters */
DPNP_FN_TRANSPOSE, /**< Used in numpy.transpose() impl */
DPNP_FN_TRANSPOSE_EXT, /**< Used in numpy.transpose() impl, requires extra parameters */
DPNP_FN_TRACE, /**< Used in numpy.trace() impl */
DPNP_FN_TRACE_EXT, /**< Used in numpy.trace() impl, requires extra parameters */
DPNP_FN_TRAPZ, /**< Used in numpy.trapz() impl */
Expand Down
24 changes: 2 additions & 22 deletions dpnp/backend/kernels/dpnp_krnl_manipulation.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//*****************************************************************************
// Copyright (c) 2016-2020, Intel Corporation
// Copyright (c) 2016-2023, Intel Corporation
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
Expand Down Expand Up @@ -211,6 +211,7 @@ void dpnp_elemwise_transpose_c(void* array1_in,
size,
dep_event_vec_ref);
DPCTLEvent_WaitAndThrow(event_ref);
DPCTLEvent_Delete(event_ref);
}

template <typename _DataType>
Expand All @@ -222,17 +223,6 @@ void (*dpnp_elemwise_transpose_default_c)(void*,
void*,
size_t) = dpnp_elemwise_transpose_c<_DataType>;

template <typename _DataType>
DPCTLSyclEventRef (*dpnp_elemwise_transpose_ext_c)(DPCTLSyclQueueRef,
void*,
const shape_elem_type*,
const shape_elem_type*,
const shape_elem_type*,
size_t,
void*,
size_t,
const DPCTLEventVectorRef) = dpnp_elemwise_transpose_c<_DataType>;

void func_map_init_manipulation(func_map_t& fmap)
{
fmap[DPNPFuncName::DPNP_FN_REPEAT][eft_INT][eft_INT] = {eft_INT, (void*)dpnp_repeat_default_c<int32_t>};
Expand All @@ -253,15 +243,5 @@ void func_map_init_manipulation(func_map_t& fmap)
(void*)dpnp_elemwise_transpose_default_c<float>};
fmap[DPNPFuncName::DPNP_FN_TRANSPOSE][eft_DBL][eft_DBL] = {eft_DBL,
(void*)dpnp_elemwise_transpose_default_c<double>};

fmap[DPNPFuncName::DPNP_FN_TRANSPOSE_EXT][eft_INT][eft_INT] = {eft_INT,
(void*)dpnp_elemwise_transpose_ext_c<int32_t>};
fmap[DPNPFuncName::DPNP_FN_TRANSPOSE_EXT][eft_LNG][eft_LNG] = {eft_LNG,
(void*)dpnp_elemwise_transpose_ext_c<int64_t>};
fmap[DPNPFuncName::DPNP_FN_TRANSPOSE_EXT][eft_FLT][eft_FLT] = {eft_FLT,
(void*)dpnp_elemwise_transpose_ext_c<float>};
fmap[DPNPFuncName::DPNP_FN_TRANSPOSE_EXT][eft_DBL][eft_DBL] = {eft_DBL,
(void*)dpnp_elemwise_transpose_ext_c<double>};

return;
}
Loading

0 comments on commit 57ce272

Please sign in to comment.