-
New features
- Added a doc on defining custom derivative rules with the experimental
hijax API (hijax-custom-derivatives), along with
jax.experimental.hijaxhelpers for derivingVJPHiPrimitiveautodiff
rules from ajvporlinrule:linearize_from_jvpwith
apply_derived_linearization,vjp_fwd_from_jvpwithtranspose_jvp,
vjp_fwd_from_linwithtranspose_linearized, andjvp_from_lin. - Added
jax.custom_rematto the top-leveljaxnamespace, for
per-function control of rematerialization under the newjax_remat3
implementation. jax.checkpoint_policiesis now a submodule rather than a namespace
object (sofrom jax.checkpoint_policies import ...now works; attribute
access is unchanged), and it additionally exposes the name-based policy
classesSaveOnlyTheseNames,SaveAnyNamesButThese, and
SaveAndOffloadOnlyTheseNames.- Added
jax.Inlineenum for specify inlining policies to
jax.jit.
- Added a doc on defining custom derivative rules with the experimental
-
Breaking changes
- The deprecated module j
ax.cloud_tpu_initwas removed. This did nothing and
references to it can be safely removed. - Support for Python 3.11, NumPy 2.0, and SciPy 1.14 has been dropped, per the
deprecation policy. - Support for Python 3.13 free-threaded (
3.13t) has been dropped. Python
3.13 free-threaded was an experimental build needed to bootstrap free
threading support. Now that Python 3.14t is stable, it is time to drop the
experimental build. Other parts of the Python ecosystem (e.g.
cibuildwheel,scipy) are making similar moves. jax.numpy.emptyandjax.numpy.empty_likenow produce
uninitialized arrays, similar to their NumPy counterparts. Prior to v0.11.0,
they produced arrays initialized to zeros. To recover the previous behavior,
usejax.numpy.zerosorjax.numpy.zeros_likeinstead.
- The deprecated module j
-
Deprecations
- Passing 2-dimensional arrays (or mixed 2D and 3D arrays) to
jax.numpy.crossis deprecated and will be removed in JAX 0.12.0, aligning with NumPy 2.5 behavior. - Several previously-deprecated APIs from
jax.corehave been removed, including
CallPrimitive,DebugInfo,DropVar,Effect,Effects,InconclusiveDimensionOperation,
JaxprTypeError,abstract_token,check_jaxpr,concrete_or_error,find_top_trace,gensym,
get_opaque_trace_state,is_concrete,is_constant_dim,is_constant_shape,jaxprs_in_params,
new_jaxpr_eqn,no_effects,nonempty_axis_env_DO_NOT_USE,primal_dtype_to_tangent_dtype,
unsafe_am_i_under_a_jit_DO_NOT_USE,unsafe_am_i_under_a_vmap_DO_NOT_USE,
unsafe_get_axis_names_DO_NOT_USE,valid_jaxtype,JaxprPpContext,JaxprPpSettings,OutputType,
aval_mapping_handlers,call,concretization_function_error,custom_typechecks,
literalable_types,no_axis_name, andtrace_ctx. - Several previously-deprecated APIs from
jax.interpreters.pxlahave been removed, including
Index,MeshAxisName,MeshExecutable,global_aval_to_result_handler,global_result_handlers,
are_hlo_shardings_equal,is_hlo_sharding_replicated,ArrayMapping,_UNSPECIFIED,
array_mapping_to_axis_resources, andop_sharding_to_indices.
- Passing 2-dimensional arrays (or mixed 2D and 3D arrays) to