Implement Portable bucketize#20287
Conversation
…e_scalar_impl and buccketize_tensor_impl
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/20287
Note: Links to docs will display an error until the docs builds have been completed. ❗ 1 Active SEVsThere are 1 currently active SEVs. If your PR is affected, please view them below:
|
|
Hi @Gallinator! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
|
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks! |
|
@pytorchbot label "release notes: ops & kernels" |
|
@claude review this PR |
|
Claude finished @Gasoonjia's task in 5m 32s —— View job PR Review: Implement Portable bucketize
Nice work — the kernel is clean, the C++ test coverage is genuinely thorough (edge cases, inf, empty, dtype matrix, failure paths), and the choice to support both NHWC/NCHW via the matching-dim-order check is correct: since Bugs1. def test_bucketize_scalar_out_int32(self):
model = BucketizeModule(out_int32=False, right=False) # should be TrueConventions2. Missing BSD license header — 3. ET_KERNEL_CHECK(
context, resize_tensor(out, self.sizes()) == Error::Ok, InvalidArgument, out);(For the scalar variant, the Minor / style
Things I checked that look correct
Overall this is close to merge-ready; only item #1 is a real functional gap, and #2 is required for CI conventions. |
|
Thanks for contribution! I have a question left in the issue mind check that? |
| # LICENSE file in the root directory of this source tree. | ||
|
|
||
| """ | ||
| Test for bucketize operations in ExecuTorch. |
There was a problem hiding this comment.
plz do not put export test script under kernels/test. Only the runtime test should be fine.
There was a problem hiding this comment.
@Gasoonjia So I have to remove test_bucketize.py ? I see that in #15893 they added an export test as well
This reverts commit 394f463.
Fixes #20270
Summary
Add portable scalar and tensor bucketize operator, based on the PyTorch implementation.
Key differences from the PyTorch implementation:
SizesTypeis anint32_tand must be 1DRelease notes: ops & kernels
Test plan
C++ tests are extensive and include failure and edge cases tests.
Python tests compare the output of an exported module to the PyTorch implementation only for normal and edge cases, similar to #15893.
cc @larryliu0820 @manuelcandales