jax
by
jax-ml

Description: Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more

View on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on October 13th, 2024
Created on October 25th, 2018
Open Issues & Pull Requests: 2,502 (+0)
Number of forks: 3,675
Total Stargazers: 35,995 (+0)
Total Subscribers: 330 (+0)

Issue Activity (beta)

Open issues: 1,545
New in 7 days: 0
Closed in 7 days: 5
Avg open age: 847 days
Stale 30+ days: 1,488
Stale 90+ days: 1,403

Recent activity

Opened in 7 days: 0
Closed in 7 days: 3
Comments in 7 days: 4
Events in 7 days: 16

Top labels

  • bug (3,343)
  • enhancement (1,305)
  • question (342)
  • NVIDIA GPU (238)
  • documentation (197)
  • needs info (132)
  • P2 (eventual) (105)
  • contributions welcome (95)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 238.9 days
90th percentile: 1091.8 days
Tracked items: 2,767

Most active contributors

Detailed Description

JAX is a Python library for accelerator-oriented array computation and program transformation, designed for high-performance numerical computing and large-scale machine learning. The library enables composable transformations of Python and NumPy programs, allowing developers to differentiate, vectorize, and compile code to run on GPUs, TPUs, and other hardware accelerators. JAX uses XLA as its compilation backend to scale numerical programs across thousands of devices.

The core of JAX is an extensible system for transforming numerical functions. The jax.grad function provides automatic differentiation capabilities, supporting both reverse-mode differentiation (backpropagation) and forward-mode differentiation that can be composed arbitrarily to any order. Differentiation works through loops, branches, recursion, and closures, enabling derivatives of derivatives of derivatives. The jax.jit function compiles pure functions end-to-end using XLA, while jax.vmap provides auto-vectorization by mapping functions along array axes and pushing loops down onto primitive operations for better performance. These transformations can be composed together, allowing developers to obtain efficient Jacobian matrices or per-example gradients by combining vmap with grad and jit.

For scaling computations across multiple devices, JAX offers three approaches: compiler-based automatic parallelization where the compiler determines data sharding and computation partitioning, explicit sharding with automatic partitioning where data shardings are visible in JAX types, and manual per-device programming with explicit collectives for fine-grained control. The library supports multiple platforms including Linux x86_64, Linux aarch64, Mac aarch64, and Windows, with varying levels of support for CPU, NVIDIA GPU, Google TPU, AMD GPU, Apple GPU, and Intel GPU backends.

According to GitGenius activity tracking, the repository shows significant development momentum with 2767 tracked issues and pull requests. The median response latency for issues and PRs is 0.0 hours, indicating rapid community engagement. Bug reports represent the most active issue category with 1789 items, followed by enhancement requests with 633 items. The core maintainers include jakevdp with 2217 tracked events, hawkinsp with 779 events, and mattjj with 606 events. The repository is classified across multiple domains including machine learning, differentiable programming, numerical computing, automatic differentiation, and high-performance computing, reflecting its broad applicability across research and production machine learning workloads.

JAX is explicitly positioned as a research project rather than an official Google product, with documentation acknowledging sharp edges and encouraging community feedback through bug reports and feature discussions. The library provides comprehensive installation instructions for different hardware configurations and maintains detailed reference documentation covering both user-facing APIs and developer guidelines for contributing to the project.

jax
by
jax-mljax-ml/jax

Repository Details

Fetching additional details & charts...