--action_env variables are passed to every build action. This means that if the variable changes, the entire build cache is invalidated. By contrast, --repo_env variables are only passed to repository rules and don't affect every action. In principle this means that we should be able to rebuild JAX for different Python versions without rebuilding 99% of the C++ code.
Update bazel release for build script to 0.29.1 (same as TensorFlow.)
Previously we lied claimed our wheels were manylinux1 compliant but they weren't.
Uses a cross-compilation toolchain from the TF folks that builds manylinux2010 compliant wheels from a Ubuntu 16.04 VM.
The CUDA wheels still aren't manylinux2010 compliant because they depend on CUDA libraries from the system.
* LU decomposition
* Symmetric (Hermitian) eigendecomposition
* Singular value decomposition.
Make LU decomposition tests less sensitive to the exact decomposition; check that we have a decomposition, not precisely the same one scipy returns.
Move jaxlib version test into jax/lib/__init__.py. Make jax/lib mirror the structure of jaxlib; e.g., xla_client is now available as jax.lib.xla_client.
Switches XLA Python bindings to use pybind11.
Update XRT support to point to newer XRT client.
Update minimum bazel version to 0.24.0.
Fix missing backend argument to XLA Compile() calls.
Updates XLA to 00afc7bb81.
The new XLA release removes the use of protocol buffers from the XLA client. Fixes#349.
Add backward compatibility shims to jaxlib to allow older jax releases to still work on an up to date jaxlib.
The new XLA release also incorporates a fix that avoids a host-device copy for every iteration of a `lax.fori_loop()` on GPU. Fixes#402.
Add a new jaxlib.__version__ field, change jax/jaxlib compatibility logic to check for it.
* Use pyenv to build specific Python releases against which we build wheels. Otherwise we are limited to only those Python releases present in the OS repository, which only correspond to certain major versions of Python.
* Build with docker instead of nvidia-docker. We need a CUDA image to build JAX, but we don't require a GPU or nvidia-docker unless we want to actually run things.
* Various other cleanups.
Pin particular versions of Numpy and Scipy in the build script to fix Numpy extension version compatibility issue. If jaxlib is built against numpy 1.16 but used against an older version, we see an error "No module named 'numpy.core._multiarray_umath'". The fix is to build against numpy 1.15.