8859 Commits

Author SHA1 Message Date
Yash Katariya
a683186570 Use the 11/09 libtpu build for jaxlib release since that passes all the tests.
PiperOrigin-RevId: 488543322
2022-11-14 20:37:41 -08:00
Parker Schuh
7635df84f0 Remove custom potrf kernels in favor of native XLA cholesky support.
PiperOrigin-RevId: 488525158
2022-11-14 18:45:25 -08:00
Yash Katariya
f36084acd3 Update the values for jaxlib release (again)
PiperOrigin-RevId: 488522992
2022-11-14 18:31:08 -08:00
Yash Katariya
0da02dd41c Update the values needed for a jaxlib release
PiperOrigin-RevId: 488508360
2022-11-14 17:08:59 -08:00
Yash Katariya
e6c4d4a30e Add docstrings for Sharding classes. Right now I am only documenting Sharding, XLACompatibleSharding, MeshPspecSharding and SingleDeviceSharding.
Also moving jax_array_migration guide to reference documentation.

PiperOrigin-RevId: 488489503
2022-11-14 15:47:46 -08:00
Yash Katariya
c42bad85ef Make MeshPspecSharding an alias for NamedSharding (it was the other way around before this CL).
PiperOrigin-RevId: 488473538
2022-11-14 14:44:00 -08:00
jax authors
d1e26d9c5d Merge pull request #13139 from mattjj:djax-vmap4
PiperOrigin-RevId: 488458141
2022-11-14 13:48:28 -08:00
John QiangZhang
7c6a65bee2 Add tf.get_current_name_scope() as prefix of name_stack during tf execution.
PiperOrigin-RevId: 488399560
2022-11-14 10:12:04 -08:00
jax authors
b086e73d36 Merge pull request #13189 from Ishticode:lcm_update
PiperOrigin-RevId: 488383042
2022-11-14 09:10:39 -08:00
Peter Hawkins
ce17ce0550 Mention in the pmap() documentation that all devices must be identical.
Fixes https://github.com/google/jax/issues/13203
2022-11-14 10:43:53 -05:00
Yash Katariya
7600cc8a8e Make jax.Array default to False for external colab.
PiperOrigin-RevId: 488360010
2022-11-14 07:28:00 -08:00
Peter Hawkins
40e81c3a86 Revert: Use pinv to compute lstsq.
The current implementation of lstsq is equivalent to pinv(A) @ b, with a different order of matrix multiplications. If we write it that way we benefit from a more stable derivative that does not require differentiating through the singular value decomposition.

This PR appears to have caused numerical problems in downstream tests.

PiperOrigin-RevId: 487942754
2022-11-11 16:24:05 -08:00
Sharad Vikram
e15619ceab Convert string axis name into tuple of strings in Mesh constructor
PiperOrigin-RevId: 487930412
2022-11-11 15:27:51 -08:00
Yash Katariya
6897d37562 Add docstrings for jax.Array APIs make_array_from_callback and make_array_from_single_device_arrays.
PiperOrigin-RevId: 487929688
2022-11-11 15:21:10 -08:00
Ishtiaq Hussain
09f62dec3c Moved abs to inputs of lcm and added specific test 2022-11-11 22:31:06 +00:00
Peter Hawkins
7c3fb81310 Use pinv to compute lstsq.
The current implementation of lstsq is equivalent to pinv(A) @ b, with a different order of matrix multiplications. If we write it that way we benefit from a more stable derivative that does not require differentiating through the singular value decomposition.

PiperOrigin-RevId: 487903227
2022-11-11 13:28:48 -08:00
Peter Hawkins
047974dd0c Be more economical when computing the JVP of the SVD of non-square matrices.
(Note this isn't a regression from #13147: the previous change did not alter the order of operations.)

PiperOrigin-RevId: 487896154
2022-11-11 12:55:53 -08:00
Peter Hawkins
c9ebf60f4e Compute the JVP of jnp.linalg.pinv more economically for non-square matrices.
The order of the matrix products matters.

PiperOrigin-RevId: 487879202
2022-11-11 11:45:02 -08:00
jax authors
995736119e Merge pull request #13198 from patrick-kidger:prng-isinstance
PiperOrigin-RevId: 487859092
2022-11-11 10:31:24 -08:00
jax authors
c359c7976b Merge pull request #13196 from jakevdp:simpler-sparsify
PiperOrigin-RevId: 487837115
2022-11-11 09:01:55 -08:00
Patrick Kidger
d2afa84a6e PRNGKeyArray is now a virtual subclass of ndarray 2022-11-11 08:04:38 -08:00
Felix Chern
10e6fe8cde Correct norm in ann.py doc.
PiperOrigin-RevId: 487814084
2022-11-11 07:08:54 -08:00
jax authors
ce85106578 Merge pull request #13193 from tlu7:bcsr-fromdense-batching
PiperOrigin-RevId: 487810600
2022-11-11 06:51:30 -08:00
Jake VanderPlas
ea25b79b87 [sparse] streamline sparse rules for standard primitives 2022-11-11 04:50:33 -08:00
Jake VanderPlas
90dc008340 [sparse] add bcoo_gather & support for sparse indexing 2022-11-11 04:25:14 -08:00
Tianjian Lu
332fced0cc sparse] BCSR batching rule.
[Co-authored-by: Jake Vanderplas: <vanderplas@google.com>
2022-11-10 19:33:32 -08:00
Parker Schuh
4a3b7f16ff Change pickling for jax.sharding to not serialize device ids.
PiperOrigin-RevId: 487700467
2022-11-10 19:05:02 -08:00
Tianjian Lu
311fb24ff9 [sparse] Add BCSR from_scipy_sparse.
Co-authored-by: Jake Vanderplas <vanderplas@google.com>
2022-11-10 16:44:59 -08:00
Peter Hawkins
352b042fe9 Add a GPU implementation of symmetric (Hermitian) tridiagonal reduction.
Change the contract of lax.linalg.tridiagonal to return the d and e vectors as well. Since we only just added this function and have never released JAX with it we can make this change without breaking compatibility.

Also fix wrong dtypes for d and e values in the CPU lapack sytrd wrapper.

PiperOrigin-RevId: 487621469
2022-11-10 13:16:21 -08:00
Sharad Vikram
74b136e62c Delete jax_experimental_name_stack flag
PiperOrigin-RevId: 487601864
2022-11-10 11:59:50 -08:00
jax authors
0ebb6b4215 Merge pull request #13180 from jakevdp:bcoo-slice
PiperOrigin-RevId: 487568853
2022-11-10 10:04:35 -08:00
Peter Hawkins
e42e52d4aa Rename test flag --num_generated_cases to --jax_num_generated_cases.
parse_flags_with_absl() only parses flags that start with --jax_. Other flags are only parsed when absl.app's main function runs. But that's too late for test cases: test cases need to have the number of generated cases chosen at module initialization time. Hence the --num_generated_cases flag wasn't doing anything. Oops. By renaming it it works once again.

It might make sense to stop using flags for the number of generated cases and only use environment variables. We defer that to a future change.

Fix many test cases that were shown to be broken with a larger number of test cases enabled.

PiperOrigin-RevId: 487406670
2022-11-09 18:58:05 -08:00
jax authors
b36afc5b0d Merge pull request #13177 from jakevdp:bcoo-dynamic-slice
PiperOrigin-RevId: 487390430
2022-11-09 17:29:30 -08:00
Sharad Vikram
3731e446c0 Set default layout for Python callback
PiperOrigin-RevId: 487388682
2022-11-09 17:18:49 -08:00
Yash Katariya
f9bbd585b9 Improve the error message when @pjit (with no {in_axis|out_axis}_resources is used without jax.Array enabled.
PiperOrigin-RevId: 487380328
2022-11-09 16:38:00 -08:00
Jake VanderPlas
4c4f2a3ad2 [sparse] support strides in bcoo_slice 2022-11-09 15:03:21 -08:00
John QiangZhang
b41c594a19 Internal change
PiperOrigin-RevId: 487351591
2022-11-09 14:41:39 -08:00
Jake VanderPlas
46d9cac122 [sparse] bcoo_dynamic_slice: remove unnecessary padding from output 2022-11-09 13:56:18 -08:00
Jake VanderPlas
0c3e330148 [sparse] fix shape bug in bcoo_transpose 2022-11-09 12:53:13 -08:00
jax authors
63e3152764 Merge pull request #13160 from jakevdp:bcoo-squeeze
PiperOrigin-RevId: 487280563
2022-11-09 10:18:22 -08:00
jax authors
f697b8e087 Merge pull request #13166 from LenaMartens:checking-keys
PiperOrigin-RevId: 487267267
2022-11-09 09:31:39 -08:00
lenamartens
053b8b5bcd Checkify: fix nan_checks+PRNGKeys - a PRNGKey is never NaN!
Add a guard to the nan_error_rule to not call jnp.isnan on keys.
2022-11-09 17:08:21 +00:00
Peter Hawkins
1cead779a3 Add support for Hessenberg and tridiagonal matrix reductions on CPU.
* Implement jax.scipy.linalg.hessenberg and jax.lax.linalg.hessenberg.
* Export what was previously jax._src.lax.linalg.orgqr as jax.lax.linalg.householder_product, since it can be used with some minor tweaks to compute the unitary matrix of a Hessenberg reduction.
* Implement jax.lax.linalg.tridiagonal, which is the symmetric (Hermitian) equivalent of Hessenberg reduction.

None of these primitives are differentiable at the moment.

PiperOrigin-RevId: 487224934
2022-11-09 06:23:55 -08:00
Tianjian Lu
3b1ddf2881 [linalg] Add jax.scipy.special.bessel_jn (Bessel function of the first kind).
PiperOrigin-RevId: 487146250
2022-11-08 23:03:21 -08:00
Eugene Burmako
55996328f2 Introduce XlaLowering::stablehlo() and use it in associated APIs
See tests/api_test.py for usage examples.

At the moment, stablehlo() works by using the hlo-legalize-to-stablehlo pass, which takes MHLO natively produced by JAX and converts it into StableHLO. This is an intermediate step towards switching JAX to natively produce StableHLO.

This CL adds both mhlo_to_stablehlo and stablehlo_to_mhlo to jaxlib, even though only the former is used at the moment. This is done in anticipation of switching JAX to natively produce StableHLO, where stablehlo_to_mhlo will be needed to provide backward compatibility for XlaLowering::mhlo(). We're adding stablehlo_to_mhlo now, so that in the future we don't have to update jaxlib again which will make deployment easier.

PiperOrigin-RevId: 487144342
2022-11-08 22:50:06 -08:00
jax authors
0cf220f397 Merge pull request #13162 from jakevdp:bcoo-reshape
PiperOrigin-RevId: 487106270
2022-11-08 18:37:45 -08:00
Jake VanderPlas
4255697610 [sparse] add bcoo_squeeze function 2022-11-08 18:16:20 -08:00
Yash Katariya
53344b885d Don't create copies by device_putting a host local jax.Array if the sharding matches with the input.
PiperOrigin-RevId: 487090094
2022-11-08 17:02:23 -08:00
Jake VanderPlas
7d3b1d6439 [sparse] fix bcoo_reshape under jit 2022-11-08 17:00:25 -08:00
Jake VanderPlas
8fbf8da810 Declare Array.sharding & raise an error on tracers 2022-11-08 14:20:46 -08:00