Declare-at-init and structured bindings in XPU kernels#4431
Open
cyyever wants to merge 1 commit into
Open
Conversation
Tidy up locals that were declared bare (or assigned via std::tie) and then set exactly once, unconditionally: merge each declaration with its initializer and convert std::tie(...) = f() to structured bindings. In topk, rewrite the two-way if/else assignments for self_/values_/indices_ as ternary initializers so the tensors are declared at their initialization point. Also remove two unused local tensors (dummy_mean_/dummy_var_) in batch_norm_stats_template. Three of the structured-binding conversions (Indexing.cpp x2 and the EmbeddingBag per_sample_weights backward) bind values that are later captured by AT_DISPATCH [&] lambdas. That relies on C++20 (P1091R3) permitting capture of structured bindings, which the build uses: PyTorch sets CMAKE_CXX_STANDARD 20. Test Plan: Non-behavioral cleanup. lintrunner (clang-format) reports no issues on the changed files. A full XPU build and the relevant op tests (pytest test/xpu/test_ops_xpu.py for dropout, layer_norm, group_norm, embedding_bag, index_select, topk, batch_norm, max_pool2d) require an Intel GPU and were not run in this environment. Authored with the assistance of Claude, an AI coding assistant. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Non-behavioral readability cleanup of the XPU SYCL kernels:
std::tie(...) = f()to structured bindings.batch_norm_stats.No runtime effect. The structured-binding captures rely on C++20 (the build sets
CMAKE_CXX_STANDARD 20).Test: none (non-behavioral; covered by existing test/xpu op tests -- topk,
batch_norm, embedding_bag, index_select, layer_norm, group_norm, max_pool2d)
Authored with the assistance of Claude, an AI coding assistant.