Skip to content

Merge master into gold #1619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 63 commits into from
Nov 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
572bd16
implement dpnp.positive
vtavana Sep 14, 2023
66f26c4
address comments
vtavana Sep 21, 2023
d974660
implement maximum and minimum
vtavana Sep 6, 2023
411a2e9
address comments
vtavana Sep 15, 2023
e3be611
add new tests
vtavana Sep 21, 2023
946ff08
re-write dpnp.hypot (#1560)
vtavana Sep 29, 2023
d76d44e
implement dpnp.logaddexp (#1561)
vtavana Oct 2, 2023
95a9e2d
identity and tri with device keywords (#1577)
vtavana Oct 6, 2023
67fdb51
Added dependency on min dpctl version while creating build docs env (…
antonwolfy Oct 9, 2023
cf7362d
re-write dpnp.abs (#1575)
vtavana Oct 10, 2023
678f336
Clean up old implementation of logic functions
npolina4 Oct 10, 2023
5869e1f
Fix pre-commit
npolina4 Oct 10, 2023
3d11b5c
Spelling fixes pointed out by codespell (#1581)
antonwolfy Oct 10, 2023
4233e10
Merge branch 'master' into cleanup_logic_func
antonwolfy Oct 10, 2023
76e3f87
Merge pull request #1583 from IntelPython/cleanup_logic_func
npolina4 Oct 10, 2023
a484267
Updated atleast_2d and atleast_3d functions.
npolina4 Oct 10, 2023
a2b534a
Implemented dpnp.tile function.
npolina4 Oct 11, 2023
0fe9a00
Leverage dpctl.tensor.iinfo() and dpctl.tensor.finfo() implementation…
npolina4 Oct 11, 2023
8779dab
fix cholesky for 0-D array (#1584)
vtavana Oct 11, 2023
688c5cd
Added test_dims.py to public CI (#1588)
antonwolfy Oct 11, 2023
5a821f3
address comments
npolina4 Oct 11, 2023
243b046
Merge branch 'master' into implement_tile
npolina4 Oct 11, 2023
d4e3e79
re-write exp and log functions (#1576)
vtavana Oct 11, 2023
20551de
Removed ability to work with scalars from functions dpnp.atleast_1d, …
npolina4 Oct 11, 2023
c951d41
Allow different output type than input type when dispatching (#1590)
vtavana Oct 12, 2023
45da608
address comments
npolina4 Oct 12, 2023
e59c1f4
update cupy math tests (#1589)
vtavana Oct 12, 2023
8249846
Merge branch 'master' into update_atleast_func
npolina4 Oct 12, 2023
a73d959
Merge pull request #1585 from IntelPython/update_atleast_func
npolina4 Oct 13, 2023
aae4cff
Merge branch 'master' into implement_tile
npolina4 Oct 13, 2023
d77a907
Implemented dpnp.broadcast_arrays function.
npolina4 Oct 13, 2023
4850e53
Merge pull request #1586 from IntelPython/implement_tile
npolina4 Oct 13, 2023
343f06d
Merge branch 'master' into broadcast_arrays
antonwolfy Oct 13, 2023
0501e9d
address comments
npolina4 Oct 13, 2023
7b96b9b
Updated dpnp.vstack function (#1595)
npolina4 Oct 16, 2023
3b5a588
fix `dpnp.linalg.qr` and `dpnp.linalg.det` functions (#1592)
vtavana Oct 16, 2023
1da02a3
Update dpnp.astype function
npolina4 Oct 16, 2023
2733c87
address comments
npolina4 Oct 16, 2023
2dcebcb
Merge branch 'master' into broadcast_arrays
npolina4 Oct 16, 2023
c1bf9ac
Add clean up job (#1593)
ZzEeKkAa Oct 16, 2023
16a2284
Merge branch 'master' into broadcast_arrays
antonwolfy Oct 16, 2023
3432716
added tests for broadcast_arrays function
npolina4 Oct 17, 2023
b469ed7
Merge pull request #1594 from IntelPython/broadcast_arrays
npolina4 Oct 17, 2023
6449353
Merge branch 'master' into update_astype
npolina4 Oct 17, 2023
258fe36
address comments
npolina4 Oct 17, 2023
2aeb333
Added tests for ndarray unary OPs (#1599)
antonwolfy Oct 18, 2023
bdad3e0
address comments
npolina4 Oct 18, 2023
5254c3e
Merge branch 'master' into update_astype
npolina4 Oct 18, 2023
3976ea6
Muted a test `test_array_creation_cross_device` (#1601)
antonwolfy Oct 18, 2023
ab1cadc
Merge branch 'master' into update_astype
antonwolfy Oct 18, 2023
7bbbf1a
Merge pull request #1597 from IntelPython/update_astype
npolina4 Oct 18, 2023
f58d19d
Implemented dpnp.can_cast function (#1600)
npolina4 Oct 19, 2023
38b0c4f
Removed absolete TODO from (#1605)
antonwolfy Oct 20, 2023
5d8cf2d
Improve coverage report (#1609)
antonwolfy Oct 30, 2023
d389bd4
Use IntelSYCL cmake script (#1611)
antonwolfy Oct 31, 2023
83d28d7
Add support of missing arguments in `dpnp.count_nonzero` (#1615)
antonwolfy Nov 3, 2023
a173ccc
Added support dtype and out arguments for dpnp.concatenate and dpnp.s…
npolina4 Nov 3, 2023
de562ee
update elementwise call API (#1617)
vtavana Nov 6, 2023
6466c73
Merge branch 'master' into merge_master_into_gold
vtavana Nov 6, 2023
3fb4f24
update dpctl version
vtavana Nov 7, 2023
b5d0de3
Requite 0.15.1dev1 or higher
oleksandr-pavlyk Nov 8, 2023
105ffd1
Require 0.15.1dev1 or higher
oleksandr-pavlyk Nov 8, 2023
4c5f844
Do not pin numpy in host section
oleksandr-pavlyk Nov 8, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-sphinx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:

- name: Install dpnp dependencies
run: |
conda install numpy"<1.24" dpctl mkl-devel-dpcpp onedpl-devel tbb-devel dpcpp_linux-64 \
conda install numpy"<1.24" dpctl">=0.15.1dev1" mkl-devel-dpcpp onedpl-devel tbb-devel dpcpp_linux-64 \
cmake cython pytest ninja scikit-build sysroot_linux-64">=2.28" ${{ env.CHANNELS }}

- name: Install cuPy dependencies
Expand Down
39 changes: 38 additions & 1 deletion .github/workflows/conda-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,25 @@ env:
test_sycl_queue.py
test_umath.py
test_usm_type.py
third_party/cupy/core_tests/test_ndarray_complex_ops.py
third_party/cupy/core_tests
third_party/cupy/linalg_tests/test_product.py
third_party/cupy/logic_tests/test_comparison.py
third_party/cupy/logic_tests/test_truth.py
third_party/cupy/manipulation_tests/test_basic.py
third_party/cupy/manipulation_tests/test_dims.py
third_party/cupy/manipulation_tests/test_join.py
third_party/cupy/manipulation_tests/test_rearrange.py
third_party/cupy/manipulation_tests/test_transpose.py
third_party/cupy/math_tests/test_arithmetic.py
third_party/cupy/math_tests/test_explog.py
third_party/cupy/math_tests/test_floating.py
third_party/cupy/math_tests/test_hyperbolic.py
third_party/cupy/math_tests/test_matmul.py
third_party/cupy/math_tests/test_misc.py
third_party/cupy/math_tests/test_rounding.py
third_party/cupy/math_tests/test_trigonometric.py
third_party/cupy/sorting_tests/test_sort.py
third_party/cupy/sorting_tests/test_count.py
VER_JSON_NAME: 'version.json'
VER_SCRIPT1: "import json; f = open('version.json', 'r'); j = json.load(f); f.close(); "
VER_SCRIPT2: "d = j['dpnp'][0]; print('='.join((d[s] for s in ('version', 'build'))))"
Expand Down Expand Up @@ -395,3 +402,33 @@ jobs:
run: anaconda --token ${{ env.ANACONDA_TOKEN }} upload --user dppy --label dev ${{ env.PACKAGE_NAME }}-*.tar.bz2
env:
ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }}

cleanup_packages:
name: Clean up anaconda packages
needs: [upload]
runs-on: 'ubuntu-latest'
defaults:
run:
shell: bash -el {0}
steps:
- uses: conda-incubator/setup-miniconda@v2
with:
run-post: false
channel-priority: "disabled"
channels: conda-forge
python-version: '3.11'

- name: Install anaconda-client
run: conda install anaconda-client

- name: Checkout repo
uses: actions/checkout@v2
with:
repository: IntelPython/devops-tools
fetch-depth: 0

- name: Cleanup old packages
run: |
python scripts/cleanup-old-packages.py \
--verbose --force --token ${{ secrets.ANACONDA_TOKEN }} \
--package dppy/${{ env.PACKAGE_NAME }} --label dev
6 changes: 6 additions & 0 deletions .github/workflows/generate_coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,32 @@ jobs:
- name: Install Lcov
run: |
sudo apt-get install lcov

- name: Install dpnp dependencies
run: |
conda install cython llvm cmake">=3.21" scikit-build ninja pytest pytest-cov coverage[toml] \
dpctl dpcpp_linux-64 sysroot_linux-64">=2.28" mkl-devel-dpcpp tbb-devel onedpl-devel ${{ env.CHANNELS }}

- name: Conda info
run: |
conda info
conda list

- name: Build dpnp with coverage
run: |
python scripts/gen_coverage.py --pytest-opts="--ignore tests/test_random.py"

- name: Install coverall dependencies
run: |
sudo gem install coveralls-lcov
pip install coveralls==3.2.0

- name: Upload coverage data to coveralls.io
run: |
echo "Processing pytest-coverage"
export DPNP_PYTEST_LCOV=$(find . -name dpnp_pytest.lcov)
coveralls-lcov -v -n $DPNP_PYTEST_LCOV > pytest-dpnp-c-api-coverage.json

# merge file with coverage data and upload
echo "Merging files with coverage data"
coveralls --service=github --merge=pytest-dpnp-c-api-coverage.json
Expand Down
10 changes: 3 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
cmake_minimum_required(VERSION 3.21...3.26 FATAL_ERROR)

if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
cmake_policy(SET CMP0135 NEW)
endif()
cmake_minimum_required(VERSION 3.21...3.27 FATAL_ERROR)

project(dpnp
DESCRIPTION "NumPy-like API accelerated by SYCL."
Expand All @@ -27,7 +23,7 @@ endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DPCTL_MODULE_PATH})


find_package(IntelDPCPP REQUIRED)
find_package(IntelSYCL REQUIRED PATHS ${CMAKE_SOURCE_DIR}/dpnp/backend/cmake/Modules NO_DEFAULT_PATH)
find_package(TBB QUIET)
if(TBB_FOUND)
find_package(TBB REQUIRED)
Expand Down Expand Up @@ -77,7 +73,7 @@ FetchContent_Declare(
)
FetchContent_MakeAvailable(pybind11)

find_package(PythonExtensions REQUIRED)
find_package(Python REQUIRED COMPONENTS Development.Module)
find_package(NumPy REQUIRED)

set(CYTHON_FLAGS "-t -w \"${CMAKE_SOURCE_DIR}\"")
Expand Down
6 changes: 3 additions & 3 deletions conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ requirements:
host:
- python
- setuptools
- numpy 1.21
- numpy
- cython
- cmake >=3.21
- ninja
- git
- dpctl >=0.15.0
- dpctl >=0.15.1dev1
- mkl-devel-dpcpp {{ environ.get('MKL_VER', '>=2024.0.0') }}
- onedpl-devel
- tbb-devel
Expand All @@ -25,7 +25,7 @@ requirements:
- sysroot_linux-64 >=2.28 # [linux]
run:
- python
- dpctl >=0.15.0
- dpctl >=0.15.1dev1
- {{ 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
2 changes: 1 addition & 1 deletion doc/docstring_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def func(a, b=None, c=True):
-----------
Some limitations in comparison to baseline, ex:
Input array data types are limited by supported DPNP :ref:`Data types`.
Parameter ``c`` is supported only with default value ``True``.
Parameter `c` is supported only with default value ``True``.
Otherwise the function will be executed sequentially on CPU.

See Also
Expand Down
34 changes: 21 additions & 13 deletions dpnp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,45 +1,53 @@

function(build_dpnp_cython_ext _trgt _src _dest)
set(options SYCL)
cmake_parse_arguments(BUILD_DPNP_EXT "${options}" "" "" ${ARGN})
add_cython_target(${_trgt} ${_src} CXX OUTPUT_VAR _generated_src)
message(STATUS "Using ${_trgt}")
add_library(${_trgt} MODULE ${_generated_src})

Python_add_library(${_trgt} MODULE WITH_SOABI ${_generated_src})
set(_trgt_deps "${_trgt}_deps")
add_custom_target(${_trgt_deps} DEPENDS ${_src})
add_dependencies(${_trgt} ${_trgt_deps})

if (BUILD_DPNP_EXT_SYCL)
add_sycl_to_target(TARGET ${_trgt} SOURCES ${_generated_src})
endif()

if (DPNP_GENERATE_COVERAGE)
target_compile_definitions(${_trgt} PRIVATE CYTHON_TRACE=1 CYTHON_TRACE_NOGIL=1)
target_compile_options(${_trgt} PRIVATE "-fno-sycl-use-footer")
endif()
target_compile_definitions(${_trgt} PRIVATE NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)

# NumPy
target_compile_definitions(${_trgt} PRIVATE NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
target_include_directories(${_trgt} PRIVATE ${NumPy_INCLUDE_DIR})

# Dpctl
target_include_directories(${_trgt} PRIVATE ${Dpctl_INCLUDE_DIR})
target_link_directories(${_trgt} PRIVATE ${Dpctl_INCLUDE_DIR}/..)
target_link_libraries(${_trgt} DPCTLSyclInterface)
target_link_libraries(${_trgt} PRIVATE DPCTLSyclInterface)

set(_linker_options "LINKER:${DPNP_LDFLAGS}")
target_link_options(${_trgt} PRIVATE ${_linker_options})
python_extension_module(${_trgt})

if (DPNP_GENERATE_COVERAGE)
set(_copy_cxx_trgt "${_trgt}_copy_cxx")
add_custom_target(
${_copy_cxx_trgt} ALL
COMMAND ${CMAKE_COMMAND}
-DSOURCE_FILE=${_generated_src}
-DDEST=${CMAKE_CURRENT_SOURCE_DIR}
-P ${CMAKE_SOURCE_DIR}/dpnp/cmake/copy_existing.cmake
DEPENDS ${_trgt}
VERBATIM
COMMENT "Copying Cython-generated source for target ${_trgt} to dpnp source layout"
${_copy_cxx_trgt} ALL COMMAND ${CMAKE_COMMAND}
-DSOURCE_FILE=${_generated_src}
-DDEST=${CMAKE_CURRENT_SOURCE_DIR}
-P ${CMAKE_SOURCE_DIR}/dpnp/cmake/copy_existing.cmake
DEPENDS ${_trgt}
VERBATIM COMMENT "Copying Cython-generated source for target ${_trgt} to dpnp source layout"
)
endif()
install(TARGETS ${_trgt} LIBRARY DESTINATION ${_dest})
endfunction()

function(build_dpnp_cython_ext_with_backend _trgt _src _dest)
build_dpnp_cython_ext(${_trgt} ${_src} ${_dest})
target_link_libraries(${_trgt} dpnp_backend_library)
target_link_libraries(${_trgt} PRIVATE dpnp_backend_library)
if (UNIX)
set_target_properties(${_trgt} PROPERTIES INSTALL_RPATH "$ORIGIN/..")
endif()
Expand Down
Loading