Weekly GitHub Report for Jax: July 13, 2026 - July 20, 2026 (21:04:42)
Weekly GitHub Report for Jax
Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.
Table of Contents
I. News
1.1 Recent Version Releases:
The current version of this repository is jax-v0.9.0.1
1.2 Version Information:
On February 3, 2026, JAX v0.9.0.1 was released as a patch update to v0.9.0, incorporating four specific pull requests from the OpenXLA repository to address targeted improvements or fixes without introducing major changes.
Click here to view the full release notes!
II. Issues
2.1 Top 5 Active Issues:
We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.
-
[BUG] Undocumented arguments for jax.vmap: spmd_axis_name and sum_match: This issue addresses the lack of documentation for two arguments,
spmd_axis_nameandsum_match, in thejax.vmapfunction. The discussion focuses on whether these arguments should be documented, withspmd_axis_nameintentionally left undocumented pending future changes, whilesum_matchis considered useful enough to warrant documentation.- The comments reveal that
spmd_axis_nameis intentionally undocumented and may be deprecated or reworked, while there is interest in documentingsum_match. A contributor offered to create a documentation PR, which was subsequently submitted to documentsum_matchwith an example, leavingspmd_axis_nameundocumented. - Number of comments this week: 4
- The comments reveal that
-
[BUG] [Pallas] TPU interpret mode gives wrong result when scalar prefetch SMEM is mutated and
pipeline_mode=pl.Buffered(1): This issue describes a problem with the TPU interpret mode in the Pallas library where mutating a scalar prefetch shared memory buffer while usingpipeline_mode=pl.Buffered(1)results in incorrect output due to premature computation of block indices. The user expects synchronous single-buffered input handling to delay the next block index computation until after the current kernel invocation, but the interpreter currently performs a lookahead that causes stale data to be used in subsequent kernel executions.- The comments acknowledge the bug and clarify that scalar prefetch buffers should be treated as read-only, suggesting documentation updates and potential runtime checks to prevent or warn about modifications; there is also a proposal to introduce a "const ref" mechanism to enforce immutability of these buffers.
- Number of comments this week: 4
-
[ENHANCEMENT] [P3 (NO SCHEDULE)] jax.lax.betainc does not support gradients with respect to a and b parameters: This issue reports that the function
jax.lax.betainccurrently supports gradient computation only with respect to the parameterxbut raises aValueErrorwhen attempting to differentiate with respect to the shape parametersaorb, limiting its use in training loops where these parameters are learnable. The user requests that gradients with respect toaandbbe implemented, noting that closed-form derivatives exist and this is a missing feature rather than a fundamental limitation.- The comments clarify that this behavior is intentional due to the lack of easily-expressible closed-form gradients for
aandb, marking it as a feature request unlikely to be resolved soon; users confirm the error is explicit in the code, discuss workarounds usingjax.scipy.special.betaincwhich still rely onlax.betaincand thus fail similarly, and highlight the need for proper JVP rules to enable gradient support for these parameters. - Number of comments this week: 3
- The comments clarify that this behavior is intentional due to the lack of easily-expressible closed-form gradients for
-
[BUG]
no_tracingraises on calls that don't trace: the guard at the top ofcache_missfires on any C++-fastpath miss, and functions with host callbacks never take the fastpath: This issue describes a problem where thejax.no_tracing()context manager incorrectly raises an error on calls to jitted functions containing host callbacks, even though no actual tracing occurs, due to a coarse check firing on any C++ dispatch cache miss rather than genuine tracing. The report diagnoses that this behavior contradicts the documented semantics ofno_tracingand suggests resolutions including removing the coarse check or renaming it to better reflect its purpose, supported by a minimal reproducible example and detailed analysis.- The comments discuss a linked pull request that removes the coarse dispatch-level check causing false positives, explaining that the precise tracing check already covers all genuine cases; the PR adds tests and notes a behavior change where some transformations no longer raise errors, and a side discussion briefly addresses a question about AI-generated comments.
- Number of comments this week: 3
-
[ENHANCEMENT] [GOOD FIRST ISSUE] [DOCUMENTATION] lax.conv_transpose has different convention than TF, document it and make switching easy?: This issue addresses the difference in kernel spatial axis conventions between JAX's
lax.conv_transposefunction and TensorFlow's transposed convolution implementation, proposing to document this discrepancy and add an argument to easily switch to the TensorFlow convention. The discussion explores whether such an argument already exists, the usefulness of adding clearer documentation and examples, and the current status of the issue with suggestions for finalizing the documentation.- Commenters confirmed that an argument to switch to the TensorFlow convention (
transpose_kernel=True) already exists and that the difference is now documented in the function's docstring; several contributors expressed interest in improving documentation and examples, and the issue appears resolved except for a minor docstring wording update. - Number of comments this week: 2
- Commenters confirmed that an argument to switch to the TensorFlow convention (
2.2 Top 5 Stale Issues:
We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.
As of our latest update, there are no stale issues for the project this week.
2.3 Open Issues
This section lists, groups, and then summarizes issues that were created within the last week in the repository.
Issues Opened This Week: 19
Summarized Issues:
- JAX function output and gradient display issues: The JAX 101 tutorial example for
value_and_graddoes not display the returned gradients, only printing the loss value twice, which obscures the assigned gradientsWb_grad. Additionally, a regression in JAX versions 0.10.0 and 0.10.1 causes a jittedvalue_and_gradfunction for a Flax model on CPU to abort with a static assertion failure, indicating instability in gradient-related functionality. - [issues/39140, issues/39264]
- GPU and CPU backend compilation and runtime errors: Multiple issues report backend-specific failures including a compile error in the XLA GPU backend due to a tensor size type mismatch in
scf.ifoperations, a regression causing multi-stream windowed einsum operations to fail HLO verification on GPU, and a CPU-specific crash or hang caused by a rank-7/8 broadcast-multiply-reduce operation using XLA's__ynn_fusion. These errors highlight instability and regressions in both GPU and CPU compilation paths. - [issues/39157, issues/39200, issues/39257]
- SPMD and sharding related compilation failures: Several issues describe SPMD partitioner failures such as malformed concatenate operations during reverse-mode differentiation through
jax.linear_transposeon fully sharded axes, and a regression where reshaping arrays with size-1 explicit mesh axes causes axis dropping and sharding mismatches. These problems cause HLO verifier errors and sharding inconsistencies in distributed computations. - [issues/39301, issues/39309]
- Pallas library and shared memory buffer issues: The Pallas TPU interpret mode exhibits incorrect results when mutating a scalar prefetch shared memory buffer combined with buffered pipeline mode, due to premature computation of block indices. Additionally, the
pl.empty_ref_likefunction does not accept existingRefobjects, complicating usage by requiring redundant shape and dtype specifications. - [issues/39179, issues/39190]
vmaptransformation and reference (state) effects problems: UsingvmapoverRefarguments with non-zeroin_axescauses shape mismatches and attribute errors, and support for reference effects withinvmapoflax.condis currently missing, raisingNotImplementedError. These issues limit the composability of stateful operations with vectorized mapping.- [issues/39159, issues/39288, issues/39290]
- Tracing and dispatch cache errors: The
jax.no_tracing()context manager incorrectly raises errors on jitted functions with host callbacks due to a coarse cache miss check in the C++ dispatch fallback, leading to misleading error messages and unnecessary overhead despite no actual tracing occurring. - [issues/39289]
- FFT and linear algebra failures on specific hardware: A compilation failure occurs in XLA when performing a jitted complex128 FFT with a sharded transform axis due to mixed-type multiplication errors from complex64 twiddle factors. Also, batched
jnp.linalg.eighcrashes on many-core CPUs because of OpenBLAS thread oversubscription, causing heap corruption with large batches of small symmetric matrices. - [issues/39291, issues/39292]
- Key flattening and data structure handling bugs: The
flatten_one_level_with_keysfunction incorrectly assigns the first namedtuple field key to all child elements, causing inconsistent behavior compared to full keyed flattening and potentially leading to errors in keyed data processing. - [issues/39297]
- Performance improvements for random number generation: There are proposals to improve the performance of
jax.random.poissonby replacing its loop-based implementation with a faster approximate arithmetic-only sampler, and to enhance other loop-based random number generators for nontrivial distributions by implementing loop-free or faster sampling methods, aiming to increase throughput and reduce latency on GPUs. - [issues/39312, issues/39314]
2.4 Closed Issues
This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.
Issues Closed This Week: 6
Summarized Issues:
- Performance improvements in sampling methods: This topic covers the implementation of a faster, approximate gamma distribution sampler for JAX based on Goldstein's series expansion algorithm, designed as an alternative to the slower exact rejection sampler. The goal is to improve performance while allowing users to opt-in to the new method.
- issues/38141
- Type errors and compatibility issues with Python versions: This topic involves a TypeError encountered when building jaxlib 0.10.2 with Python 3.10, caused by an unexpected 'required' keyword argument in the argparse module's _SubParsersAction.init() method. This indicates compatibility problems between JAX and newer Python versions.
- issues/38969
- Numerical precision and data type conversion bugs: This topic addresses a bug where converting the smallest subnormal value of
jnp.bfloat16tojnp.float64and back results in zero instead of preserving the original value. This highlights issues in maintaining precision during type conversions in JAX. - issues/38995
- Incorrect handling of NaN values in numpy functions: This topic reports that
jax.numpy.heavisideincorrectly returns the second input value when the first input isNaN, instead of propagatingNaNas NumPy does. This discrepancy indicates inconsistent behavior with standard NumPy in handling NaN inputs. - issues/39109
- Memory management and profiling regressions: This topic covers a change in the behavior of the
XLA_PYTHON_CLIENT_ALLOCATOR=platformflag in recent JAX versions, where memory is no longer deallocated as expected during profiling. This leads to increased and fragmented GPU memory usage, differing from earlier versions' behavior. - issues/39145
- Multi-GPU communication errors due to conflicting libraries: This topic describes failures in multi-GPU NCCL collectives with a "corrupted comm object detected" error when TensorFlow is imported alongside JAX in the same process. The issue arises from multiple NCCL implementations being loaded simultaneously, causing communicator incompatibility on Kaggle T4 x2 setups.
- issues/39167
2.5 Issue Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.
III. Pull Requests
3.1 Open Pull Requests
This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.
Pull Requests Opened This Week: 14
Key Open Pull Requests
1. [oneAPI] Add CI workflow to build hermetic JAX wheel artifacts: This pull request introduces a dedicated oneAPI continuous integration workflow to build hermetic JAX wheel artifacts as part of the JAX presubmit process.
- URL: pull/39282
2. Improve pytree prefix mismatch errors involving None specs and dummy …: This pull request improves error handling for pytree prefix mismatches in JAX by correctly treating None as a leaf in broadcasting checks, preventing false mismatch reports and internal type leaks, and clarifying error messages to better distinguish between leaves and containers with no leaves.
- URL: pull/39239
3. Raise a clear error for unsupported dtypes in LAPACK-backed linalg on CPU: This pull request improves error handling in LAPACK-backed linear algebra operations on CPU by adding explicit dtype checks that raise clear, actionable NotImplementedError messages when unsupported float16 or bfloat16 inputs are used, replacing previously confusing internal errors.
- URL: pull/39295
Other Open Pull Requests
- Documentation fixes for jax.value_and_grad examples: This pull request corrects the examples for
jax.value_and_gradby updating them to print the computed gradients instead of printing the loss value twice. This ensures the documentation accurately demonstrates how gradients are returned alongside function values.
- Hermetic dependencies and OneAPI support: These pull requests add runfiles data files and ROCm hermetic dependencies to the plugin and PJRT wheels for proper hermetic Bazel test execution, and also add OneAPI continuous integration test scripts and infrastructure to support Intel GPU testing. Additionally, support for OneAPI buffer donation is introduced by appending
oneapito the list of platforms allowing buffer donation.
- Fixes and clarifications for lax.conv_transpose transpose_kernel docstring: These pull requests clarify and neutrally reword the docstring for the
transpose_kernelparameter inlax.conv_transposeto resolve contradictions with the Notes section about TensorFlow/Keras compatibility. They also remove a contradictory sentence labeling the parameter as "completely pointless," improving documentation clarity and fixing markup issues.
- Bug fix for jax.scipy.special.betaln behavior with infinite inputs: This pull request fixes the
jax.scipy.special.betalnfunction to correctly return-infinstead ofnanwhen one argument is infinite and the other is a finite positive number. It aligns the function's behavior with SciPy by adding a guard after argument swapping to properly handle infinite inputs.
- Improved error handling for out-of-range 64-bit integer inputs: This pull request modifies JAX to raise a Python OverflowError when 64-bit NumPy integer inputs contain out-of-range values while
jax_enable_x64is disabled. This replaces the previous unsafe silent truncation to 32 bits, ensuring consistent error handling and improving safety in integer downcasting.
- Fix for prime factorization bug in mesh_utils: This pull request fixes a bug in the
_get_prime_factorsfunction where afor…elseloop without abreakcaused smaller prime factors to be dropped if the largest prime factor exceededisqrt(x) + 1. The fix includes a two-line code change and extended tests to cover previously failing cases, restoring correct logical mesh construction withallow_split_physical_axes=True.
- Fix for false-positive jax.no_tracing() check in JIT dispatch: This pull request removes an incorrect check for
jax.no_tracing()in the JIT dispatch slow path that raised errors on warm calls of jitted functions with host callbacks. The overly broad check incache_missis deleted, ensuring only genuine re-traces trigger errors, and a test is added to verify this behavior.
- Fix for namedtuple keys in one-level pytree flattening: This pull request addresses issue #39297 by fixing the handling of namedtuple keys in the one-level pytree flattening process. The fix ensures correct functionality and passes relevant tests.
3.2 Closed Pull Requests
This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.
Pull Requests Closed This Week: 40
Key Closed Pull Requests
1. JAX-PRESUBMIT TEST: This pull request is about adding and updating presubmit test configurations for JAX, specifically involving changes to the bazel_oneapi_presubmit.yml file and other related test updates.
- URL: pull/39169
2. [docs] add 501 (systems topics); add CuTe DSL to 401 and errors to 101: This pull request updates the documentation by adding a new 501 section covering advanced systems topics such as multi-controller JAX, distributed data loading, fault tolerance, exporting and serialization, and related utilities, while also incorporating the CuTe DSL tutorial into the 401 section, adding an errors reference to 101, updating cross-links from 201 to 501, and enhancing the new_docs landing page.
- URL: pull/39095
3. [hijax] fix linearize bug in presence of non-differentiable args: This pull request fixes a bug in the hijax linearize function that occurred when non-differentiable arguments were present.
- URL: pull/39127
Other Closed Pull Requests
- JAX 0.11.0 Release and Documentation Updates: This topic covers the finalization and official release of JAX version 0.11.0 along with updates to the changelog and supported versions of NumPy and SciPy. The pull requests ensure accurate documentation of deprecations and compatibility for the new release.
- GPU Device Visibility and Environment Variable Management: These pull requests improve GPU device visibility handling in pytest xdist workers by rotating device visibility and changing environment variable assignment methods. The changes prevent unintended GPU sharing and distribute test loads evenly across GPUs.
- HIP Memory Leak Fixes in RNN Kernels: This set of changes fixes HIP memory leaks by properly freeing GPU memory allocated in RNN kernel paths and adding missing free macros. These fixes address resource management issues in the HIP backend.
- OneAPI GPU Plugin Enhancements: These pull requests add dlpack array interoperability support for the OneAPI GPU plugin and enable JAX oneAPI wheels to bundle and dynamically load their own oneAPI 2025.1 runtime libraries. This removes the dependency on system-installed oneAPI components and improves compatibility.
- Random Gamma Sampling Improvements: A new
methodparameter is introduced tojax.random.gammaandjax.random.loggammafunctions, allowing users to select between an exact rejection sampler and a faster, fully vectorized approximate sampler. The approximate sampler offers differentiable gradients and better accelerator performance at the cost of a small bias.
- Array API Version Update and Compatibility Fixes: The array API version is updated to 2025.12, which introduces minor breaking changes such as returning tuples instead of lists. Temporary test skips are added to handle incompatibilities, with plans for individual fixes in future pull requests.
- VJP Object Enhancements and Documentation: These pull requests introduce a
saveable_argskeyword argument tojax.vjpfor selective saving of arguments, improving serialization and offloading of VJP objects. Additionally, detailed documentation on first-class VJP objects is added, reorganizing related content and updating indexes accordingly.
- XLA Metadata API Improvements: The implementation of
xla_metadata_callis moved for better organization, and a new functionxla_metadata_call2is introduced with enhanced metadata handling. The related documentation is rewritten to improve API robustness and ensure correct metadata propagation through autodiff computations.
- ROCm GPU Compatibility Fix: A fallback mechanism is implemented to resolve GPU architecture directly from the device's ISA when the device marketing name cannot be matched to a
GpuVersion. This fix prevents failures inget_gpu_info()and enables Triton calls to recognize supported GPU devices on ROCm.
- Error Message and Test Improvements: Improvements include replacing an opaque TypeError with a clear NotImplementedError for missing GSPMD sharding propagation rules, adding a test for output forwarding in JIT rematerialization, fixing a corner case in the checkify module, simplifying TPU test debug print calls, and adding a flaky test to the CI ignore list.
- Build Script Compatibility Fix: The build script is modified to set the
requiredflag foradd_subparsersas an attribute instead of a keyword argument. This change ensures compatibility with third-party argparse backports that do not support therequiredkeyword introduced in Python 3.7.
3.3 Pull Request Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.
IV. Contributors
4.1 Contributors
Active Contributors:
We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.
If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.
| Contributor | Commits | Pull Requests | Issues | Comments |
|---|---|---|---|---|
| mattjj | 27 | 15 | 0 | 3 |
| jakevdp | 11 | 8 | 0 | 9 |
| kodlan | 9 | 7 | 0 | 8 |
| dougalm | 13 | 0 | 0 | 0 |
| Gattocrucco | 1 | 0 | 6 | 6 |
| ayaka14732 | 1 | 1 | 2 | 7 |
| vfdev-5 | 6 | 1 | 0 | 3 |
| mraunak | 7 | 3 | 0 | 0 |
| magaonka-amd | 7 | 2 | 0 | 0 |
| hawkinsp | 3 | 2 | 0 | 4 |