add AVX512 support for filtering in place
Reorganizes some of the filter implementations and adds AVX512 filter implementation and benchmarks
Codecov Report
:x: Patch coverage is 75.83643% with 130 lines in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 85.45%. Comparing base (c75c8a3) to head (eae0511).
:warning: Report is 78 commits behind head on develop.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Does GitHub give us CI runners with AVX512 support? My recollection from when I did the AVX2 take kernel is that they don't
not really sure how to deal with this, I think sometimes they have it, sometimes not?
CI runs in AWS, you can get whatever machine you want, right now by default we use m7i/m7a which are sapphire rapids/zen4 which have AVX512. On benchmarks we run c6i which is ice-lake sp which also has avx512
Heads up that we can't micro-benchmark avx512 with codspeed, as valgrind/callgrind does not support avx512. Saying you'll get numbers for avx2 if it is implemented:
- name: Build benchmarks (shard 1)
env:
RUSTFLAGS: "-C target-feature=+avx2"
...
Given that were pivoting to batch I'm going to put a pin in this.
Nooo I like this!
CodSpeed Performance Report
Merging #5399 will not alter performance
Comparing ct/avx512-filter (eae0511) with develop (c75c8a3)
Summary
โ
1478 untouched
๐ 56 new
โฉ 214 skipped[^skipped]
Benchmarks breakdown
:information_source: Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks. [^skipped]: 214 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.
@0ax1 is there a way for me to disable the benchmark just for codspeed?
@0ax1 is there a way for me to disable the benchmark just for codspeed?
~~You shouldn't need to. We compile for AVX2, so the AVX512 version shouldn't be picked up.~~
~~Ah I see that we're running into failed to execute the benchmark process, exit code: 132 which I assume is picked based on runtime capabilities of the CPU?~~
Discussed to exclude the benchmark via: #[cfg(not(codspeed))]
hmm it seems I've done something wrong here then: https://github.com/vortex-data/vortex/actions/runs/19644046057/job/56254751182?pr=5399
I'm going to close this until we start doing e2e tests and we can actually measure how much faster things are.