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

Enable dpnp parfor reduction #999

Merged
merged 2 commits into from
May 17, 2023
Merged

Conversation

mingjie-intel
Copy link
Contributor

@mingjie-intel mingjie-intel commented Apr 12, 2023

  • Have you provided a meaningful PR description?
  1. New config to run the ConstantSizeStaticLocalMemoryPass optionally.
  2. Adds support for prange reduction loops to numba-dpex.
    • Adds a template to generate a tree-reduction kernel for reduction loops that use the "+" or "*" operators.
    • Adds code generation for nd-range kernels in the parfor lowerer.
    • Refactoring of the parfor lowerer and kernel builder modules.
    • New unit test cases.
  • Have you added a test, reproducer or referred to an 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?
  • If this PR is a work in progress, are you filing the PR as a draft?

@diptorupd diptorupd marked this pull request as draft April 12, 2023 18:46
@mingjie-intel mingjie-intel force-pushed the feature/dpnp_parfor_reduction_final branch 2 times, most recently from 067969d to ad5a888 Compare May 13, 2023 03:08
@diptorupd diptorupd force-pushed the feature/dpnp_parfor_reduction_final branch from 969f6c4 to e289add Compare May 15, 2023 15:07
@mingjie-intel mingjie-intel marked this pull request as ready for review May 15, 2023 18:36
numba_dpex/core/passes/parfor_lowering_pass.py Outdated Show resolved Hide resolved
numba_dpex/core/passes/parfor_lowering_pass.py Outdated Show resolved Hide resolved
numba_dpex/core/passes/parfor_lowering_pass.py Outdated Show resolved Hide resolved
numba_dpex/core/passes/parfor_lowering_pass.py Outdated Show resolved Hide resolved
numba_dpex/core/passes/parfor_lowering_pass.py Outdated Show resolved Hide resolved
numba_dpex/core/utils/reduction_kernel_builder.py Outdated Show resolved Hide resolved
numba_dpex/core/utils/reduction_kernel_builder.py Outdated Show resolved Hide resolved
numba_dpex/tests/dpjit_tests/test_dpjit_reduction.py Outdated Show resolved Hide resolved
numba_dpex/tests/dpjit_tests/test_dpjit_reduction.py Outdated Show resolved Hide resolved
@mingjie-intel mingjie-intel force-pushed the feature/dpnp_parfor_reduction_final branch 2 times, most recently from 0ede527 to adbc809 Compare May 17, 2023 15:18
   - The ConstantSizeStaticLocalMemoryPass pass has limitations
     that lead to it flagging valid allocations of SLM as
     unsupported. The config option turns the pass off by default till
     the issues with the pass are fixed.
@diptorupd diptorupd force-pushed the feature/dpnp_parfor_reduction_final branch from adbc809 to 3e2f7a0 Compare May 17, 2023 16:34
Copy link
Collaborator

@diptorupd diptorupd 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 very much for the feature. I was a long awaited and much needed one.

   - Adds a template to generate a tree-reduction kernel for
     reduction loops that use the "+" or "*" operators.
   - Adds code generation for nd-range kernels in the parfor
     lowerer.
   - Refactoring of the parfor lowerer and kernel builder modules.
   - New unit test cases.
@diptorupd diptorupd force-pushed the feature/dpnp_parfor_reduction_final branch from 3e2f7a0 to c9f9bc7 Compare May 17, 2023 17:08
@diptorupd diptorupd merged commit ee08e9b into main May 17, 2023
@diptorupd diptorupd deleted the feature/dpnp_parfor_reduction_final branch May 17, 2023 17:51
github-actions bot added a commit that referenced this pull request May 17, 2023
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