Skip to content

feat: add missing_repeat kernel implementation using cuda.compute#3922

Merged
ianna merged 8 commits into
scikit-hep:mainfrom
maxymnaumchyk:maxymnaumchyk/3915-awkward_missing_repeat
May 8, 2026
Merged

feat: add missing_repeat kernel implementation using cuda.compute#3922
ianna merged 8 commits into
scikit-hep:mainfrom
maxymnaumchyk:maxymnaumchyk/3915-awkward_missing_repeat

Conversation

@maxymnaumchyk
Copy link
Copy Markdown
Collaborator

@maxymnaumchyk maxymnaumchyk commented Mar 13, 2026

Closes #3915

@github-actions
Copy link
Copy Markdown

The documentation preview is ready to be viewed at http://preview.awkward-array.org.s3-website.us-east-1.amazonaws.com/PR3922

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 13, 2026

Codecov Report

❌ Patch coverage is 57.14286% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.27%. Comparing base (dba51ac) to head (e767a08).

Files with missing lines Patch % Lines
src/awkward/_connect/cuda/_compute.py 50.00% 6 Missing ⚠️

❌ Your patch check has failed because the patch coverage (57.14%) is below the target coverage (98.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
Files with missing lines Coverage Δ
src/awkward/_backends/cupy.py 98.52% <100.00%> (+0.04%) ⬆️
src/awkward/_connect/cuda/_compute.py 57.61% <50.00%> (-0.32%) ⬇️

@kwamazibuko
Copy link
Copy Markdown

We'll have to decide when it's time to do a bug-fix release for v1. If someone is explicitly asking for this (I didn't see it), we'd do it right away. If it's just "the right thing to do," then we'll do it after a time interval, to be sure to batch fixes and not use up our PyPI quota. Maybe October 14? (I'm making a reminder.)

1 similar comment
@kwamazibuko
Copy link
Copy Markdown

We'll have to decide when it's time to do a bug-fix release for v1. If someone is explicitly asking for this (I didn't see it), we'd do it right away. If it's just "the right thing to do," then we'll do it after a time interval, to be sure to batch fixes and not use up our PyPI quota. Maybe October 14? (I'm making a reminder.)

@maxymnaumchyk maxymnaumchyk marked this pull request as ready for review May 8, 2026 14:09
@maxymnaumchyk maxymnaumchyk requested a review from ianna May 8, 2026 14:09
Copy link
Copy Markdown
Member

@ianna ianna left a comment

Choose a reason for hiding this comment

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

@maxymnaumchyk - this is great! Thanks! I'm merging it. Thanks.

@ianna ianna merged commit 328f6e3 into scikit-hep:main May 8, 2026
37 of 38 checks passed
ianna pushed a commit that referenced this pull request May 10, 2026
…3922)

* feat: add missing_repeat implementation using cuda.compute

* keep the same name as in cpu kernel

* add tests for repetitions>1 and regularsize>1

* style: pre-commit fixes

* add keywords

* style fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
ianna added a commit that referenced this pull request May 16, 2026
* next step in kernel migration from parents to offsets

* linter fix

* add jax bincount

* add cpp kernel to convert parents to offsets

* fix typo

* fix typo in an auto-generated test

* almost there

* nearly there

* cleanup

* fix remaining kernels

* final cleanup

* format json data

* format

* initialize maxnextparents  = -1 (a sentinel meaning "no bin was touched")

* update the kernels to work on offsets!

* format

* migrate cupy rawkernels from parents to offsets

* migrate jax reducers

* fix for platfroms where the int64 counts can't be safely cast

* add bincount for cupy backend

* compact loc

* fix windows build and add optional OpenMP support

* update cuda kernels

* feat: add `missing_repeat` kernel implementation using cuda.compute (#3922)

* feat: add missing_repeat implementation using cuda.compute

* keep the same name as in cpu kernel

* add tests for repetitions>1 and regularsize>1

* style: pre-commit fixes

* add keywords

* style fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: add `index_rpad_and_clip` kernels implementations using cuda.compute (#3923)

* feat: add `index_rpad_and_clip` kernels implementation using cuda.compute

* style fix

* add a test for `index_rpad_and_clip_axis0` that would have target>length

* add keyword names

* style

* Apply suggestions from Ianna

Co-authored-by: Ianna Osborne <ianna.osborne@cern.ch>

* style: pre-commit fixes

---------

Co-authored-by: Ianna Osborne <ianna.osborne@cern.ch>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* fix: array attrs not being validated at creation and being of inconsistent type (#3996)

* convert dict attrs to Attrs type

* add test

* fix: ensure jax backend uses arrays on cpu only (#3990)

* ensure jax uses cpu by default

* remove now redundant jax_platform_name setting

* change error messages

* better errors

* remove DeviceArray mentions as that does not exist while we're at it too

* almost there

* cleanup

* cleanup

* remove old data file

* update cupy kernels

* remove exlicit test for depricated kernel

* add complex kernels and port them to use offsets

* fix complex reducers

* add remaining kernels

* add kernels for complex and bool sum

* move to segmented_reduce

* fix typo

* promote type

* fix complex bool reducer

* try another algo

* missed one

* use type inference

* make numba happy

* remove reducer overloads

* use sum op func for complex types

* remove test of depricated code

* avoid using == to compare floating-point products

* fix boundary tests

* cleanup

* cleanup

* remove dead code

* revert lexsort to argmin/max

* handrolled lexsort

* remove dead code

* remove bincount

* import numba cuda for jit

* fix tests

---------

Co-authored-by: maxymnaumchyk <maxymnaumchyk@gmail.com>
Co-authored-by: maxymnaumchyk <70752300+maxymnaumchyk@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Iason Krommydas <iason.krom@gmail.com>
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.

awkward_missing_repeat.cu

3 participants