Generated on March 10 2026 12:51 PM
Old data? UPDATE !
The score is 41/100
Title
JAX: High performance array computing — JAX documentation
Length : 58
Perfect, your title contains between 10 and 70 characters.
Description
Length : 0
Very bad. We haven't found meta description on your page. Use this free online meta tags generator to create description.
Keywords
Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.
Og Meta Properties
This page does not take advantage of Og Properties. This tags allows social crawler's better structurize your page. Use this free og properties generator to create them.
Headings
| H1 | H2 | H3 | H4 | H5 | H6 |
| 2 | 3 | 0 | 0 | 0 | 0 |
Images
We found 4 images on this web page.
2 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.
Text/HTML Ratio
Ratio : 15%
Good, this page's ratio of text to HTML code is higher than 15, but lower than 25 percent.
Flash
Perfect, no Flash content has been detected on this page.
Iframe
Great, there are no Iframes detected on this page.
URL Rewrite
Good. Your links looks friendly!
Underscores in the URLs
We have detected underscores in your URLs. You should rather use hyphens to optimize your SEO.
In-page links
We found a total of 259 links including 0 link(s) to files
| Anchor | Type | Juice |
|---|---|---|
| Skip to main content | Internal | Passing Juice |
| Installation | Internal | Passing Juice |
| Quickstart: How to think in JAX | Internal | Passing Juice |
| 🔪 JAX - The Sharp Bits 🔪 | Internal | Passing Juice |
| JAX 101 | Internal | Passing Juice |
| Just-in-time compilation | Internal | Passing Juice |
| Automatic vectorization | Internal | Passing Juice |
| Automatic differentiation | Internal | Passing Juice |
| Pytrees | Internal | Passing Juice |
| Pseudorandom numbers | Internal | Passing Juice |
| Introduction to parallel programming | Internal | Passing Juice |
| Control flow and logical operators with JIT | Internal | Passing Juice |
| Tracing | Internal | Passing Juice |
| Stateful computations | Internal | Passing Juice |
| Key concepts | Internal | Passing Juice |
| Resources and Advanced Guides | Internal | Passing Juice |
| Distributed arrays and automatic parallelization | Internal | Passing Juice |
| Explicit sharding (a.k.a. “sharding in types”) | Internal | Passing Juice |
| Device-local array layout control | Internal | Passing Juice |
| JAX Memories and Host Offloading | Internal | Passing Juice |
| Introduction to multi-controller JAX (aka multi-process/multi-host JAX) | Internal | Passing Juice |
| Fault Tolerant Distributed JAX | Internal | Passing Juice |
| Distributed data loading | Internal | Passing Juice |
| Colocated Python | Internal | Passing Juice |
| The Training Cookbook | Internal | Passing Juice |
| The Autodiff Cookbook | Internal | Passing Juice |
| Advanced Automatic Differentiation | Internal | Passing Juice |
| Higher-order derivatives | Internal | Passing Juice |
| Forward- and reverse-mode autodiff in JAX | Internal | Passing Juice |
| Complex numbers and differentiation | Internal | Passing Juice |
| Custom derivative rules for JAX-transformable Python functions | Internal | Passing Juice |
| Errors | Internal | Passing Juice |
| Introduction to debugging | Internal | Passing Juice |
| Debugging runtime values | Internal | Passing Juice |
| JAX debugging flags | Internal | Passing Juice |
| Compiled prints and breakpoints | Internal | Passing Juice |
| Transfer guard | Internal | Passing Juice |
| Custom pytree nodes | Internal | Passing Juice |
| Persistent compilation cache | Internal | Passing Juice |
| Buffer donation | Internal | Passing Juice |
| GPU performance tips | Internal | Passing Juice |
| Benchmarking JAX code | Internal | Passing Juice |
| Profiling computation | Internal | Passing Juice |
| Profiling device memory | Internal | Passing Juice |
| External callbacks | Internal | Passing Juice |
| Foreign function interface (FFI) | Internal | Passing Juice |
| Ahead-of-time lowering and compilation | Internal | Passing Juice |
| Exporting and serialization | Internal | Passing Juice |
| Exporting and serializing staged-out computations | Internal | Passing Juice |
| Shape polymorphism | Internal | Passing Juice |
| Interoperation with TensorFlow | Internal | Passing Juice |
| Training a simple neural network, with tensorflow/datasets data loading | Internal | Passing Juice |
| Training a simple neural network, with PyTorch data loading | Internal | Passing Juice |
| Autobatching for Bayesian inference | Internal | Passing Juice |
| Generalized convolutions in JAX | Internal | Passing Juice |
| XLA compiler flags | Internal | Passing Juice |
| JAX Internals: primitives | Internal | Passing Juice |
| JAX internals: The jaxpr language | Internal | Passing Juice |
| API Reference | Internal | Passing Juice |
| jax.numpy.fft.fft | Internal | Passing Juice |
| jax.numpy.fft.fft2 | Internal | Passing Juice |
| jax.numpy.fft.fftfreq | Internal | Passing Juice |
| jax.numpy.fft.fftn | Internal | Passing Juice |
| jax.numpy.fft.fftshift | Internal | Passing Juice |
| jax.numpy.fft.hfft | Internal | Passing Juice |
| jax.numpy.fft.ifft | Internal | Passing Juice |
| jax.numpy.fft.ifft2 | Internal | Passing Juice |
| jax.numpy.fft.ifftn | Internal | Passing Juice |
| jax.numpy.fft.ifftshift | Internal | Passing Juice |
| jax.numpy.fft.ihfft | Internal | Passing Juice |
| jax.numpy.fft.irfft | Internal | Passing Juice |
| jax.numpy.fft.irfft2 | Internal | Passing Juice |
| jax.numpy.fft.irfftn | Internal | Passing Juice |
| jax.numpy.fft.rfft | Internal | Passing Juice |
| jax.numpy.fft.rfft2 | Internal | Passing Juice |
| jax.numpy.fft.rfftfreq | Internal | Passing Juice |
| jax.numpy.fft.rfftn | Internal | Passing Juice |
| jax.scipy.stats.bernoulli.logpmf | Internal | Passing Juice |
| jax.scipy.stats.bernoulli.pmf | Internal | Passing Juice |
| jax.scipy.stats.bernoulli.cdf | Internal | Passing Juice |
| jax.scipy.stats.bernoulli.ppf | Internal | Passing Juice |
| Pallas TPU (TensorCore) | Internal | Passing Juice |
| Pallas MGPU | Internal | Passing Juice |
| Triton | Internal | Passing Juice |
| jax.experimental.sparse.BCOO | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_broadcast_in_dim | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_concatenate | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_dot_general | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_dot_general_sampled | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_dynamic_slice | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_extract | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_fromdense | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_gather | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_multiply_dense | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_multiply_sparse | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_update_layout | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_reduce_sum | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_reshape | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_slice | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_sort_indices | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_squeeze | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_sum_duplicates | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_todense | Internal | Passing Juice |
| jax.experimental.sparse.bcoo_transpose | Internal | Passing Juice |
| jax.Array.addressable_shards | Internal | Passing Juice |
| jax.Array.all | Internal | Passing Juice |
| jax.Array.any | Internal | Passing Juice |
| jax.Array.argmax | Internal | Passing Juice |
| jax.Array.argmin | Internal | Passing Juice |
| jax.Array.argpartition | Internal | Passing Juice |
| jax.Array.argsort | Internal | Passing Juice |
| jax.Array.astype | Internal | Passing Juice |
| jax.Array.at | Internal | Passing Juice |
| jax.Array.choose | Internal | Passing Juice |
| jax.Array.clip | Internal | Passing Juice |
| jax.Array.compress | Internal | Passing Juice |
| jax.Array.committed | Internal | Passing Juice |
| jax.Array.conj | Internal | Passing Juice |
| jax.Array.conjugate | Internal | Passing Juice |
| jax.Array.copy | Internal | Passing Juice |
| jax.Array.copy_to_host_async | Internal | Passing Juice |
| jax.Array.cumprod | Internal | Passing Juice |
| jax.Array.cumsum | Internal | Passing Juice |
| jax.Array.device | Internal | Passing Juice |
| jax.Array.diagonal | Internal | Passing Juice |
| jax.Array.dot | Internal | Passing Juice |
| jax.Array.dtype | Internal | Passing Juice |
| jax.Array.flat | Internal | Passing Juice |
| jax.Array.flatten | Internal | Passing Juice |
| jax.Array.global_shards | Internal | Passing Juice |
| jax.Array.imag | Internal | Passing Juice |
| jax.Array.is_fully_addressable | Internal | Passing Juice |
| jax.Array.is_fully_replicated | Internal | Passing Juice |
| jax.Array.item | Internal | Passing Juice |
| jax.Array.itemsize | Internal | Passing Juice |
| jax.Array.max | Internal | Passing Juice |
| jax.Array.mean | Internal | Passing Juice |
| jax.Array.min | Internal | Passing Juice |
| jax.Array.nbytes | Internal | Passing Juice |
| jax.Array.ndim | Internal | Passing Juice |
| jax.Array.nonzero | Internal | Passing Juice |
| jax.Array.prod | Internal | Passing Juice |
| jax.Array.ptp | Internal | Passing Juice |
| jax.Array.ravel | Internal | Passing Juice |
| jax.Array.real | Internal | Passing Juice |
| jax.Array.repeat | Internal | Passing Juice |
| jax.Array.reshape | Internal | Passing Juice |
| jax.Array.round | Internal | Passing Juice |
| jax.Array.searchsorted | Internal | Passing Juice |
| jax.Array.shape | Internal | Passing Juice |
| jax.Array.sharding | Internal | Passing Juice |
| jax.Array.size | Internal | Passing Juice |
| jax.Array.sort | Internal | Passing Juice |
| jax.Array.squeeze | Internal | Passing Juice |
| jax.Array.std | Internal | Passing Juice |
| jax.Array.sum | Internal | Passing Juice |
| jax.Array.swapaxes | Internal | Passing Juice |
| jax.Array.take | Internal | Passing Juice |
| jax.Array.to_device | Internal | Passing Juice |
| jax.Array.trace | Internal | Passing Juice |
| jax.Array.transpose | Internal | Passing Juice |
| jax.Array.var | Internal | Passing Juice |
| jax.Array.view | Internal | Passing Juice |
| jax.Array.T | Internal | Passing Juice |
| jax.Array.mT | Internal | Passing Juice |
| Developer notes | Internal | Passing Juice |
| Contributing to JAX | Internal | Passing Juice |
| Building from source | Internal | Passing Juice |
| Investigating a regression | Internal | Passing Juice |
| Autodidax: JAX core from scratch | Internal | Passing Juice |
| Autodidax2, part 1: JAX from scratch, again | Internal | Passing Juice |
| JAX Enhancement Proposals (JEPs) | Internal | Passing Juice |
| 263: JAX PRNG Design | Internal | Passing Juice |
| 2026: Custom JVP/VJP rules for JAX-transformable functions | Internal | Passing Juice |
| 4008: Custom VJP and `nondiff_argnums` update | Internal | Passing Juice |
| 4410: Omnistaging | Internal | Passing Juice |
| 9263: Typed keys & pluggable RNGs | Internal | Passing Juice |
| 9407: Design of Type Promotion Semantics for JAX | Internal | Passing Juice |
| 9419: Jax and Jaxlib versioning | Internal | Passing Juice |
| 10657: Sequencing side-effects in JAX | Internal | Passing Juice |
| 11830: `jax.remat` / `jax.checkpoint` new implementation | Internal | Passing Juice |
| 12049: Type Annotation Roadmap for JAX | Internal | Passing Juice |
| 14273: `shard_map` (`shmap`) for simple per-device code | Internal | Passing Juice |
| 15856: `jax.extend`, an extensions module | Internal | Passing Juice |
| 17111: Efficient transposition of `shard_map` (and other maps) | Internal | Passing Juice |
| 18137: Scope of JAX NumPy & SciPy Wrappers | Internal | Passing Juice |
| 25516: Effort-based versioning | Internal | Passing Juice |
| 28661: Supporting the `__jax_array__` protocol | Internal | Passing Juice |
| 28845: Stateful Randomness in JAX | Internal | Passing Juice |
| JAX Internal Implementation Notes | Internal | Passing Juice |
| Handling of closed-over constants | Internal | Passing Juice |
| Extension guides | Internal | Passing Juice |
| Writing custom Jaxpr interpreters in JAX | Internal | Passing Juice |
| Building on JAX | Internal | Passing Juice |
| Notes | Internal | Passing Juice |
| API compatibility | Internal | Passing Juice |
| Python and NumPy version support policy | Internal | Passing Juice |
| Asynchronous dispatch | Internal | Passing Juice |
| Concurrency | Internal | Passing Juice |
| GPU memory allocation | Internal | Passing Juice |
| Rank promotion warning | Internal | Passing Juice |
| Type promotion semantics | Internal | Passing Juice |
| Default dtypes and the X64 flag | Internal | Passing Juice |
| Pallas: a JAX kernel language | Internal | Passing Juice |
| Pallas Quickstart | Internal | Passing Juice |
| Software Pipelining | Internal | Passing Juice |
| Grids and BlockSpecs | Internal | Passing Juice |
| Pallas TPU | Internal | Passing Juice |
| Writing TPU kernels with Pallas | Internal | Passing Juice |
| TPU Pipelining | Internal | Passing Juice |
| Matrix Multiplication | Internal | Passing Juice |
| Scalar Prefetch and Block-Sparse Computation | Internal | Passing Juice |
| Distributed Computing in Pallas for TPUs | Internal | Passing Juice |
| Pallas Core-specific Programming | Internal | Passing Juice |
| SparseCore Kernel Writing | Internal | Passing Juice |
| Pseudo-Random Number Generation | Internal | Passing Juice |
| Pallas:Mosaic GPU | Internal | Passing Juice |
| Writing Mosaic GPU kernels with Pallas | Internal | Passing Juice |
| Mosaic GPU Pipelining | Internal | Passing Juice |
| Writing high-performance matrix multiplication kernels for Blackwell | Internal | Passing Juice |
| Collective matrix multiplication | Internal | Passing Juice |
| Instruction Reference | Internal | Passing Juice |
| Pallas Design Notes | Internal | Passing Juice |
| Pallas Design | Internal | Passing Juice |
| Pallas Async Operations | Internal | Passing Juice |
| Pallas Changelog | Internal | Passing Juice |
| About the project | Internal | Passing Juice |
| Frequently asked questions (FAQ) | Internal | Passing Juice |
| Change log | Internal | Passing Juice |
| Glossary of terms | Internal | Passing Juice |
| Configuration Options | Internal | Passing Juice |
| Ecosystem | Internal | Passing Juice |
| # | Internal | Passing Juice |
| JAX AI Stack | External | Passing Juice |
| Flax | External | Passing Juice |
| Equinox | External | Passing Juice |
| Keras | External | Passing Juice |
| Optax | External | Passing Juice |
| Optimistix | External | Passing Juice |
| Lineax | External | Passing Juice |
| Diffrax | External | Passing Juice |
| Grain | External | Passing Juice |
| TensorFlow Datasets | External | Passing Juice |
| Hugging Face Datasets | External | Passing Juice |
| Orbax | External | Passing Juice |
| Chex | External | Passing Juice |
| Blackjax | External | Passing Juice |
| Numpyro | External | Passing Juice |
| PyMC | External | Passing Juice |
| TensorFlow Probability | External | Passing Juice |
| Distrax | External | Passing Juice |
| JAX MD | External | Passing Juice |
| Brax | External | Passing Juice |
| MaxText | External | Passing Juice |
| AXLearn | External | Passing Juice |
| Levanter | External | Passing Juice |
| EasyLM | External | Passing Juice |
| Marin | External | Passing Juice |
| Awesome JAX | External | Passing Juice |
Keywords Cloud
automatic module writing distributed custom jax control tpu gpu pallas
Keywords Consistency
| Keyword | Content | Title | Keywords | Description | Headings |
|---|---|---|---|---|---|
| module | 53 | ![]() |
![]() |
![]() |
![]() |
| jax | 31 | ![]() |
![]() |
![]() |
![]() |
| pallas | 15 | ![]() |
![]() |
![]() |
![]() |
| tpu | 5 | ![]() |
![]() |
![]() |
![]() |
| custom | 5 | ![]() |
![]() |
![]() |
![]() |
Url
Domain : jax.dev
Length : 7
Favicon
Great, your website has a favicon.
Printability
We could not find a Print-Friendly CSS.
Language
Good. Your declared language is en.
Dublin Core
This page does not take advantage of Dublin Core.
Doctype
HTML 5
Encoding
Perfect. Your declared charset is UTF-8.
W3C Validity
Errors : 0
Warnings : 0
Email Privacy
Great no email address has been found in plain text!
Deprecated HTML
Great! We haven't found deprecated HTML tags in your HTML.
Speed Tips
![]() |
Excellent, your website doesn't use nested tables. |
![]() |
Perfect. No inline css has been found in HTML tags! |
![]() |
Too bad, your website has too many CSS files (more than 4). |
![]() |
Too bad, your website has too many JS files (more than 6). |
![]() |
Too bad, your website does not take advantage of gzip. |
Mobile Optimization
![]() |
Apple Icon |
![]() |
Meta Viewport Tag |
![]() |
Flash content |
XML Sitemap
Great, your website has an XML sitemap.
| https://docs.jax.dev/sitemap.xml |
Robots.txt
https://jax.dev/robots.txt
Great, your website has a robots.txt file.
Analytics
Missing
We didn't detect an analytics tool installed on this website.
Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.
Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.