Skip to content

[pull] master from tensorflow:master - #8794

Merged
pull[bot] merged 44 commits into
Cache-Cloud:masterfrom
tensorflow:master
Aug 31, 2026
Merged

[pull] master from tensorflow:master#8794
pull[bot] merged 44 commits into
Cache-Cloud:masterfrom
tensorflow:master

Conversation

@pull

@pull pull Bot commented Aug 31, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

andersendsa and others added 30 commits April 25, 2026 12:09
…bug dump paths

RecursiveCreateDir recursed on the empty string forever: io::Dirname()
on a slash-less relative path returns "", and Dirname("") returns ""
again, so the recursive call never terminates. Add a base case that
treats an empty directory as "nothing further up the tree to create"
and returns immediately, letting the caller's own CreateDir proceed.

Fixes #123114
Matches the file's existing convention (already used elsewhere in
debug_io_utils_test.cc) and gives a descriptive error message on
failure instead of a bare boolean assert.

Addresses gemini-code-assist review feedback on PR #124609.
Wrap DumpTensorToDirWithRelativeDumpRootSunnyDay in a scoped chdir
into testing::TmpDir(), guarded for Windows/POSIX (io::Dirname() is a
pure string operation, so this doesn't change what the regression
test exercises).

Addresses dmiltr3's review feedback on PR #124609.
Bumps [setuptools](https://github.com/pypa/setuptools) from 78.1.1 to 83.0.0.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](pypa/setuptools@v78.1.1...v83.0.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 83.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
np.moveaxis promises in its docstring to raise ValueError for
out-of-bounds source/destination axes, but never actually validated
them: positive out-of-bounds axes hit an unrelated AssertionError, and
negative axes below -rank produced a perm with leftover negative
entries (silently re-normalized in eager, opaque errors under XLA).

Normalize and validate axes when the rank is statically known, raising
the same clear error as np.moveaxis's AxisError, and assert the bounds
at runtime for dynamically-known ranks, mirroring the swapaxes fix for
issue #122054. Adds out-of-bounds regression tests.
`tf.signal.fftnd`, `ifftnd`, `rfftnd` and `irfftnd` all begin with

    axes = _process_empty_axes(input_tensor, axes)
    fft_rank = axes.shape[0]
    input_tensor = _ops.convert_to_tensor(input_tensor, ...)

so when `axes` is left at its default, `_infer_axes_for_fftn()` reads
`len(input_tensor.shape)` off whatever the caller passed, before it has
been converted. A Python list has no `.shape`, so all four ops fail with

    AttributeError: 'list' object has no attribute 'shape'

for input that the same ops accept as a tensor or a numpy array, which
does have `.shape`. Every other op in this file converts first.

Move the conversion above the axes inference. Passing an already
converted tensor is unaffected, since `convert_to_tensor` is a no-op
there and `_process_empty_axes` sees the same object it did before.

The new tests build the ops inside a graph rather than running them, so
they do not depend on an N-D FFT kernel being registered for the test
device.
1658465 ("Fix out-of-bounds write from failed bytes-list skips in fast
Example parsing") made ParseFeature return -1 on a dtype mismatch and
updated the three ParseSequence*Features callers to reject that value. The
three structurally identical ParseContext*Features functions in the same
file were not updated.

Two of them still assign the result to a size_t:

    size_t num_added = ParseFeature(dtype, &stream, &out_values,
                                    &out_values_offset);
    ...
    for (int i = 0; i < num_added; i++) {
      if (is_batch) *out_indices++ = e;
      *out_indices++ = i;
    }

so -1 becomes SIZE_MAX, the loop bound is unbounded, and it writes int64_t
values through a raw pointer into a tensor sized from the first parsing
pass. The num_elements != expected_num_elements check below only runs
after the writes. ParseContextDenseFeatures accumulates the negative value
into a size_t instead, which the trailing equality check rejects.

Reject a negative count at all three sites, mirroring what the sequence
parsers already do, so the failure is an InvalidArgument error rather than
an out-of-bounds write.
Reject non-rank-4 inputs and filters before native convolution code runs, preventing malformed CPU inputs from reaching shape indexing code that can abort the process. Add a regression test for invalid input rank.
Cover the rank validation path for malformed filters with a regression test, complementing the existing invalid input rank test.
Update google-ml-infra/bap pin in nightly_benchmarks.yml and run_benchmarks.yml
to 887b34acdb5c70bbd2bc93bb11c2d0a103698e7f, matching postsubmit_benchmark.yml.

This resolves Zizmor warnings about mismatched pins.

PiperOrigin-RevId: 973723007
… XLA:CPU for BF16

Teach CpuFloatSupport and OneDnnFloatSupport that BF16 is supported
for a broader range of operations, including data movement (e.g., transpose,
reshape) and elementwise operations without precision loss (e.g., abs, negate,
maximum). This prevents unnecessary upcasting to F32 during FloatNormalization,
improving performance and reducing memory bandwidth.
Remove f16 related logic, we do not upcast from f16 anyway.

PiperOrigin-RevId: 973745044
PiperOrigin-RevId: 973745258
tensorflower-gardener and others added 14 commits August 31, 2026 02:21
…capture-error

PiperOrigin-RevId: 973753476
…-validation

PiperOrigin-RevId: 973774229
Imported from GitHub PR openxla/xla#48044

📝 Summary of Changes
Adds `TestGpuDeviceInfo::AMDMI300XDeviceInfo()` and fixes places where an MI210 or an RTX A6000 was redefined into a different chip by overwriting its compute capability.

🎯 Justification
Tests named for gfx942/gfx950 were running against MI210 and A6000 geometry, i.e., wrong core counts, clocks, and bandwidth.

🚀 Kind of Contribution: ♻️ Cleanup

Copybara import of the project:

--
35b662e09214ec5dd062fcb950416fb6806f5620 by Aleksei Nurmukhametov <anurmukh@amd.com>:

[ROCm] Use AMD device descriptions in perf model tests

Add AMDMI300XDeviceInfo() and use a right factory in places that
overwrote compute capability of MI210 or RTX A6000.

Merging this change closes #48044

PiperOrigin-RevId: 973780252
This was marked as flaky at some point, but it is not flaky now.

PiperOrigin-RevId: 973780604
PiperOrigin-RevId: 973780832
Updates kernel_creator to use ODS-generated pass constructors instead of
deprecated legacy wrappers (such as
createLegalizeTrigonometricToApproximationPass and
createBufferDeallocationPass).

PiperOrigin-RevId: 973786471
…/requirements_updater/numpy1_requirements/setuptools-83.0.0

PiperOrigin-RevId: 973791443
…is-axis-validation

PiperOrigin-RevId: 973791477
…-stack-overflow

PiperOrigin-RevId: 973792546
@pull pull Bot locked and limited conversation to collaborators Aug 31, 2026
@pull pull Bot added the ⤵️ pull label Aug 31, 2026
@pull
pull Bot merged commit b0e2b3a into Cache-Cloud:master Aug 31, 2026
2 of 7 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.