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 vir simd 0.4 #404

Merged
merged 7 commits into from
Sep 26, 2024
Merged

Update vir simd 0.4 #404

merged 7 commits into from
Sep 26, 2024

Conversation

mattkretz
Copy link
Collaborator

@mattkretz mattkretz commented Sep 5, 2024

TODO:

  • Release vir-simd 0.4 and update the reference in CMakeLists.txt
  • Understand compile errors in GR4 and fix either vir-simd or GR4

I can move the cmake changes into their own PR(s) if they are controversial.

@mattkretz mattkretz added the enhancement New feature or request label Sep 5, 2024
@mattkretz mattkretz self-assigned this Sep 5, 2024
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
@mattkretz mattkretz force-pushed the update-vir-simd-0.4 branch 7 times, most recently from 88786a7 to 6751f88 Compare September 6, 2024 09:38
Only convert simd types that are supported by the implementation.

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
@mattkretz mattkretz force-pushed the update-vir-simd-0.4 branch 5 times, most recently from 3535e26 to a785060 Compare September 25, 2024 14:34
* Bump to vir-simd v0.4.0
* Replace gr::meta::simdize with vir::simdize.
* Replace gr::meta::simdize_size_v with ::size() on simdized types.
* "Document" that vir::transform can be used, where std::transform and
std::ranges::transform are documented.

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
Remove:
- invokeProcessOneWithOrWithoutOffset
- exact_argument_type
- can_processOne_with_offset_invoke_test
- can_processOne_simd_with_offset
- can_processOne_scalar_with_offset
- can_processOne_with_offset

Modify MergedGraph apply_left, apply_right, processOne, and
processOne_simd to not require an offset argument anymore.

Modify all calls to processOne(_simd) to never pass an offset.

Modify TagMonitors processOne to generateTag without offset. The
published tag is now unconditional 0 all the time.

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
Either the function is const and can work with chunks of inputs, or it
is non-const and cannot work with chunks of input. These functions were
none of these.

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
With `sink::processOne` being non-const the merged graphs in this
benchmark are always non-SIMD. Consequently the processOne_simd calls
become ill-formed and need to be removed. Thus, there's no difference
anymore when compiling with DISABLE_SIMD and that extra benchmark
executable can go.

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
@mattkretz mattkretz marked this pull request as ready for review September 26, 2024 08:50
Copy link
Member

@RalphSteinhagen RalphSteinhagen left a comment

Choose a reason for hiding this comment

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

Thanks! And LGTM as discussed privately.

@RalphSteinhagen RalphSteinhagen merged commit 4bb2740 into main Sep 26, 2024
10 of 11 checks passed
@RalphSteinhagen RalphSteinhagen deleted the update-vir-simd-0.4 branch September 26, 2024 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants