LogoAIAny
Icon for item

Jax

JAX is a high-performance Python library that brings just-in-time compilation, automatic differentiation and easy parallelism to NumPy-style array programming.

Introduction

What is JAX?

JAX unifies familiar NumPy-like array syntax with compiler-level speed-ups. Developed by Google (with Nvidia and community contributions), it combines Autograd-style differentiation with XLA-powered just-in-time (JIT) compilation and powerful program transformations.

Core Transformations
  • jit – Compile Python functions for CPU, GPU or TPU back-ends.
  • grad / value_and_grad – Obtain exact gradients for any pure Python function.
  • vmap – Vectorize operations automatically across batch dimensions.
  • pmap / sharding APIs – Scale to multiple devices and hosts with SPMD primitives.
Ecosystem & Use-cases

JAX underpins research frameworks such as Flax, Haiku, Optax, T5X and Scenic. It is widely adopted for large-scale machine-learning research, differentiable scientific computing, physics simulation and rapid prototyping of novel model architectures.

Key Advantages for Developers
CapabilityBenefit
NumPy-compatible APIMinimal learning curve for Python users
Composable transformsExpress complex algorithms concisely
Multi-accelerator back-endsRun the same code on CPU, GPU or TPU
Pure-Python workflowNo new DSL to learn; leverage standard tooling
Apache-2.0 licenceFree for commercial and academic projects

Information

  • Websitedocs.jax.dev
  • AuthorsGoogle, Nvidia
  • Published date2019/10/31

Categories