github.com/google/jax ↗
Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
An animated visualization of google/jax's Git history from November 2018 to December 2020, built by 256 contributors. The codebase reached 11,132 lines, mostly Python. The video runs 1 minute 28 seconds.
Render your own repo
Turn any GitHub repository into a video like this — free sample in seconds.
Open this visualization on its own page →
Language
Python
Contributors
256
Lines of Code
11,132
From
2018-11-18
To
2020-12-21
Advertisement
About google/jax
JAX is a Python library for high-performance numerical computing and machine learning that brings composable program transformations to NumPy-like array computation. Built on top of XLA, it enables developers to write code in familiar NumPy style while automatically compiling to run on TPUs, GPUs, and other hardware accelerators. The library is designed to handle large-scale computations through its flexible scaling modes, from automatic compiler-based parallelization to explicit per-device programming.
The core of JAX consists of three key transformations: automatic differentiation via `jax.grad` for computing gradients efficiently through arbitrary Python code including loops and recursion, just-in-time compilation with `jax.jit` for end-to-end XLA compilation, and `jax.vmap` for automatic vectorization that pushes loops down to primitive operations for performance gains. These transformations can be freely composed with each other and applied to the same functions multiple times, enabling sophisticated operations like computing Jacobians or per-example gradients.
JAX is a research project from Google that supports multiple platforms including Linux, macOS, and Windows across CPU, NVIDIA GPU, Google TPU, AMD GPU, Apple Silicon, and Intel GPU backends. The library provides flexible scaling strategies for distributed computing across thousands of devices and includes extensive documentation alongside a reference to address known gotchas and sharp edges that users should be aware of when using the system.
Advertisement