grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

grid_sampler_2d_out Portable Kernel Implementation - #16051

Merged
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels
Dec 4, 2025
Merged

grid_sampler_2d_out Portable Kernel Implementation#16051
manuelcandales merged 11 commits into
pytorch:mainfrom
jgibson2:jgibson/grid_sample_2d_nchw_portable_kernels

Conversation

@jgibson2

Copy link
Copy Markdown
Contributor

Summary

Adds grid_sample_2d_out portable kernels.

Fixes#11328

Release notes: ops & kernels

Test plan

I was unable to get the internal tests using torch.et_test to build. However, I did add a fairly comprehensive test suite in kernels/portable/test/op_grid_sampler_2d_test.py which compares the exported operation results to torch.nn.functional.grid_sample operations. Note that there are some differences in how the implementations handle nan, inf, and -inf values; however, all the tests using real numbers pass.

CopilotAI review requested due to automatic review settings December 2, 2025 19:03
@pytorch-bot

pytorch-botBot commented Dec 2, 2025

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/16051

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f77c27d with merge base c00d726 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-clameta-claBot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Dec 2, 2025

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a portable kernel for the grid_sampler_2d operation in ExecuTorch, enabling 2D grid sampling with support for multiple interpolation modes (bilinear, nearest, bicubic), padding modes (zeros, border, reflection), and the align_corners parameter.

Key changes:

  • Added complete implementation of grid_sampler_2d kernel with bilinear, nearest, and bicubic interpolation
  • Created utility functions for coordinate transformation and bounds checking
  • Added comprehensive test suites comparing ExecuTorch implementation against PyTorch reference

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
kernels/portable/cpu/op_grid_sampler_2d.cppMain kernel implementation with three interpolation modes
kernels/portable/cpu/util/grid_sampler_2d_util.hUtility functions for coordinate transformations and cubic interpolation
kernels/portable/cpu/util/grid_sampler_2d_util.cppArgument validation and output tensor resizing logic
kernels/portable/functions.yamlRegistration of grid_sampler_2d.out operation
kernels/portable/test/op_grid_sampler_2d_test.pyUnit tests comparing against PyTorch reference implementation
kernels/portable/test/test_grid_sampler_2d_executorch.pyEnd-to-end tests via ExecuTorch runtime
kernels/portable/test/register_ops_aot_for_test.cppTest wrapper for AOT compilation
kernels/portable/test/targets.bzlBuild configuration for new test
kernels/portable/test/TARGETSDependency addition for grid_sampler_2d

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
@jgibson2

Copy link
Copy Markdown
ContributorAuthor

@pytorchbot label "release notes: ops & kernels"

@pytorch-botpytorch-botBot added the release notes: ops & kernels Changes to the opset and any new / changed kernel implementations label Dec 2, 2025
CopilotAI review requested due to automatic review settings December 2, 2025 20:24

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/test_grid_sampler_2d_executorch.py Outdated
Comment threadkernels/portable/test/op_grid_sampler_2d_test.py
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Comment threadkernels/test/op_grid_sampler_2d_test.cpp
CopilotAI review requested due to automatic review settings December 3, 2025 16:28

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings December 3, 2025 16:30

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2
jgibson2 requested a review from CopilotDecember 3, 2025 19:25

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadkernels/portable/test/targets.bzl
Comment threadkernels/portable/cpu/util/grid_sampler_2d_util.h
Comment threadkernels/portable/cpu/op_grid_sampler_2d.cpp
@jgibson2jgibson2 changed the title grid_sample_2d_out Portable Kernel Implementationgrid_sampler_2d_out Portable Kernel ImplementationDec 4, 2025
@manuelcandales
manuelcandales merged commit 8944db4 into pytorch:mainDec 4, 2025
141 checks passed
jirioc pushed a commit to nxp-upstream/executorch that referenced this pull request Dec 19, 2025
### Summary
Adds grid_sample_2d_out portable kernels. Fixespytorch#11328 Release notes: ops & kernels
### Test plan
I was unable to get the internal tests using `torch.et_test` to build.
However, I did add a fairly comprehensive test suite in
kernels/portable/test/op_grid_sampler_2d_test.py which compares the
exported operation results to torch.nn.functional.grid_sample
operations. Note that there are _some_ differences in how the
implementations handle nan, inf, and -inf values; however, all the tests
using real numbers pass.
---------
Co-authored-by: John Gibson <jgibson@Johns-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.release notes: ops & kernelsChanges to the opset and any new / changed kernel implementations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portable kernel: grid_sampler_2d.out

3 participants

@jgibson2@manuelcandales