Skip to content

Experiments with select - #54

Merged
Malkovsky merged 6 commits into
mainfrom
feature/select_implementations
Jul 31, 2026
Merged

Experiments with select#54
Malkovsky merged 6 commits into
mainfrom
feature/select_implementations

Conversation

@Malkovsky

Copy link
Copy Markdown
Owner

No description provided.

@Malkovsky
Malkovsky requested a review from Sanya239 June 8, 2026 19:48

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4a302e8501

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CMakeLists.txt Outdated
Comment on lines +178 to +179
add_executable(select512_experimental_tests
src/tests/select512_experimental_tests.cpp)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Wire the new select tests into CI

This adds a new test binary, but the test suite is not registered with CTest and the checked CI workflow .github/workflows/build-test.yml runs only the existing binaries explicitly (./unittests, ./louds_tree_tests, ./dfuds_tree_tests, ./benchmark_tests, and ./test_rmm, with the SDE job following the same pattern). As a result, regressions caught by select512_experimental_tests will not fail CI unless someone runs this target manually; please add this executable to the workflow or register it via CTest and run ctest.

Useful? React with 👍 / 👎.

@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.86189% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.31%. Comparing base (bf01091) to head (2c681fa).

Files with missing lines Patch % Lines
src/tests/select512_experimental_tests.cpp 89.21% 4 Missing and 7 partials ⚠️
include/pixie/experimental/select.h 97.05% 3 Missing and 3 partials ⚠️
src/tests/bits_unittests.cc 88.00% 2 Missing and 4 partials ⚠️
include/pixie/bits.h 97.05% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #54      +/-   ##
==========================================
+ Coverage   90.10%   90.31%   +0.20%     
==========================================
  Files          39       41       +2     
  Lines        8735     9109     +374     
  Branches     1418     1466      +48     
==========================================
+ Hits         7871     8227     +356     
- Misses        447      456       +9     
- Partials      417      426       +9     
Flag Coverage Δ
gcov 90.31% <93.86%> (+0.20%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Malkovsky
Malkovsky force-pushed the feature/select_implementations branch from 7109637 to 8799396 Compare July 29, 2026 11:52

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c8d73987c2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +491 to +493
const __mmask8 mask = _mm512_cmpgt_epu64_mask(
prefix, _mm512_set1_epi64(static_cast<int64_t>(rank)));
const uint32_t lane = _tzcnt_u32(static_cast<uint32_t>(mask));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Handle an empty AVX-512 selection mask

When PIXIE_AVX512_SUPPORT is enabled and the requested bit does not exist (for example, select1 on an all-zero block), mask is zero, so _tzcnt_u32(0) produces lane 32 and the subsequent x[lane] reads beyond the eight-word block. This also makes the AVX-512 wrappers inconsistent with the scalar/AVX2 variants and the new MissingBitReturnsSentinel expectation; return 512 when mask == 0 before extracting the lane.

Useful? React with 👍 / 👎.

@Malkovsky
Malkovsky merged commit d21076e into main Jul 31, 2026
5 checks passed
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.

1 participant