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

update dpnp.dot implementation #1669

Merged
merged 15 commits into from
Feb 6, 2024
Merged

update dpnp.dot implementation #1669

merged 15 commits into from
Feb 6, 2024

Conversation

vtavana
Copy link
Collaborator

@vtavana vtavana commented Jan 25, 2024

In this PR, dpnp.dot is updated. 1) For integer and boolean data types, dpctl.tensor.vecdot form the Data Parallel Control library is used, 2) For real-valued floating point data types, dot routines from BLAS library of OneMKL are used, and 3) For complex data types, dotu routines from BLAS library of OneMKL are used.

Also, dpnp.matmul is updated to return a 1D array instead of 0D array when one of the inputs is 1D and the other one is inherently 1D.

  • 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?

@vtavana vtavana self-assigned this Jan 25, 2024
Copy link
Contributor

github-actions bot commented Jan 25, 2024

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

@vtavana vtavana marked this pull request as ready for review January 25, 2024 23:41
dpnp/backend/extensions/blas/dot.cpp Show resolved Hide resolved
tests/test_dot.py Outdated Show resolved Hide resolved
tests/test_dot.py Outdated Show resolved Hide resolved
dpnp/dpnp_iface_linearalgebra.py Show resolved Hide resolved
dpnp/dpnp_iface_linearalgebra.py Outdated Show resolved Hide resolved
dpnp/dpnp_iface_linearalgebra.py Show resolved Hide resolved
dpnp/dpnp_iface_linearalgebra.py Show resolved Hide resolved
dpnp/dpnp_iface_linearalgebra.py Show resolved Hide resolved
dpnp/dpnp_iface_linearalgebra.py Show resolved Hide resolved
dpnp/dpnp_utils/dpnp_utils_linearalgebra.py Outdated Show resolved Hide resolved
@vtavana
Copy link
Collaborator Author

vtavana commented Feb 1, 2024

Timing on Iris Xe

image

dpnp/backend/extensions/blas/dot.cpp Outdated Show resolved Hide resolved
dpnp/dpnp_utils/dpnp_utils_linearalgebra.py Outdated Show resolved Hide resolved
Copy link
Contributor

@antonwolfy antonwolfy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @vtavana I don't have more comments.
@npolina4 , could you please check the dpench flow and reply here? And then if no issue, we will be able to merge the PR.

@antonwolfy
Copy link
Contributor

The issue #1693 relate to previous changes in dpnp.matmul implementation, so the PR can be merged.

@antonwolfy antonwolfy merged commit ac1fca7 into master Feb 6, 2024
44 of 45 checks passed
@antonwolfy antonwolfy deleted the dpnp_dot branch February 6, 2024 12:06
github-actions bot added a commit that referenced this pull request Feb 6, 2024
* dot_func

* using mkl::dotu instead mkl::dotc for complex

* fix a test

* fix negative strides

* add a temporary workaround

* address comments

* add a TODO comment

* call dpt.vecdot for integer data types

* update doc string

* pass argument by reference

* update doc to add boolean dtype

---------

Co-authored-by: Anton <100830759+antonwolfy@users.noreply.github.com> ac1fca7
github-actions bot added a commit to antonwolfy/dpnp that referenced this pull request Feb 7, 2024
* dot_func

* using mkl::dotu instead mkl::dotc for complex

* fix a test

* fix negative strides

* add a temporary workaround

* address comments

* add a TODO comment

* call dpt.vecdot for integer data types

* update doc string

* pass argument by reference

* update doc to add boolean dtype

---------

Co-authored-by: Anton <100830759+antonwolfy@users.noreply.github.com> ac1fca7
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.

2 participants