Skip to content
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

Require dpcpp compiler 2024.0 and runtime >=2024.0 #1625

Merged
merged 9 commits into from
Nov 23, 2023

Conversation

npolina4
Copy link
Collaborator

@npolina4 npolina4 commented Nov 15, 2023

The PR pins DPC++ compiler and MKL version to the latest release.
Additionally a dependency on dpctl version is stepped due to changed interface in dpctl for elementwise functions.
While a dependency on dpctl version in run section is rewritten to use pin_compatible construction, but to result into the same expression as before: dpctl >={{ required_dpctl_version }}

Note1: coverage report can be collected only with DPC++ 2023.2 for now due to known compiler issue. It means dpnp needs to keep backward compatibility with dpctl=0.15.0 (later dpctl packages require DPC++ 2024.0).
To archive this dpctl needs to be installed from dppy/label/coverage channel, which has the latest dpctl content and was built with DPC++ 2023.2 compiler.
Once the issue will be resolved, it is proposed to removed the workaround and to switch back to use of dppy/label/dev channel.

Note2: the latest dpctl changes resolves wrong power result on Windows for complex types, previously it was:

# NumPy (Linux & Win): ((inf + 0j) ** 2) == (Inf + NaNj)

# Linux: ((inf + 0j) ** 2) == (Inf + NaNj)
# Win:   ((inf + 0j) ** 2) == (Inf + 0j)

Now the result is the same for both Linux and Windows and fully aligned with numpy. But since the latest dpctl isn't available on internal channel yet, the test is muted for Windows platform and has to be unmuted once the newer dpctl is available. Thus the TODO comment left in code to point that.

Note3: the PR partly covers the changes from #1623.

  • Have you provided a meaningful PR description?
  • Have you added a test, reproducer or referred to issue with a reproducer?
  • Have you tested your changes locally for CPU and GPU devices?
  • Have you made sure that new changes do not introduce compiler warnings?
  • Have you checked performance impact of proposed changes?
  • If this PR is a work in progress, are you filing the PR as a draft?

@npolina4 npolina4 requested a review from antonwolfy November 15, 2023 17:32
Copy link
Contributor

github-actions bot commented Nov 15, 2023

View rendered docs @ https://intelpython.github.io/dpnp/index.html

@ZzEeKkAa
Copy link
Contributor

ZzEeKkAa commented Nov 17, 2023

Not sure if it is possible for dpnp or not, but dpctl is flexible on dependencies to allow both 2023.2 and 2024.0 and this is not a case for dpnp:

dpnp 0.13.1dev0 py39h852cfe9_79
-------------------------------
file name   : dpnp-0.13.1dev0-py39h852cfe9_79.tar.bz2
name        : dpnp
version     : 0.13.1dev0
build       : py39h852cfe9_79
build number: 79
size        : 9.2 MB
license     : BSD-2-Clause
subdir      : linux-64
url         : https://conda.anaconda.org/dppy/label/dev/linux-64/dpnp-0.13.1dev0-py39h852cfe9_79.tar.bz2
md5         : 5386c26d88a3741fd7aaa210d6a477d5
timestamp   : 2023-11-13 20:39:11 UTC
dependencies:
  - __glibc >=2.28,<3.0.a0
  - dpcpp-cpp-rt >=2023.2,<2024.0a0
  - dpctl >=0.15.0
  - libgcc-ng >=13
  - libstdcxx-ng >=13
  - mkl-dpcpp >=2023.2,<2024.0a0
  - numpy >=1.24,<2.0a0
  - python >=3.9,<3.10.0a0
dpctl 0.15.1dev2 py39ha25a700_0
-------------------------------
file name   : dpctl-0.15.1dev2-py39ha25a700_0.tar.bz2
name        : dpctl
version     : 0.15.1dev2
build       : py39ha25a700_0
build number: 0
size        : 14.6 MB
license     : Apache-2.0
subdir      : linux-64
url         : https://conda.anaconda.org/dppy/label/dev/linux-64/dpctl-0.15.1dev2-py39ha25a700_0.tar.bz2
md5         : b5cdc2c5a39f52bb4af8e3949d9385ab
timestamp   : 2023-11-09 04:29:51 UTC
dependencies:
  - __glibc >=2.28,<3.0.a0
  - dpcpp-cpp-rt >=2023.2
  - level-zero
  - libgcc-ng >=13
  - libstdcxx-ng >=13
  - numpy >=1.22.3,<1.26
  - python >=3.9,<3.10.0a0

Currently environment resolution results in broken environment with latest (dpcpp-rt) because dpctl on intel channel allows latest dpcpp-rt on dpnp=0.13.0 and it is incompatible with latest dpctl due to missing attribute: AttributeError: module 'dpctl.tensor._tensor_impl' has no attribute '_acos_result_type'

dpnp 0.13.0 py39ha1a3bb5_170
----------------------------
file name   : dpnp-0.13.0-py39ha1a3bb5_170.tar.bz2
name        : dpnp
version     : 0.13.0
build       : py39ha1a3bb5_170
build number: 170
size        : 9.6 MB
license     : BSD-2-Clause
subdir      : linux-64
url         : https://conda.anaconda.org/intel/linux-64/dpnp-0.13.0-py39ha1a3bb5_170.tar.bz2
md5         : 9ed72ff6c025968e3475518405dc1e9b
timestamp   : 2023-10-17 00:00:28 UTC
dependencies:
  - __glibc >=2.28,<3.0.a0
  - dpcpp-cpp-rt >=2024.0,<2025.0a0
  - dpctl >=0.15.0
  - libgcc-ng >=13
  - libstdcxx-ng >=13
  - mkl-dpcpp >=2024.0,<2025.0a0
  - numpy >=1.21,<2.0a0
  - python >=3.9,<3.10.0a0

@antonwolfy antonwolfy force-pushed the require_dpcpp_2024-port branch from 4986177 to c1260cc Compare November 20, 2023 20:36
@antonwolfy antonwolfy self-assigned this Nov 20, 2023
@antonwolfy antonwolfy marked this pull request as ready for review November 20, 2023 22:08
@antonwolfy antonwolfy force-pushed the require_dpcpp_2024-port branch 2 times, most recently from c89f2f4 to cc8cb2c Compare November 23, 2023 10:44
@antonwolfy antonwolfy force-pushed the require_dpcpp_2024-port branch from cc8cb2c to ea821b9 Compare November 23, 2023 11:56
@antonwolfy antonwolfy merged commit 525116a into master Nov 23, 2023
39 of 45 checks passed
@antonwolfy antonwolfy deleted the require_dpcpp_2024-port branch November 23, 2023 13:33
@antonwolfy antonwolfy mentioned this pull request Nov 23, 2023
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants