Skip to content

Commit c3341fd

Browse files
author
Diptorup Deb
authored
Merge pull request #1470 from IntelPython/main
Update release0.23 branch with final tag.
2 parents 223df44 + 46e90f6 commit c3341fd

Some content is hidden

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

51 files changed

+747
-1398
lines changed

.github/workflows/conda-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
fail-fast: false
3131
matrix:
3232
python: ['3.9', '3.10', '3.11']
33-
os: [ubuntu-latest, windows-latest]
33+
os: [ubuntu-latest, windows-2019]
3434

3535
runs-on: ${{ matrix.os }}
3636

.github/workflows/coverage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
# Ignoring test due to opencl driver optimization bug
5555
- name: Run tests with coverage
5656
run: |
57-
pytest -q --cov --cov-report xml --pyargs numba_dpex \
57+
pytest -q --cov=./ --cov-report xml --pyargs numba_dpex \
5858
-k 'not test_1d_strided_dpnp_array_in_kernel[2]'
5959
6060
- name: Coveralls

.github/workflows/cpp_style_checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
steps:
1919
- uses: actions/checkout@v4
2020
- name: Run clang-format style check for C/C++ programs.
21-
uses: jidicula/clang-format-action@v4.11.0
21+
uses: jidicula/clang-format-action@v4.13.0
2222
with:
2323
clang-format-version: '14'
2424
check-path: 'numba_dpex/dpctl_iface'

.github/workflows/gh-pages.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
run: make html
5252

5353
- name: GitHub Pages [main]
54-
uses: peaceiris/actions-gh-pages@v3.9.3
54+
uses: peaceiris/actions-gh-pages@v4.0.0
5555
if: ${{ github.ref == 'refs/heads/main' }}
5656
with:
5757
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -64,7 +64,7 @@ jobs:
6464
user_email: 'github-actions[bot]@users.noreply.github.com'
6565

6666
- name: GitHub Pages [PR]
67-
uses: peaceiris/actions-gh-pages@v3.9.3
67+
uses: peaceiris/actions-gh-pages@v4.0.0
6868
if: ${{ github.event.pull_request && github.event.action != 'closed' }}
6969
with:
7070
github_token: ${{ secrets.GITHUB_TOKEN }}
@@ -88,7 +88,7 @@ jobs:
8888

8989
- name: Publish release
9090
if: startsWith(github.ref, 'refs/heads/release')
91-
uses: peaceiris/actions-gh-pages@v3.9.3
91+
uses: peaceiris/actions-gh-pages@v4.0.0
9292
with:
9393
github_token: ${{ secrets.GITHUB_TOKEN }}
9494
destination_dir : next_release
@@ -104,7 +104,7 @@ jobs:
104104
105105
- name: Publish tag
106106
if: startsWith(github.ref, 'refs/tags/')
107-
uses: peaceiris/actions-gh-pages@v3.9.3
107+
uses: peaceiris/actions-gh-pages@v4.0.0
108108
with:
109109
github_token: ${{ secrets.GITHUB_TOKEN }}
110110
destination_dir : ${{ steps.capture_tag.outputs.tag_number }}

.github/workflows/openssf-scorecard.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
persist-credentials: false
4141

4242
- name: "Run analysis"
43-
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
43+
uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
4444
with:
4545
results_file: results.sarif
4646
results_format: sarif
@@ -71,6 +71,6 @@ jobs:
7171
# Upload the results to GitHub's code scanning dashboard.
7272
- name: "Upload to code-scanning"
7373
if: ${{ github.event_name == 'push' }}
74-
uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
74+
uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6
7575
with:
7676
sarif_file: results.sarif

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ _skbuild
2626

2727
docs/source/developer/autogen*
2828

29+
# Ignore versioneer generated files
30+
numba_dpex/_version.py
31+
2932
# Ignore generated cpp files
3033
numba_dpex/dpnp_iface/*.cpp
3134
numba_dpex/dpnp_iface/*.h

CHANGELOG.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,21 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [0.23.0] - 2024-04-XX
7+
## [0.23.0] - 2024-05-28
88

99
### Fixed
1010
* Array alignment problem for stack arrays allocated for kernel arguments. (#1357)
1111
* Issue #892, #906 caused by incorrect code generation for indexing (#1377)
12-
* Fix `KernelHasReturnValueError` inside `KernelDispatcher`. (#1394)
12+
* Generation of `KernelHasReturnValueError` error inside `KernelDispatcher`. (#1394)
1313
* Issue #1390: broken support for slicing into `dpctl.tensor.usm_ndarray` in kernels (#1425)
14+
* Support for Wheels package on Windows (#1430)
15+
* Incorrect mangled name for kernel function arguments (#1443)
16+
* Remove artifacts from conda/wheel packages residing in root level (#1450)
17+
* GDB tests to work properly on Intel Max GPU (#1451)
18+
* Improper wheels installation on unsupported platforms (#1452)
19+
* Ref-counting of Python object temporaries in unboxing code (#1454)
20+
* Segfault caused by using `malloc` to allocate `NRT_MemInfo`. Replaced with Numba's NRT `alloc` (#1458)
21+
* Incorrect package name in README.md (#1463)
1422

1523
### Added
1624
* A new overloaded `dimensions` attribute for all index-space id classes (#1359)
@@ -24,18 +32,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2432
* A `sycl::local_accessor`-like API (`kernel_api.LocalAccessor`) for numba-dpex kernel (#1331)
2533
* Specialization support for `device_func` decorator (#1398)
2634
* Support for all `kernel_api` functions inside the `numba_dpex.kernel` decorator. (#1400)
35+
* Support for dpnp 0.15 (#1434, #1464)
36+
* Improvements to pyproject.toml configs to build numba-dpex from source. (#1449)
37+
* Load the `SPV_INTEL_variable_length_array` SPIR-V extension to supporting arrays in private address-space on Intel Max GPU. (#1451)
2738

2839
### Changed
2940
* Default inline threshold value set to `2` from `None`. (#1385)
3041
* Port parfor kernel templates to `kernel_api` (#1416), (#1424)
42+
* Use `SPIRVKernelDispatcher` for parfor kernel dispatch (#1435, #1448)
43+
* All examples use the latest dpctl API (#1431)
3144
* Minimum required dpctl version is now 0.16.1
32-
* Minimum required numba version is now 0.59.0
45+
* Minimum required numba version is now 0.59.0 (#1462)
3346

3447
### Removed
3548
* OpenCL-like kernel API functions (#1420)
3649
* `func` decorator (replaced by `device_func`) (#1400)
3750
* `numba_dpex.experimental.kernel` and `numba_dpex.experimental.device_func` (#1400)
3851

52+
3953
## [0.22.0] - 2024-02-19
4054

4155
### Fixed

MANIFEST.in

Lines changed: 0 additions & 6 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414

15-
Data-parallel Extension for Numba* (numba-dpex) is an open-source standalone
15+
Data Parallel Extension for Numba* (numba-dpex) is an open-source standalone
1616
extension for the [Numba](http://numba.pydata.org) Python JIT compiler.
1717
Numba-dpex provides a [SYCL*](https://sycl.tech/)-like API for kernel
1818
programming Python. SYCL* is an open standard developed by the [Unified

conda-recipe/bld.bat

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,18 @@ for /f %%f in ('dir /b /S .\dist') do (
3535

3636
:: wheel file was renamed
3737
for /f %%f in ('dir /b /S .\dist') do (
38-
%PYTHON% -m pip install %%f
38+
%PYTHON% -m pip install %%f ^
39+
--no-build-isolation ^
40+
--no-deps ^
41+
--only-binary :all: ^
42+
--no-index ^
43+
--prefix %PREFIX% ^
44+
-vv
3945
if %ERRORLEVEL% neq 0 exit 1
4046
)
4147

4248
:: Copy wheel package
4349
if NOT "%WHEELS_OUTPUT_FOLDER%"=="" (
44-
for /f %%f in ('dir /b /S .\dist') do (
45-
copy %%f %WHEELS_OUTPUT_FOLDER%
46-
if %ERRORLEVEL% neq 0 exit 1
47-
)
50+
copy dist\numba_dpex*.whl %WHEELS_OUTPUT_FOLDER%
51+
if errorlevel 1 exit 1
4852
)

conda-recipe/build.sh

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ echo "--gcc-toolchain=${BUILD_PREFIX} --sysroot=${BUILD_PREFIX}/${HOST}/sysroot
99
ICPXCFG="$(pwd)/icpx_for_conda.cfg"
1010
ICXCFG="$(pwd)/icpx_for_conda.cfg"
1111

12+
read -r GLIBC_MAJOR GLIBC_MINOR <<<"$(conda list '^sysroot_linux-64$' \
13+
| tail -n 1 | awk '{print $2}' | grep -oP '\d+' | head -n 2 | tr '\n' ' ')"
14+
1215
export ICXCFG
1316
export ICPXCFG
1417

@@ -26,8 +29,15 @@ export PATH=$CONDA_PREFIX/bin-llvm:$PATH
2629
# -wnx flags mean: --wheel --no-isolation --skip-dependency-check
2730
${PYTHON} -m build -w -n -x
2831
${PYTHON} -m wheel tags --remove --build "$GIT_DESCRIBE_NUMBER" \
29-
--platform-tag manylinux2014_x86_64 dist/numba_dpex*.whl
30-
${PYTHON} -m pip install dist/numba_dpex*.whl
32+
--platform-tag "manylinux_${GLIBC_MAJOR}_${GLIBC_MINOR}_x86_64" \
33+
dist/numba_dpex*.whl
34+
${PYTHON} -m pip install dist/numba_dpex*.whl \
35+
--no-build-isolation \
36+
--no-deps \
37+
--only-binary :all: \
38+
--no-index \
39+
--prefix "${PREFIX}" \
40+
-vv
3141

3242
# Copy wheel package
3343
if [[ -v WHEELS_OUTPUT_FOLDER ]]; then

conda-recipe/meta.yaml

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
{% set excluded_compiler_version2 = "2024.0.2" %}
44
{% set excluded_compiler_version3 = "2024.0.3" %}
55

6+
{% set pyproject = load_file_data('pyproject.toml') %}
7+
{% set py_build_deps = pyproject.get('build-system', {}).get('requires', []) %}
8+
69
package:
710
name: numba-dpex
811
version: {{ GIT_DESCRIBE_TAG }}
@@ -21,34 +24,38 @@ requirements:
2124
- {{ compiler('cxx') }}
2225
- {{ compiler('dpcpp') }} >={{ required_compiler_version }},!={{ excluded_compiler_version1 }},!={{ excluded_compiler_version2 }},!={{ excluded_compiler_version3 }} # [win]
2326
- {{ compiler('dpcpp') }} >={{ required_compiler_version }},!={{ excluded_compiler_version1 }},!={{ excluded_compiler_version2 }} # [linux]
24-
# specific version of sysroot required by dpcpp, but 2024.0.0 package
25-
# does not have it in meta data
26-
- sysroot_linux-64 >=2.28 # [linux]
27+
# Minimal supported version of sysroot (which is version of glibc) to
28+
# have compatibility with wider range of linux distributions.
29+
# 2.28 is the minimal supported version by dpcpp
30+
- sysroot_linux-64 =2.28 # [linux]
2731
host:
32+
- python
33+
- pip >=24.0
2834
- dpcpp-cpp-rt >={{ required_compiler_version }},!={{ excluded_compiler_version1 }},!={{ excluded_compiler_version2 }},!={{ excluded_compiler_version3 }} # [win]
2935
- dpcpp-cpp-rt >={{ required_compiler_version }},!={{ excluded_compiler_version1 }},!={{ excluded_compiler_version2 }} # [linux]
30-
- python
36+
# ensure we are using latest version of setuptools, since we don't need
37+
# editable environments for release.
3138
- setuptools >=69
32-
- scikit-build >=0.17
33-
- ninja >=1.11.1 # [not win]
34-
- cmake >=3.29
35-
- numba >=0.59
36-
- llvmlite >=0.42.0
37-
- dpctl >=0.16.1
38-
- dpnp >=0.14
39-
- numpy >=1.24
40-
# TODO: there is no 2024 release for python 3.11
41-
# - dpcpp-llvm-spirv >={{ required_compiler_version }}
42-
- dpcpp-llvm-spirv >=2023.0
43-
- wheel >=0.43
44-
- pip >=24.0
45-
- python-build >=1.1
46-
- versioneer==0.29
39+
{% for dep in py_build_deps %}
40+
{% if dep.startswith('ninja') %}
41+
- {{ dep.split(';')[0] }} # [not win]
42+
{% elif dep.startswith('cmake') %}
43+
- {{ dep }}
44+
{% elif dep.startswith('build>=') %}
45+
- {{ 'python-' ~ dep }}
46+
{% else %}
47+
- {{ dep|replace('_','-') }}
48+
{% endif %}
49+
{% endfor %}
4750
# versioneer dependency
4851
- tomli # [py<311]
52+
# While we don't need it for build, but install it here, so we can
53+
# pin_compatible at run section.
54+
- dpcpp-llvm-spirv >={{ required_compiler_version }}
4955
run:
5056
- {{ pin_compatible('dpcpp-cpp-rt', min_pin='x.x', max_pin='x') }}
5157
- {{ pin_compatible('intel-cmplr-lib-rt', min_pin='x.x', max_pin='x') }}
58+
# TODO: pick up min version from dep
5259
- {{ pin_compatible('dpcpp-llvm-spirv', min_pin='x.x', max_pin='x') }}
5360
- {{ pin_compatible('dpnp', min_pin='x.x.x', max_pin='x.x') }}
5461
- {{ pin_compatible('dpctl', min_pin='x.x.x', max_pin='x.x') }}

numba_dpex/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from numba import __version__ as numba_version
1818

1919
from .kernel_api_impl.spirv import target as spirv_kernel_target
20-
from .numba_patches import patch_is_ufunc
20+
from .numba_patches import patch_ufuncs
2121
from .register_kernel_api_overloads import init_kernel_api_spirv_overloads
2222

2323

@@ -70,7 +70,7 @@ def parse_sem_version(version_string: str) -> Tuple[int, int, int]:
7070
dpctl_sem_version = parse_sem_version(dpctl.__version__)
7171

7272
# Monkey patches
73-
patch_is_ufunc.patch()
73+
patch_ufuncs.patch()
7474

7575
from numba import prange # noqa E402
7676

0 commit comments

Comments
 (0)