Skip to content

Remove duplicated __pattern_min_element_reduce_fn functor #2204

Closed
@mmichel11

Description

@mmichel11
Contributor

Thank you @SergeyKopienko for pointing this out in #2200 (comment).

We have two implementations of __pattern_min_element_reduce_fn. The first is here in algorithm_ranges_impl_hetero.h and the second here in algorithm_impl_hetero.h

The definitions are different with the second having different codepaths for SPIR-V and non SPIR-V targets. The implementation of the underlying reduce implementation has changed since this was added. We should reevaluate the need for these separate implementations and consolidate __pattern_min_element_reduce_fn into a single instance.

Activity

changed the title [-]Remove duplicated `__pattern_min_element_reduce_fn` function[/-] [+]Remove duplicated `__pattern_min_element_reduce_fn` functor[/+] on Apr 22, 2025
self-assigned this
on Apr 22, 2025
mmichel11

mmichel11 commented on Apr 22, 2025

@mmichel11
ContributorAuthor

After experimentation, the non-commutative specialization still performs best on Intel GPU Series Max 1550, so it should remain as is. Coalescing is needed to achieve the best memory access pattern on other architectures, so the non SPIR-V path should also remain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    Participants

    @mmichel11

    Issue actions

      Remove duplicated `__pattern_min_element_reduce_fn` functor · Issue #2204 · uxlfoundation/oneDPL