The Wire · Showcase
JAX REFACTORS CORE VJP SYSTEM WHILE CLOUD PYTHON FIXES SPANNER JSON BUGS
By RepoJournal · Filed · About Google
JAX's custom_vjp rules gain logging capability as the team strips deprecated code, while google-cloud-python patches critical JsonObject serialization breaks across nested structures.
JAX shipped a major VJP refactor [1] that implements defvjp_with_logs on both classic custom_vjp and the newer custom_vjp3, letting gradient rules log computation steps without breaking downstream abstractions. The team is simultaneously cleaning house, removing the deprecated QDD module [2] and subprocess test code [3] to reduce maintenance surface. On GPU acceleration, Pallas now transparently routes gmem-to-smem copies through TMA on Hopper+ hardware while falling back to cp.async on older architectures [4], a quiet win for multi-GPU workloads. Over on google-cloud-python, a critical fix landed for Spanner's JsonObject [5] that restores standard Python container protocols (len, bool, iter, getitem) on array/scalar/null variants, addressing data erasure bugs in nested serialization [6]. The cloud team also refactored generator templates to delegate REST transcoding to google-api-core [7], centralizing request handling logic that was previously scattered across three separate helper functions. Activity across the three repos: 44 commits, 36 PRs in the last 24 hours.
One email a day. Unsubscribe in one click.
Keep up with Google in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Test JAX custom_vjp3 logging in your gradient rules before next release google/jax [plan]
- → Upgrade google-cloud-python to fix Spanner JsonObject container protocol breaks immediately googleapis/google-cloud-python [immediate]
- → Review REST transcoding refactor in google-api-core delegation for API compatibility googleapis/google-cloud-python [plan]
References
- [1] [vjp3] add defvjp_with_logs so custom_vjp rules can log ↗ google/jax
- [2] remove qdd ↗ google/jax
- [3] remove os.subprocess test google/jax
- [4] [pallas:mgpu] `copy_gmem_to_smem` now transparently uses TMA on Hopper+ and cp.async on older architectures ↗ google/jax
- [5] fix(spanner): implement dict protocol and nested unwrapping for JsonObject ↗ googleapis/google-cloud-python
- [6] fix(spanner): implement dict protocol and nested unwrapping for JsonObject (#17915) googleapis/google-cloud-python
- [7] feat(generator): delegate REST transcoding to google-api-core ↗ googleapis/google-cloud-python