feat!: align max unpool with PyTorch Python API#813
Draft
voltjia wants to merge 1 commit into
Draft
Conversation
voltjia
force-pushed
the
feat/align-max-unpool-python-api
branch
from
July 24, 2026 08:02
5d3dbd8 to
ee86516
Compare
voltjia
force-pushed
the
feat/align-max-unpool-python-api
branch
from
July 24, 2026 08:27
ee86516 to
429c64e
Compare
voltjia
force-pushed
the
feat/align-max-unpool-python-api
branch
from
July 24, 2026 11:08
429c64e to
dea272d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
max_unpool2dandmax_unpool3dwith PyTorch's Python geometry order using one full public interface per operator.max_unpool2dTorch adapter, overload-aware vector code generation, and focused CPU/NVIDIA coverage.Motivation
The existing operators expose ATen's resolved
output_size, stride, paddingcontract rather than the public functional API. Public callers therefore cannot use PyTorch's geometry contract directly. The generatedmax_unpool2d.outadapter also cannot implement Python-level geometry resolution by itself.No standalone issue is associated with this alignment follow-up.
Type of Change
feat- new feature / new operator / new platformfix- bug fixperf- performance improvement (no behavioral change)refactor- code restructuring without behavior changetest- adding or fixing tests onlydocs- documentation onlybuild/ci- build system or CI configurationchore- tooling, formatting, or other non-code changesPlatforms Affected
WITH_CPU)WITH_NVIDIA)WITH_ILUVATAR)WITH_METAX)WITH_CAMBRICON)WITH_MOORE)WITH_ASCEND)WITH_TORCH)Smoke Test Result
Test Results on Supported Platforms
Benchmark / Performance Impact
N/A. Geometry is resolved once per operator construction/call; the underlying ATen kernels are unchanged.
Notes for Reviewers
API alignment
max_unpool2d(input, indices, kernel_size, stride, padding, output_size, out)outremains last perCONTRIBUTING.md.F.max_unpool2d(input, indices, kernel_size, stride=None, padding=0, output_size=None)max_unpool3d(input, indices, kernel_size, stride, padding, output_size, out)outremains last perCONTRIBUTING.md.F.max_unpool3d(input, indices, kernel_size, stride=None, padding=0, output_size=None)max_unpool3d(input, indices, output_size, stride, padding, out)feat!.max_unpool2dis removed fromscripts/torch_ops.yamlbecause its ATen schema exposes resolvedoutput_size, not the public Python geometry contract. The handwritten adapter resolves geometry and then callsat::max_unpool2d_out.