Keyword index

Concepts

Each concept lists its most relevant sections (heading matches first), up to 8.

Tracing and jaxpr

Recompilation and the compilation cache

Static arguments and weak types

Control flow (cond / scan / while)

Masking and variable-length sequences

NaN and numerical stability

Autodiff modes (jvp / vjp)

Jacobian / Hessian

Custom derivatives (custom_jvp / custom_vjp)

Per-example gradients

Vectorization with vmap

Multiple devices and sharding

pmap and collectives

Model parallelism (FSDP / tensor parallel)

Multi-host

PyTrees

Random numbers and keys

State and optimizers

Gradient checkpointing (remat)

Gradient accumulation

Mixed precision

Memory and donation

Profiling and fusion

Debugging tools

Callbacks and external code

Custom primitives and FFI

DLPack and zero-copy

Pallas kernels

Export and deployment

Flax NNX

Scientific computing and PDEs

Known issues in this environment

APIs

Grouped by namespace; each API lists the notebooks that cover it (up to 6, linking to the first section where it appears).

jax.*

APIWhere
jax.ArrayAdvanced 01_transformations_control_flow › 1.7 Understanding closures and JAX staging; Advanced 02_performance › 2.4 Memory layout and its effect on performance; Advanced 03_distributed › 3.5 Collective communication primitives (psum, pmean, etc.); Advanced 05_interop_custom_ops › Links to the Basics part; Advanced 08_debugging › 7.3 jax.live_arrays(): finding arrays that weren't freed; Basics 01_introduction › 1.5 Working with JAX arrays
jax.Array.__repr__Advanced 02_performance › 2.7 Asynchronous dispatch
jax.ShapeDtypeStructAdvanced 05_interop_custom_ops › 5.4 Side-effect-free calls with jax.pure_callback; Advanced 07_pallas › 2.1 Kernels, Refs and out_shape; Advanced 09_export_deploy › §0 Environment notes and shared helpers; Basics 07_practical_topics › 1.5 ✅ Fixes
jax.__version__Advanced 09_export_deploy › §2.6 Version compatibility: three layers of version numbers
jax._src.debuggingAdvanced 08_debugging › 1.1 jax.debug.print
jax.ad_checkpointAdvanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization)
jax.ad_checkpoint.checkpoint_nameAdvanced 06_large_scale_training › 🗂️ Cheat sheet
jax.ad_checkpoint.print_saved_residualsAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 04_advanced_autodiff › Cheat sheet; Advanced 06_large_scale_training › 🗂️ Cheat sheet; Advanced 11_scientific_computing › Cheat sheet
jax.ad_checkpoint.xxxAdvanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization)
jax.block_until_readyAdvanced 02_performance › 2.7 Asynchronous dispatch; Basics 02_jit › 2.7 Hands-on: applying jit; Basics 07_practical_topics › 0 Common setup
jax.check_tracer_leaksAdvanced 08_debugging › Cheat sheet
jax.checking_leaksAdvanced 08_debugging › Contents
jax.checkpointAdvanced 01_transformations_control_flow › How this connects to the Basics part; Advanced 04_advanced_autodiff › Start; Advanced 06_large_scale_training › Start; Advanced 08_debugging › 7.1 memory_analysis(): know how much memory you need before running; Advanced 11_scientific_computing › Start; Basics 06_state › 🧭 Course summary and where to go next
jax.checkpoint_policiesAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization)
jax.checkpoint_policies.dots_saveableAdvanced 06_large_scale_training › 🗂️ Cheat sheet
jax.clear_cachesAdvanced 01_transformations_control_flow › 1.7 Understanding closures and JAX staging; Advanced 08_debugging › Contents; Basics 07_practical_topics › 2.4 Locating NaNs with jax_debug_nans (measured behavior in 0.12)
jax.configAdvanced 08_debugging › Contents; Basics 03_grad › 3.9 Hands-on: computing gradients
jax.config.jax_debug_nansAdvanced 08_debugging › 6.2 Checking the current values in jax.config
jax.config.jax_threefry_partitionableAdvanced 10_random_sharding › Cheat sheet
jax.config.readAdvanced 08_debugging › 6.2 Checking the current values in jax.config
jax.config.updateAdvanced 02_performance › 2.5 Avoiding recompilation; Advanced 03_distributed › 3.9 Practice: distributed data-parallel training; Advanced 08_debugging › 3.1 jax_debug_nans / jax_debug_infs; Advanced 10_random_sharding › 3 PRNG algorithms: threefry, philox, rbg, unsafe_rbg; Advanced 11_scientific_computing › 0 Environment: turn on float64; Basics 01_introduction › 1.2 JAX vs. NumPy
jax.config.valuesAdvanced 08_debugging › 6.2 Checking the current values in jax.config
jax.coreAdvanced 05_interop_custom_ops › 5.6 Defining custom primitives
jax.core.ShapedArrayAdvanced 05_interop_custom_ops › Links to the Basics part
jax.core.get_avalAdvanced 05_interop_custom_ops › 5.9 Differentiation rules for custom primitives
jax.custom_jvpAdvanced 04_advanced_autodiff › Start; Advanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback; Basics 03_grad › 3.8 Limitations and caveats; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.custom_vjpAdvanced 01_transformations_control_flow › Exercise 3: segment softmax (a basic operation in graph attention); Advanced 04_advanced_autodiff › Start; Advanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback; Advanced 07_pallas › 5.3 grad: not differentiable by default; use custom_vjp + a Pallas backward kernel; Basics 03_grad › 3.8 Limitations and caveats
jax.debug.breakpointAdvanced 08_debugging › Contents; Basics 05_pmap › 5.7 Debugging pmapped functions
jax.debug.callbackAdvanced 05_interop_custom_ops › Links to the Basics part; Advanced 08_debugging › Contents
jax.debug.inspect_array_shardingAdvanced 08_debugging › 8 Multiple devices: where arrays live and what each device computed
jax.debug.logAdvanced 08_debugging › 1.1 jax.debug.print
jax.debug.printAdvanced 01_transformations_control_flow › 1.3 Conditional execution with lax.cond; Advanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback; Advanced 07_pallas › 3.4 What extra problems the TPU simulator catches; Advanced 08_debugging › Contents; Basics 01_introduction › 1.3 Core design: function transformations; Basics 02_jit › 2.6 Common jit pitfalls
jax.debug.visualize_array_shardingAdvanced 03_distributed › 3.7 Nested pmap and advanced partitioning; Advanced 06_large_scale_training › 🗂️ Cheat sheet; Advanced 08_debugging › 8 Multiple devices: where arrays live and what each device computed; Basics 05_pmap › 5.4 Device meshes and axis names
jax.debug_infsAdvanced 08_debugging › 3.1 jax_debug_nans / jax_debug_infs
jax.debug_nansAdvanced 04_advanced_autodiff › 4.6 Custom differentiation rules with jax.custom_vjp; Advanced 08_debugging › 3.1 jax_debug_nans / jax_debug_infs
jax.debug_nans.valueAdvanced 08_debugging › 6.2 Checking the current values in jax.config
jax.default_backendBasics 01_introduction › Cheat sheet
jax.device_countAdvanced 03_distributed › 3.2 Device management in JAX; Basics 05_pmap › 5.8 Hands-on: parallel computation
jax.device_getAdvanced 02_performance › 2.7 Asynchronous dispatch; Advanced 05_interop_custom_ops › 5.1 Integrating JAX with NumPy; Basics 01_introduction › 1.6 Device management: CPU, GPU, TPU; Basics 07_practical_topics › 6.5 ❌ Common mistakes, measured
jax.device_putAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 03_distributed › 3.2 Device management in JAX; Advanced 05_interop_custom_ops › 5.1 Integrating JAX with NumPy; Advanced 06_large_scale_training › 6.3 Managing model parameters and state; Advanced 08_debugging › 5.5 Slow code: what to check, in order; Basics 01_introduction › 1.6 Device management: CPU, GPU, TPU
jax.device_put_replicateAdvanced 06_large_scale_training › Version notes
jax.device_put_replicatedAdvanced 06_large_scale_training › 6.3 Managing model parameters and state; Basics 05_pmap › 5.8 Hands-on: parallel computation
jax.device_put_shardedAdvanced 06_large_scale_training › 6.3 Managing model parameters and state
jax.devicesAdvanced 03_distributed › 3.2 Device management in JAX; Advanced 08_debugging › 7.1 memory_analysis(): know how much memory you need before running; Basics 01_introduction › 1.6 Device management: CPU, GPU, TPU; Basics 05_pmap › 5.2 Introducing jax.pmap
jax.disable_jitAdvanced 08_debugging › Contents; Basics 02_jit › 2.6 Common jit pitfalls; Basics 05_pmap › Cheat sheet
jax.distributed.initializeAdvanced 03_distributed › 3.8 Overview of multi-host programming
jax.dlpack.from_dlpackAdvanced 05_interop_custom_ops › Links to the Basics part
jax.dlpack.is_supported_dtypeAdvanced 05_interop_custom_ops › 5.2 Zero-copy data sharing with DLPack
jax.dlpack.to_dlpackAdvanced 05_interop_custom_ops › 5.2 Zero-copy data sharing with DLPack
jax.dtypes.float0Advanced 04_advanced_autodiff › 4.2 Jacobian-vector products (JVPs) and jax.jvp
jax.dtypes.prng_keyAdvanced 10_random_sharding › Start
jax.effects_barrierAdvanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback; Advanced 08_debugging › Cheat sheet
jax.enable_x64Advanced 07_pallas › §7 Practical rules checklist; Advanced 11_scientific_computing › 1.2 Why float64 matters
jax.errorsAdvanced 08_debugging › Contents
jax.errors.ConcretizationTypeErrorAdvanced 08_debugging › 📝 Quiz (6 questions); Basics 02_jit › Cheat sheet
jax.errors.JAXTypeErrorAdvanced 08_debugging › 4 A catalog of Tracer errors; Basics 02_jit › 2.4 Python control flow and jit
jax.errors.KeyReuseErrorAdvanced 08_debugging › 9.3 Hidden bug 3: reusing a random key
jax.errors.TracerBoolConversionErrorAdvanced 08_debugging › Cheat sheet
jax.eval_shapeAdvanced 05_interop_custom_ops › 5.7 Implementing abstract evaluation rules; Advanced 09_export_deploy › §3.3 Getting an abstract template with jax.eval_shape; Basics 07_practical_topics › 1.4 Diagnostic tools
jax.experimental.checkifyAdvanced 08_debugging › 3.2 jax.experimental.checkify; Basics 07_practical_topics › 2.4 Locating NaNs with jax_debug_nans (measured behavior in 0.12)
jax.experimental.checkify.checkifyBasics 07_practical_topics › 🗂️ Cheat sheet
jax.experimental.host_callbackAdvanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback
jax.experimental.io_callbackAdvanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback
jax.experimental.jax2tfAdvanced 09_export_deploy › §4.2 The state of jax2tf
jax.experimental.jax2tf.convertAdvanced 09_export_deploy › 🗂️ Cheat sheet
jax.experimental.jetAdvanced 04_advanced_autodiff › Start
jax.experimental.jet.jetAdvanced 04_advanced_autodiff › Cheat sheet
jax.experimental.mapsAdvanced 03_distributed › Cheat sheet; Basics 05_pmap › 5.4 Device meshes and axis names
jax.experimental.maps.MeshBasics 05_pmap › 5.4 Device meshes and axis names
jax.experimental.multihost_utils.process_allgatherAdvanced 03_distributed › 3.8 Overview of multi-host programming
jax.experimental.pallasAdvanced 07_pallas › How this connects to earlier chapters
jax.experimental.shard_mapAdvanced 03_distributed › 3.7 Nested pmap and advanced partitioning; Basics 05_pmap › 5.10 Summary
jax.experimental.sparseAdvanced 11_scientific_computing › 3.1 Assembling the five-point matrix from triplets and cross-checking against SciPy CSR
jax.experimental.sparse.BCOOAdvanced 04_advanced_autodiff › 4.5 Computing full Jacobians and Hessians; Advanced 11_scientific_computing › Start
jax.experimental.sparse.linalg.spsolveAdvanced 11_scientific_computing › 3.3 BCOO + CG, and the state of sparse direct solvers
jax.exportAdvanced 09_export_deploy › Contents
jax.export.deserializeAdvanced 09_export_deploy › §0 Environment notes and shared helpers
jax.export.exportAdvanced 09_export_deploy › Contents
jax.extend.coreAdvanced 05_interop_custom_ops › 5.6 Defining custom primitives
jax.extend.core.ClosedJaxprAdvanced 01_transformations_control_flow › 1.7 Understanding closures and JAX staging; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr)
jax.extend.core.PrimitiveAdvanced 05_interop_custom_ops › Links to the Basics part
jax.extend.core.jaxpr_as_funAdvanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr)
jax.extend.core.jaxprs_in_paramsAdvanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr)
jax.extend.mlir.dialects.stablehloAdvanced 05_interop_custom_ops › 5.8 Implementing lowering rules for backends
jax.extend.mlir.dialects.stablehlo.get_current_versionAdvanced 09_export_deploy › 🗂️ Cheat sheet
jax.extend.randomAdvanced 10_random_sharding › 4.3 Why they differ: how counters are assigned
jax.extend.random.threefry_2x32Advanced 10_random_sharding › Cheat sheet
jax.ffiAdvanced 05_interop_custom_ops › Links to the Basics part; Advanced 07_pallas › How this connects to earlier chapters
jax.ffi.ffi_callAdvanced 05_interop_custom_ops › 5.5 Introduction to JAX primitives; Advanced 09_export_deploy › §4.4 Wrapping a model as a service function with pure_callback: the trade-offs
jax.ffi.ffi_loweringAdvanced 05_interop_custom_ops › 5.8 Implementing lowering rules for backends
jax.ffi.include_dirAdvanced 05_interop_custom_ops › 5.10 Practice: integrating a C++ function
jax.ffi.pycapsuleAdvanced 05_interop_custom_ops › 5.10 Practice: integrating a C++ function
jax.ffi.register_ffi_targetAdvanced 05_interop_custom_ops › 5.10 Practice: integrating a C++ function
jax.get_deviceBasics 01_introduction › Chapter 1 quiz
jax.gradAdvanced 01_transformations_control_flow › 1.1 Core transformations review: jit, grad, vmap; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 04_advanced_autodiff › 4.1 Review of forward- and reverse-mode autodiff; Advanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback; Advanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku); Advanced 07_pallas › Hands-on exercises
jax.hessianAdvanced 04_advanced_autodiff › 4.4 Higher-order derivatives; Advanced 05_interop_custom_ops › 5.4 Side-effect-free calls with jax.pure_callback; Advanced 11_scientific_computing › 2.2 The matrix-free operator; Basics 03_grad › 3.3 How autodiff works: reverse mode; Basics 07_practical_topics › 3.3 Timing experiment: sweeping input/output dimensions
jax.interpretersAdvanced 05_interop_custom_ops › Links to the Basics part
jax.interpreters.adAdvanced 05_interop_custom_ops › Cheat sheet; Advanced 07_pallas › 5.3 grad: not differentiable by default; use custom_vjp + a Pallas backward kernel
jax.interpreters.mlirAdvanced 05_interop_custom_ops › Cheat sheet
jax.interpreters.mlir.register_loweringAdvanced 05_interop_custom_ops › 5.8 Implementing lowering rules for backends
jax.interpreters.xlaAdvanced 05_interop_custom_ops › 5.8 Implementing lowering rules for backends
jax.jacfwdAdvanced 01_transformations_control_flow › 1.1 Core transformations review: jit, grad, vmap; Advanced 04_advanced_autodiff › 4.2 Jacobian-vector products (JVPs) and jax.jvp; Advanced 09_export_deploy › §2.5 Exporting differentiable functions: vjp_order; Advanced 11_scientific_computing › Exercise 2: the sensitivity to the source term is the adjoint solution; Basics 03_grad › 3.2 Introducing jax.grad; Basics 07_practical_topics › 3.4 ❌ Common mistake: building $J$ when you only need $Jv$
jax.jacobianBasics 03_grad › 3.2 Introducing jax.grad
jax.jacrevAdvanced 01_transformations_control_flow › 1.1 Core transformations review: jit, grad, vmap; Advanced 04_advanced_autodiff › 4.5 Computing full Jacobians and Hessians; Basics 03_grad › 3.2 Introducing jax.grad; Basics 04_vmap › 4.6 Combining vmap with jit and grad; Basics 07_practical_topics › 📝 Chapter 7 quiz
jax.jitAdvanced 01_transformations_control_flow › 1.1 Core transformations review: jit, grad, vmap; Advanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 03_distributed › 3.2 Device management in JAX; Advanced 05_interop_custom_ops › Hands-on exercises; Advanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku); Advanced 07_pallas › §0 Probes: confirming the Pallas API in 0.12
jax.jvpAdvanced 04_advanced_autodiff › Start; Advanced 05_interop_custom_ops › 5.9 Differentiation rules for custom primitives; Advanced 07_pallas › Quiz; Advanced 09_export_deploy › §2.5 Exporting differentiable functions: vjp_order; Advanced 11_scientific_computing › 4.6 Nonlinear problems: lax.custom_root; Basics 03_grad › 3.2 Introducing jax.grad
jax.laxAdvanced 03_distributed › 3.5 Collective communication primitives (psum, pmean, etc.); Advanced 05_interop_custom_ops › 5.3 Calling external CPU/GPU code with jax.experimental.host_callback; Basics 02_jit › 2.4 Python control flow and jit; Basics 03_grad › 3.8 Limitations and caveats; Basics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
jax.lib.xla_clientAdvanced 05_interop_custom_ops › 5.8 Implementing lowering rules for backends
jax.linear_transposeAdvanced 04_advanced_autodiff › Start; Advanced 11_scientific_computing › 4.2 A variable-coefficient diffusion operator
jax.linearizeAdvanced 04_advanced_autodiff › Start; Basics 07_practical_topics › 3.3 Timing experiment: sweeping input/output dimensions
jax.live_arraysAdvanced 08_debugging › Contents
jax.local_device_countAdvanced 03_distributed › 3.2 Device management in JAX; Basics 05_pmap › 5.7 Debugging pmapped functions
jax.local_devicesAdvanced 03_distributed › 3.2 Device management in JAX
jax.log_compilesAdvanced 02_performance › 0. Environment and shared helpers; Advanced 08_debugging › 5.1 jax_log_compiles: one compilation = 4 log lines
jax.make_array_from_process_local_dataAdvanced 03_distributed › 3.8 Overview of multi-host programming
jax.make_jaxprAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 08_debugging › 2.1 jaxpr: spotting values that were treated as constants; Basics 01_introduction › 1.1 What is JAX?; Basics 02_jit › 2.3 How JIT works: tracing and compilation; Basics 03_grad › 3.3 How autodiff works: reverse mode
jax.make_meshAdvanced 03_distributed › 3.6 Handling axis names in pmap; Advanced 06_large_scale_training › 6.4 Combining pmap with training frameworks; Advanced 09_export_deploy › §2.7 Exporting functions with sharding, shard_map or pmap; Basics 05_pmap › 5.1 Introduction to data parallelism (SPMD)
jax.monitoringAdvanced 08_debugging › Common setup; Basics 07_practical_topics › 0 Common setup
jax.monitoring.register_event_duration_secs_listenerAdvanced 08_debugging › Cheat sheet; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.monitoring.unregister_event_duration_listenerBasics 07_practical_topics › 🗂️ Cheat sheet
jax.named_scopeAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 08_debugging › Contents
jax.nnBasics 03_grad › 3.8 Limitations and caveats; Basics 07_practical_topics › 2.3 Stable logsumexp / softmax / log_softmax
jax.nn.log_sigmoidBasics 03_grad › Extra exercises
jax.nn.log_softmaxBasics 07_practical_topics › ★.3 Loss and training function
jax.nn.logsumexpBasics 07_practical_topics › 2.3 Stable logsumexp / softmax / log_softmax
jax.nn.reluAdvanced 04_advanced_autodiff › 4.4 Higher-order derivatives; Basics 03_grad › 3.8 Limitations and caveats
jax.nn.sigmoidAdvanced 04_advanced_autodiff › 4.10 Practice: implementing custom gradients; Basics 03_grad › 3.8 Limitations and caveats
jax.nn.siluAdvanced 05_interop_custom_ops › Hands-on exercises
jax.nn.softmaxAdvanced 01_transformations_control_flow › 1.6 Advanced masking techniques; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.nn.softplusAdvanced 04_advanced_autodiff › 4.6 Custom differentiation rules with jax.custom_vjp
jax.numpyAdvanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 05_interop_custom_ops › 5.1 Integrating JAX with NumPy; Basics 01_introduction › Start; Basics 03_grad › 3.9 Hands-on: computing gradients; Basics 04_vmap › 4.7 Performance considerations for vmap; Basics 06_state › 🧭 Course summary and where to go next
jax.opsAdvanced 01_transformations_control_flow › 1.6 Advanced masking techniques
jax.ops.segment_sumAdvanced 01_transformations_control_flow › How this connects to the Basics part
jax.pmapAdvanced 03_distributed › Start; Advanced 06_large_scale_training › 6.4 Combining pmap with training frameworks; Basics 01_introduction › 1.1 What is JAX?; Basics 05_pmap › Start; Basics 06_state › 6.4 Using PyTrees for structured state
jax.print_environment_infoAdvanced 08_debugging › Contents; Basics 01_introduction › 1.4 Installation and setup
jax.process_countAdvanced 03_distributed › 3.8 Overview of multi-host programming
jax.process_indexAdvanced 03_distributed › 3.8 Overview of multi-host programming; Advanced 10_random_sharding › Cheat sheet; Basics 05_pmap › 5.8 Hands-on: parallel computation
jax.profilerAdvanced 02_performance › Start; Advanced 06_large_scale_training › 🧭 Where to go next; Advanced 07_pallas › 6.3 Tuning: block size, arithmetic intensity and the VMEM budget; Basics 06_state › 🧭 Course summary and where to go next
jax.profiler.ProfileData.from_fileAdvanced 02_performance › Cheat sheet
jax.profiler.StepTraceAnnotationAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU
jax.profiler.TraceAnnotationAdvanced 02_performance › Cheat sheet
jax.profiler.device_memory_profileAdvanced 08_debugging › 7.2 jax.profiler.save_device_memory_profile: who is using the memory
jax.profiler.save_device_memory_profileAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 08_debugging › 7.2 jax.profiler.save_device_memory_profile: who is using the memory
jax.profiler.start_traceAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU
jax.profiler.stop_traceAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU
jax.profiler.traceAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 08_debugging › 5.5 Slow code: what to check, in order
jax.pure_callbackAdvanced 04_advanced_autodiff › 4.7 Custom differentiation rules with jax.custom_jvp; Advanced 05_interop_custom_ops › Links to the Basics part; Advanced 08_debugging › 1.2 jax.debug.callback; Advanced 11_scientific_computing › 3.3 BCOO + CG, and the state of sparse direct solvers
jax.randomAdvanced 10_random_sharding › 2.2 Converting and serializing: key_data / wrap_key_data need impl; Basics 07_practical_topics › ★.1 Data: a three-arm spiral
jax.random.PRNGKeyAdvanced 01_transformations_control_flow › Version notes; Advanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 03_distributed › 3.4 Data parallelism with pmap; Advanced 04_advanced_autodiff › Version notes; Advanced 05_interop_custom_ops › Version notes; Advanced 06_large_scale_training › Version notes
jax.random.bitsAdvanced 10_random_sharding › Cheat sheet
jax.random.fold_inAdvanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training; Advanced 10_random_sharding › Cheat sheet; Basics 01_introduction › 1.5 Working with JAX arrays; Basics 06_state › 📝 Chapter 6 quiz
jax.random.gumbelAdvanced 04_advanced_autodiff › Cheat sheet
jax.random.keyAdvanced 01_transformations_control_flow › Version notes; Advanced 02_performance › Version notes; Advanced 03_distributed › Start; Advanced 04_advanced_autodiff › 4.6 Custom differentiation rules with jax.custom_vjp; Advanced 05_interop_custom_ops › Version notes; Advanced 06_large_scale_training › Version notes
jax.random.key_dataAdvanced 08_debugging › 9.3 Hidden bug 3: reusing a random key; Advanced 10_random_sharding › Quiz; Basics 01_introduction › 1.5 Working with JAX arrays
jax.random.key_implAdvanced 10_random_sharding › Cheat sheet
jax.random.normalAdvanced 01_transformations_control_flow › Version notes; Advanced 05_interop_custom_ops › Version notes; Advanced 10_random_sharding › Quiz; Basics 01_introduction › Cheat sheet
jax.random.permutationBasics 01_introduction › 1.7 Hands-on: basic array operations
jax.random.randintBasics 01_introduction › 1.7 Hands-on: basic array operations
jax.random.splitAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 02_performance › Version notes; Advanced 10_random_sharding › 6.3 split(key) returns a key array, which can't be used directly as a key; Basics 01_introduction › 1.5 Working with JAX arrays; Basics 02_jit › 2.2 Introducing jax.jit; Basics 04_vmap › 4.6 Combining vmap with jit and grad
jax.random.uniformAdvanced 10_random_sharding › Exercises
jax.random.wrap_key_dataAdvanced 10_random_sharding › Cheat sheet; Basics 01_introduction › 1.5 Working with JAX arrays
jax.readthedocs.ioBasics 01_introduction › 1.1 What is JAX?
jax.rematAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 04_advanced_autodiff › 4.8 Differentiating through control-flow primitives; Advanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization)
jax.reshardBasics 05_pmap › Cheat sheet
jax.scipyBasics 03_grad › 3.8 Limitations and caveats
jax.scipy.sparse.linalg.cgAdvanced 11_scientific_computing › Start
jax.scipy.sparse.linalg.gmresAdvanced 11_scientific_computing › Cheat sheet
jax.scipy.special.gammalnAdvanced 05_interop_custom_ops › Hands-on exercises
jax.scipy.special.logsumexpBasics 03_grad › 3.8 Limitations and caveats
jax.set_meshAdvanced 03_distributed › Cheat sheet; Advanced 06_large_scale_training › 6.4 Combining pmap with training frameworks; Advanced 09_export_deploy › §2.7 Exporting functions with sharding, shard_map or pmap; Basics 05_pmap › Cheat sheet
jax.shard_mapAdvanced 03_distributed › Start; Advanced 06_large_scale_training › 6.4 Combining pmap with training frameworks; Basics 01_introduction › 1.1 What is JAX?; Basics 05_pmap › Start; Basics 06_state › 6.7 Combining state management with transformations
jax.shardingBasics 01_introduction › 1.1 What is JAX?; Basics 06_state › 6.7 Combining state management with transformations
jax.sharding.MeshAdvanced 03_distributed › Cheat sheet; Basics 05_pmap › 5.4 Device meshes and axis names
jax.sharding.reshardAdvanced 03_distributed › 3.7 Nested pmap and advanced partitioning; Advanced 06_large_scale_training › 🗂️ Cheat sheet
jax.sharding.use_abstract_meshAdvanced 07_pallas › 6.2 compiler_params: backend-specific parameters
jax.stagesAdvanced 08_debugging › Contents; Basics 07_practical_topics › Learning goals
jax.stages.TracedAdvanced 08_debugging › Cheat sheet
jax.test_utilAdvanced 04_advanced_autodiff › 4.6 Custom differentiation rules with jax.custom_vjp; Basics 03_grad › 3.8 Limitations and caveats
jax.test_util.check_gradsAdvanced 04_advanced_autodiff › 4.6 Custom differentiation rules with jax.custom_vjp; Advanced 05_interop_custom_ops › 5.9 Differentiation rules for custom primitives; Advanced 07_pallas › Cheat sheet; Advanced 08_debugging › 3.1 jax_debug_nans / jax_debug_infs; Basics 03_grad › 3.8 Limitations and caveats; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.transfer_guardAdvanced 08_debugging › 5.5 Slow code: what to check, in order
jax.treeBasics 06_state › Start; Basics 07_practical_topics › Learning goals
jax.tree.allBasics 01_introduction › Cheat sheet; Basics 06_state › 6.4 Using PyTrees for structured state
jax.tree.broadcastBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.tree.flattenBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree.leavesAdvanced 01_transformations_control_flow › Cheat sheet; Basics 06_state › 6.4 Using PyTrees for structured state
jax.tree.leaves_with_pathBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree.mapAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 03_distributed › Start; Advanced 06_large_scale_training › Version notes; Basics 01_introduction › Cheat sheet; Basics 03_grad › 3.4 Differentiating with respect to arguments; Basics 04_vmap › 4.6 Combining vmap with jit and grad
jax.tree.map_with_pathBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.tree.reduceBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.tree.staticBasics 07_practical_topics › 7.5 TrainState: register_dataclass vs. NamedTuple
jax.tree.structureAdvanced 01_transformations_control_flow › Cheat sheet; Basics 06_state › 6.4 Using PyTrees for structured state
jax.tree.transposeBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.tree.unflattenBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_flattenBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_leavesBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 7.2 Old → new migration table (measured in 0.12)
jax.tree_mapAdvanced 03_distributed › 3.6 Handling axis names in pmap; Basics 04_vmap › 4.6 Combining vmap with jit and grad; Basics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 7.2 Old → new migration table (measured in 0.12)
jax.tree_reduceBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_structureBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_transposeBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_unflattenBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_utilBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 7.2 Old → new migration table (measured in 0.12)
jax.tree_util.keystrBasics 06_state › 🗂️ Cheat sheet; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.tree_util.register_dataclassBasics 06_state › 6.4 Using PyTrees for structured state; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.tree_util.register_pytree_node_classBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.register_staticBasics 07_practical_topics › 1.5 ✅ Fixes
jax.tree_util.tree_allBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_broadcastBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_flattenBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_leavesBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_mapAdvanced 01_transformations_control_flow › Cheat sheet; Advanced 06_large_scale_training › Version notes; Basics 04_vmap › 4.6 Combining vmap with jit and grad; Basics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_map_with_pathBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_multimapBasics 06_state › 6.4 Using PyTrees for structured state
jax.tree_util.tree_transposeBasics 06_state › 6.4 Using PyTrees for structured state
jax.typeofAdvanced 03_distributed › Start; Advanced 06_large_scale_training › 6.4 Combining pmap with training frameworks; Advanced 08_debugging › Contents; Basics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
jax.value_and_gradAdvanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization); Basics 01_introduction › 1.3 Core design: function transformations; Basics 03_grad › Start; Basics 05_pmap › 5.6 Combining pmap with other transformations; Basics 06_state › 6.7 Combining state management with transformations
jax.vjpAdvanced 04_advanced_autodiff › Start; Advanced 05_interop_custom_ops › 5.9 Differentiation rules for custom primitives; Advanced 07_pallas › Hands-on exercises; Advanced 09_export_deploy › §2.5 Exporting differentiable functions: vjp_order; Basics 03_grad › 3.2 Introducing jax.grad; Basics 07_practical_topics › 🗂️ Cheat sheet
jax.vmapAdvanced 01_transformations_control_flow › 1.1 Core transformations review: jit, grad, vmap; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 05_interop_custom_ops › Hands-on exercises; Advanced 07_pallas › Hands-on exercises; Advanced 08_debugging › 📝 Quiz (6 questions); Advanced 09_export_deploy › §2.5 Exporting differentiable functions: vjp_order

lax.*

APIWhere
lax.all_gatherAdvanced 03_distributed › 3.5 Collective communication primitives (psum, pmean, etc.); Advanced 06_large_scale_training › ✍️ Hands-on exercises; Basics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
lax.all_to_allAdvanced 03_distributed › Cheat sheet
lax.associative_scanAdvanced 01_transformations_control_flow › 1.2 Mastering lax.scan for sequential operations
lax.axis_indexAdvanced 03_distributed › 3.5 Collective communication primitives (psum, pmean, etc.); Advanced 08_debugging › 8.3 "Inconsistent results across devices": check the replicas, look at each device's local values; Basics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
lax.axis_sizeBasics 05_pmap › Cheat sheet
lax.broadcasted_iotaAdvanced 07_pallas › Cheat sheet
lax.condAdvanced 01_transformations_control_flow › How this connects to the Basics part; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 04_advanced_autodiff › 4.8 Differentiating through control-flow primitives; Advanced 07_pallas › 4.1 Tiled matmul with an accumulator; Advanced 08_debugging › 0 Symptom lookup table; Basics 02_jit › Start
lax.custom_linear_solveAdvanced 11_scientific_computing › Start
lax.custom_rootAdvanced 11_scientific_computing › Start
lax.dynamic_sliceAdvanced 08_debugging › 4 A catalog of Tracer errors
lax.fori_loopAdvanced 01_transformations_control_flow › 1.4 Looping with lax.while_loop; Advanced 04_advanced_autodiff › 4.8 Differentiating through control-flow primitives; Advanced 08_debugging › 1.4 jax.disable_jit(): a debugging aid and a bisection tool; Basics 02_jit › 2.4 Python control flow and jit; Basics 03_grad › 3.7 Differentiation and control flow; Basics 04_vmap › 4.7 Performance considerations for vmap
lax.linalg.tridiagonal_solveAdvanced 11_scientific_computing › 6.1 Explicit and Crank–Nicolson schemes
lax.mapAdvanced 02_performance › 2.8 Hands-on: optimizing a numerical computation: the pairwise distance matrix; Advanced 10_random_sharding › 4.5 "Random numbers aren't guaranteed to match across versions", and the 10.81 from Chapter 1; Basics 04_vmap › 4.6 Combining vmap with jit and grad; Basics 07_practical_topics › 4.2 Cross-checking vmap(grad) against a loop
lax.optimization_barrierAdvanced 02_performance › 2.6 Operator fusion and op optimization
lax.pAdvanced 06_large_scale_training › 6.8 Model parallelism strategies
lax.pcastBasics 05_pmap › Cheat sheet
lax.pmaxBasics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
lax.pmeanAdvanced 03_distributed › 3.6 Handling axis names in pmap; Advanced 06_large_scale_training › Start; Basics 05_pmap › Start; Basics 06_state › 6.7 Combining state management with transformations
lax.pminBasics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
lax.ppermuteAdvanced 03_distributed › 3.5 Collective communication primitives (psum, pmean, etc.); Advanced 06_large_scale_training › 6.8 Model parallelism strategies; Basics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
lax.psumAdvanced 03_distributed › 3.6 Handling axis names in pmap; Advanced 06_large_scale_training › 6.8 Model parallelism strategies; Basics 04_vmap › Cheat sheet; Basics 05_pmap › Start; Basics 06_state › 6.7 Combining state management with transformations
lax.psum_scatterAdvanced 03_distributed › Cheat sheet
lax.scanAdvanced 01_transformations_control_flow › How this connects to the Basics part; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 04_advanced_autodiff › 4.8 Differentiating through control-flow primitives; Advanced 05_interop_custom_ops › 5.4 Side-effect-free calls with jax.pure_callback; Advanced 06_large_scale_training › Start; Advanced 08_debugging › 1.4 jax.disable_jit(): a debugging aid and a bisection tool
lax.select_nAdvanced 01_transformations_control_flow › How this connects to the Basics part
lax.stop_gradientAdvanced 04_advanced_autodiff › 4.2 Jacobian-vector products (JVPs) and jax.jvp; Basics 03_grad › 3.8 Limitations and caveats; Basics 07_practical_topics › 2.3 Stable logsumexp / softmax / log_softmax
lax.switchAdvanced 01_transformations_control_flow › How this connects to the Basics part; Advanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr); Advanced 04_advanced_autodiff › 4.8 Differentiating through control-flow primitives; Basics 02_jit › 2.4 Python control flow and jit
lax.top_kAdvanced 04_advanced_autodiff › 4.9 Handling non-differentiable functions; Basics 07_practical_topics › ★.6 Per-example gradients: finding the top 5 "hard examples"
lax.while_loopAdvanced 01_transformations_control_flow › How this connects to the Basics part; Advanced 02_performance › 2.5 Avoiding recompilation; Advanced 04_advanced_autodiff › 4.8 Differentiating through control-flow primitives; Advanced 08_debugging › 4 A catalog of Tracer errors; Basics 02_jit › 2.4 Python control flow and jit; Basics 03_grad › 3.7 Differentiation and control flow
lax.with_sharding_constraintAdvanced 03_distributed › 3.7 Nested pmap and advanced partitioning

jnp.*

APIWhere
jnp.absBasics 03_grad › 3.8 Limitations and caveats
jnp.addAdvanced 05_interop_custom_ops › 5.5 Introduction to JAX primitives
jnp.allcloseAdvanced 01_transformations_control_flow › 1.1 Core transformations review: jit, grad, vmap; Basics 03_grad › 3.2 Introducing jax.grad
jnp.arangeAdvanced 03_distributed › 3.7 Nested pmap and advanced partitioning; Advanced 05_interop_custom_ops › 5.10 Practice: integrating a C++ function; Advanced 08_debugging › 4 A catalog of Tracer errors; Advanced 11_scientific_computing › 1.2 Why float64 matters; Basics 01_introduction › 1.7 Hands-on: basic array operations
jnp.arrayAdvanced 05_interop_custom_ops › 5.1 Integrating JAX with NumPy; Basics 01_introduction › 1.2 JAX vs. NumPy; Basics 02_jit › 2.3 How JIT works: tracing and compilation; Basics 06_state › 6.5 Example: a stateful counter
jnp.asarrayAdvanced 05_interop_custom_ops › 5.1 Integrating JAX with NumPy; Advanced 08_debugging › 4 A catalog of Tracer errors; Basics 01_introduction › 1.2 JAX vs. NumPy; Basics 07_practical_topics › 1.5 ✅ Fixes
jnp.bfloat16Advanced 06_large_scale_training › 6.7 Mixed precision training
jnp.bincountBasics 01_introduction › 1.7 Hands-on: basic array operations
jnp.broadcast_toAdvanced 03_distributed › Cheat sheet
jnp.ceilBasics 03_grad › 3.8 Limitations and caveats
jnp.clipAdvanced 04_advanced_autodiff › 4.7 Custom differentiation rules with jax.custom_jvp
jnp.cosAdvanced 02_performance › 2.2 Understanding the JAX computation graph (jaxpr)
jnp.dotAdvanced 01_transformations_control_flow › 1.7 Understanding closures and JAX staging; Advanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 05_interop_custom_ops › 5.5 Introduction to JAX primitives; Advanced 06_large_scale_training › 6.7 Mixed precision training; Advanced 07_pallas › 2.3 A first matmul: blocks don't have to be square; Basics 01_introduction › 1.5 Working with JAX arrays
jnp.einsumAdvanced 02_performance › 2.4 Memory layout and its effect on performance; Basics 04_vmap › 4.5 Nested vmap
jnp.expBasics 01_introduction › 1.5 Working with JAX arrays
jnp.finfoAdvanced 01_transformations_control_flow › 1.6 Advanced masking techniques; Advanced 06_large_scale_training › 6.7 Mixed precision training; Basics 07_practical_topics › 2.3 Stable logsumexp / softmax / log_softmax
jnp.float16Advanced 06_large_scale_training › 6.7 Mixed precision training
jnp.float32Advanced 02_performance › 2.5 Avoiding recompilation; Basics 02_jit › Exercise 3: recompilation detective; Basics 07_practical_topics › Exercise 1: a compile-budget test for a serving function
jnp.floorBasics 03_grad › 3.8 Limitations and caveats
jnp.fullBasics 02_jit › 2.3 How JIT works: tracing and compilation
jnp.int32Advanced 01_transformations_control_flow › 1.2 Mastering lax.scan for sequential operations
jnp.issubdtypeAdvanced 10_random_sharding › Cheat sheet
jnp.linalg.normAdvanced 04_advanced_autodiff › Extra exercise D: a vector norm that is safe at 0 (custom_jvp); Advanced 08_debugging › 3.1 jax_debug_nans / jax_debug_infs; Basics 03_grad › 3.8 Limitations and caveats; Basics 04_vmap › 4.1 The concept of vectorization
jnp.linalg.solveAdvanced 11_scientific_computing › 3.3 BCOO + CG, and the state of sparse direct solvers
jnp.linspaceBasics 01_introduction › 1.7 Hands-on: basic array operations
jnp.logAdvanced 04_advanced_autodiff › 4.10 Practice: implementing custom gradients; Basics 03_grad › 3.8 Limitations and caveats; Basics 07_practical_topics › 📝 Chapter 7 quiz
jnp.logaddexpAdvanced 04_advanced_autodiff › 4.4 Higher-order derivatives
jnp.matmulAdvanced 02_performance › 2.4 Memory layout and its effect on performance; Advanced 03_distributed › Quiz; Advanced 06_large_scale_training › 🗂️ Cheat sheet
jnp.maxBasics 01_introduction › 1.7 Hands-on: basic array operations
jnp.maximumAdvanced 02_performance › 2.8 Hands-on: optimizing a numerical computation: the pairwise distance matrix
jnp.meanAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Advanced 06_large_scale_training › ✍️ Hands-on exercises; Basics 01_introduction › 1.7 Hands-on: basic array operations; Basics 05_pmap › 5.9 Chapter 5 quiz; Basics 06_state › 🏋️ Extra exercises (with reference solutions)
jnp.nonzeroAdvanced 08_debugging › 4 A catalog of Tracer errors; Advanced 09_export_deploy › §2.3 Shape polymorphism: export once, handle any batch size
jnp.onesAdvanced 03_distributed › 3.2 Device management in JAX; Advanced 08_debugging › 5.1 jax_log_compiles: one compilation = 4 log lines; Basics 01_introduction › 1.6 Device management: CPU, GPU, TPU
jnp.padAdvanced 11_scientific_computing › 2.2 The matrix-free operator
jnp.promote_typesAdvanced 07_pallas › 5.3 grad: not differentiable by default; use custom_vjp + a Pallas backward kernel
jnp.randnAdvanced 01_transformations_control_flow › Version notes
jnp.reshapeBasics 01_introduction › Cheat sheet
jnp.rollAdvanced 11_scientific_computing › 2.2 The matrix-free operator
jnp.roundBasics 03_grad › 3.8 Limitations and caveats
jnp.selectAdvanced 01_transformations_control_flow › Exercise 4: write a piecewise function with lax.switch and explain its cost under vmap; Basics 02_jit › Exercise 1: a piecewise function (lax.switch / jnp.select)
jnp.signBasics 03_grad › 3.8 Limitations and caveats
jnp.sinAdvanced 02_performance › 2.1 Profiling JAX code on CPU, GPU and TPU; Basics 01_introduction › 1.5 Working with JAX arrays; Basics 03_grad › Chapter 3 Quiz
jnp.sqrtAdvanced 01_transformations_control_flow › Exercise 2: a reverse-mode differentiable "bounded while": Newton's method for square roots; Advanced 04_advanced_autodiff › 4.7 Custom differentiation rules with jax.custom_jvp; Basics 02_jit › Exercise 2: Newton's method for square roots with lax.while_loop; Basics 03_grad › 3.8 Limitations and caveats
jnp.stackBasics 04_vmap › 4.9 Chapter 4 Quiz
jnp.sumAdvanced 05_interop_custom_ops › Hands-on exercises; Advanced 07_pallas › Quiz; Basics 01_introduction › 1.7 Hands-on: basic array operations; Basics 02_jit › 2.7 Hands-on: applying jit; Basics 03_grad › Extra exercises; Basics 05_pmap › 5.5 Collective operations (lax.psum, lax.pmean, etc.)
jnp.tensordotBasics 07_practical_topics › 🗂️ Cheat sheet
jnp.transposeAdvanced 02_performance › Start
jnp.varBasics 06_state › 🏋️ Extra exercises (with reference solutions)
jnp.vectorizeBasics 04_vmap › 4.8 Hands-on: vectorizing functions
jnp.whereAdvanced 01_transformations_control_flow › How this connects to the Basics part; Advanced 06_large_scale_training › 6.7 Mixed precision training; Advanced 07_pallas › 4.3 Handling boundaries with masks; Advanced 08_debugging › 0 Symptom lookup table; Advanced 09_export_deploy › 📝 Quiz; Advanced 11_scientific_computing › 7.4 A numerically stable barrier: double where
jnp.zerosAdvanced 01_transformations_control_flow › 1.2 Mastering lax.scan for sequential operations; Advanced 08_debugging › 4 A catalog of Tracer errors; Basics 01_introduction › 1.7 Hands-on: basic array operations
jnp.zeros_likeAdvanced 04_advanced_autodiff › 4.2 Jacobian-vector products (JVPs) and jax.jvp

nnx.*

APIWhere
nnx.BatchStatAdvanced 06_large_scale_training › Start
nnx.DictAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku)
nnx.DropoutAdvanced 10_random_sharding › Cheat sheet
nnx.LinearAdvanced 06_large_scale_training › 6.3 Managing model parameters and state
nnx.ListAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku)
nnx.ModuleAdvanced 06_large_scale_training › Start
nnx.OptimizerAdvanced 06_large_scale_training › Start
nnx.ParamAdvanced 06_large_scale_training › Start; Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training
nnx.RngStateAdvanced 06_large_scale_training › 6.3 Managing model parameters and state; Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training
nnx.RngsAdvanced 06_large_scale_training › Start; Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training; Advanced 10_random_sharding › Start
nnx.StateAdvanced 09_export_deploy › §5 Putting it together: train → checkpoint → export → standalone inference in a brand-new subprocess
nnx.VariableAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku); Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training
nnx.eval_shapeAdvanced 06_large_scale_training › 6.3 Managing model parameters and state; Advanced 09_export_deploy › Contents
nnx.get_partition_specAdvanced 06_large_scale_training › 6.4 Combining pmap with training frameworks
nnx.gradAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku); Basics 06_state › 🔍 Extra: how ecosystem libraries manage state: Optax and Flax
nnx.jitAdvanced 06_large_scale_training › Start; Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training; Advanced 10_random_sharding › 5.7 Key management for dropout, and the design of Flax nnx.Rngs; Basics 06_state › 🔍 Extra: how ecosystem libraries manage state: Optax and Flax
nnx.logical_axis_rulesAdvanced 06_large_scale_training › 6.8 Model parallelism strategies
nnx.mergeAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku); Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training; Basics 06_state › 🔍 Extra: how ecosystem libraries manage state: Optax and Flax
nnx.rematAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku)
nnx.replace_by_pure_dictAdvanced 09_export_deploy › 🗂️ Cheat sheet
nnx.scanAdvanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization)
nnx.splitAdvanced 06_large_scale_training › Start; Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training; Basics 06_state › 🔍 Extra: how ecosystem libraries manage state: Optax and Flax
nnx.stateAdvanced 06_large_scale_training › 6.2 Introduction to JAX ecosystem libraries (Flax, Haiku); Advanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training
nnx.to_pure_dictAdvanced 06_large_scale_training › 🗂️ Cheat sheet; Advanced 09_export_deploy › 🗂️ Cheat sheet
nnx.updateAdvanced 06_large_scale_training › 🗂️ Cheat sheet; Advanced 09_export_deploy › Contents
nnx.value_and_gradAdvanced 06_large_scale_training › 🗂️ Cheat sheet
nnx.vmapAdvanced 06_large_scale_training › 6.6 Gradient checkpointing (rematerialization)
nnx.with_partitioningAdvanced 06_large_scale_training › Start

optax.*

APIWhere
optax.MultiStepsAdvanced 06_large_scale_training › 6.3 Managing model parameters and state
optax.adafactorAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.adamAdvanced 06_large_scale_training › 6.3 Managing model parameters and state; Basics 07_practical_topics › 🗂️ Cheat sheet
optax.adamwAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale; Basics 07_practical_topics › 🗂️ Cheat sheet
optax.apply_if_finiteAdvanced 06_large_scale_training › 6.7 Mixed precision training
optax.chainAdvanced 06_large_scale_training › 6.3 Managing model parameters and state; Basics 06_state › 🔍 Extra: how ecosystem libraries manage state: Optax and Flax; Basics 07_practical_topics › 🗂️ Cheat sheet
optax.clip_by_global_normAdvanced 03_distributed › Exercises; Advanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.contribAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.lambAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.larsAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.lbfgsAdvanced 11_scientific_computing › 5.2 Optimizing with Optax's L-BFGS
optax.lionAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale; Basics 07_practical_topics › Learning goals
optax.sgdAdvanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.skip_not_finiteAdvanced 06_large_scale_training › 6.7 Mixed precision training
optax.sm3Advanced 06_large_scale_training › 6.9 Optimization algorithms at scale
optax.value_and_grad_from_stateAdvanced 11_scientific_computing › 5.2 Optimizing with Optax's L-BFGS
optax.warmup_cosine_decay_scheduleAdvanced 06_large_scale_training › 6.3 Managing model parameters and state

ocp.*

APIWhere
ocp.CheckpointManagerAdvanced 09_export_deploy › §3.2 CheckpointManager: multi-step saving and retention policies
ocp.StandardCheckpointerAdvanced 09_export_deploy › §3.1 A quick recap (details in Advanced/06 §6.3)
ocp.args.CompositeAdvanced 09_export_deploy › §3.4 Working with Flax NNX: save, restore, keep training
ocp.checkpoint_managers.AnyPreservationPolicyAdvanced 09_export_deploy › 🗂️ Cheat sheet

pl.*

APIWhere
pl.BlockSpecAdvanced 07_pallas › Cheat sheet
pl.CostEstimateAdvanced 07_pallas › Cheat sheet
pl.InterpretParamsAdvanced 07_pallas › §0 Probes: confirming the Pallas API in 0.12
pl.cdivAdvanced 07_pallas › 3.2 Out-of-bounds blocks: you read "garbage", which is NaN in interpret mode
pl.debug_printAdvanced 07_pallas › 3.4 What extra problems the TPU simulator catches
pl.loadAdvanced 07_pallas › §0 Probes: confirming the Pallas API in 0.12
pl.num_programsAdvanced 07_pallas › How this connects to earlier chapters
pl.pallas_callAdvanced 07_pallas › How this connects to earlier chapters
pl.program_idAdvanced 07_pallas › How this connects to earlier chapters
pl.squeezedAdvanced 07_pallas › Cheat sheet
pl.storeAdvanced 07_pallas › §0 Probes: confirming the Pallas API in 0.12

checkify.*

APIWhere
checkify.all_checksAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.checkAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.checkifyAdvanced 08_debugging › Cheat sheet
checkify.debug_checkAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.div_checksAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.float_checksAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.index_checksAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.nan_checksAdvanced 08_debugging › 3.2 jax.experimental.checkify
checkify.user_checksAdvanced 08_debugging › 3.2 jax.experimental.checkify

sparse.*

APIWhere
sparse.BCOOAdvanced 11_scientific_computing › Cheat sheet
sparse.BCOO.from_scipy_sparseAdvanced 11_scientific_computing › Cheat sheet
sparse.BCSR.from_bcooAdvanced 11_scientific_computing › Cheat sheet
sparse.gradAdvanced 11_scientific_computing › 3.2 sparse.sparsify: letting "dense-style" functions accept sparse matrices
sparse.linalg.lobpcg_standardAdvanced 11_scientific_computing › 3.3 BCOO + CG, and the state of sparse direct solvers
sparse.linalg.spsolveAdvanced 11_scientific_computing › 3.3 BCOO + CG, and the state of sparse direct solvers
sparse.sparsifyAdvanced 11_scientific_computing › 3.2 sparse.sparsify: letting "dense-style" functions accept sparse matrices