229 Commits

Author SHA1 Message Date
Peter Hawkins
dfda948fbf [XLA:Python] Fail with an AttributeError if __cuda_array_interface__ is called on a sharded array.
Fixes https://github.com/google/jax/issues/19134

PiperOrigin-RevId: 600570354
2024-01-22 14:25:47 -08:00
Peter Hawkins
25e4acfe25 Disabled lax_scipy_special_functions_test under ASAN on GPU.
This test is slow and times out in CI.

PiperOrigin-RevId: 600527658
2024-01-22 12:02:34 -08:00
Peter Hawkins
912a5ef771 Disable some tests that time out or OOM under ASAN.
PiperOrigin-RevId: 598543036
2024-01-15 01:40:44 -08:00
Peter Hawkins
2980e8f09c [JAX] Disable some CUDA tests that fail under ASAN, due to bugs in NCCL and Triton.
PiperOrigin-RevId: 597845384
2024-01-12 08:20:36 -08:00
Peter Hawkins
35fc2ed8e0 Disable ASAN for several CUDA tests.
PiperOrigin-RevId: 597596726
2024-01-11 10:43:38 -08:00
George Necula
ed2a839884 Move export backwards compatibility tests out of jax2tf. Step 3.
The last part of moving the tests: move jax2tf/tests/back_compat_test.py to tests/export_back_compat_test.py.

PiperOrigin-RevId: 596555577
2024-01-08 04:48:10 -08:00
Yash Katariya
72fbdb2eb5 Expose shard_alike via jax.experimental. The API is x, y = shard_like(x, y).
The guarantee provided by this API is that the sharding of `x` and `y` will be the same! What the sharding will be is decided by GSPMD.

The flow of sharding is bidirectional i.e. SPMD will choose what the sharding should be of `x` and `y` depending on it's propagation algorithm. It might end up being that the sharding chosen is not of `x` and `y` but something better. At the end of propagation `x` and `y` will be sharded alike.

The API can be made variadic in the future i.e. `*args = shard_alike(*args)` depending on use cases.

Fixes: https://github.com/google/jax/issues/15600
PiperOrigin-RevId: 592375936
2023-12-19 16:31:33 -08:00
Peter Hawkins
67d5c3bdea [JAX:GPU] Add a test that verifies that the XLA_PYTHON_CLIENT_PREALLOCATE environment variable is parsed correctly.
Fixes https://github.com/google/jax/issues/19035

PiperOrigin-RevId: 592322040
2023-12-19 13:06:08 -08:00
Parker Schuh
7ba8622719 For custom_partitioning, directly emit call when inside of a shard_map.
PiperOrigin-RevId: 592011427
2023-12-18 14:32:38 -08:00
jax authors
b225c86f10 Merge pull request #18262 from jakevdp:key-reuse-jaxpr
PiperOrigin-RevId: 589913404
2023-12-11 12:46:55 -08:00
Jake VanderPlas
a52d18781e Add experimental static key reuse checking 2023-12-11 12:03:48 -08:00
Yash Katariya
78e0e6b058 Internal change
PiperOrigin-RevId: 588856820
2023-12-07 11:30:54 -08:00
Peter Hawkins
5b97960d31 Disable sanitizer builds of shape_poly_test.
These take a very long time and sometimes timeout so it's probably not worth running them in CI.

PiperOrigin-RevId: 587768399
2023-12-04 10:42:56 -08:00
Peter Hawkins
1d95e79fd9 Disable export_harnesses_multi_platform_test under sanitizers.
This test appears to hit some sort of LLVM bug on Sapphire Rapids CPUs.

PiperOrigin-RevId: 587719850
2023-12-04 07:54:35 -08:00
Adam Paszke
ef65ba8f32 Internal change
PiperOrigin-RevId: 586312803
2023-11-29 05:47:50 -08:00
Adam Paszke
95f32b9bc2 Internal change
PiperOrigin-RevId: 585961348
2023-11-28 06:52:11 -08:00
Jake VanderPlas
0d073a4862 [array-api] add simple smoketest target for standard CI testing 2023-11-27 15:20:41 -08:00
George Necula
1ce90e6088 Turn off asan for shape_poly_test (times out)
PiperOrigin-RevId: 584807749
2023-11-22 23:41:37 -08:00
Peter Hawkins
fd9a1a2c36 Disable export_harnesses_test under asan.
This test times out in CI.

PiperOrigin-RevId: 584022342
2023-11-20 07:36:42 -08:00
George Necula
4fbf50dd60 [shape_poly] Copy many of the jax2tf/shape_poly_test to live outside of jax2tf.
Shape polymorphism is now usable independently of jax2tf, and it deserves to have its tests independent of jax2tf. I started by branching jax2tf/tests/shape_poly_test.py into tests/shape_poly_test.py, followed by removing from the latter the tests and helper functions that do not make sense outside of jax2tf.

For now we leave the existing tests in jax2tf, because some of those tests exercise
other code paths. In the process of adding these tests we found two bugs (fixed separately in https://github.com/google/jax/pull/18516 and https://github.com/google/jax/pull/18515).

Since we now run these tests in GitHub and Kokoro, this has revealed a couple
of bugs in the tests, which we fix here both in the jax2tf/tests/shape_poly_test.py and the copy tests/shape_poly_test.py.

PiperOrigin-RevId: 583816243
2023-11-19 09:00:04 -08:00
George Necula
3601b25899 Move multi_platform_export_test.py out of jax2tf.
This test is now independent of jax2tf. Move it out and rename it export_harnesses_multi_platform_test.py.

We disable the test in GitHub CI, because it is very large, pending
some changes to ensure it parallelizes well. The test is still
running in internal CI. This is matching the current behavior, since
jax2tf tests are only run internally.

PiperOrigin-RevId: 583603863
2023-11-18 02:52:44 -08:00
Yash Katariya
5c3da219c0 Add a private API to allow setting layouts on jitted computations.
We expose 3 modes:

* `SpecifiedLayout`: User specifies the `minor_to_major` field of the layout. Tiling not exposed yet.

* `DefaultLayout`: PJRT chooses the layout. It defaults to the current behavior.

* `AUTO`: Compiler chooses the layout. This field is not a layout per se. It's a request to get the layout from the compiler. This field cannot be on an Array or other data types. It can only be on jit.

Public API coming soon.

Co-authored-by: Roy Frostig <frostig@google.com>
PiperOrigin-RevId: 582692036
2023-11-15 08:48:53 -08:00
Sergei Lebedev
fd3a8b2cc6 Deprecated define_* and DEFINE_* methods on jax.config
These methods are internal to JAX. Yet, prior to this commit they were
effectively part of the public API, since users could (and some did!) invoke
them on `jax.config`.
2023-10-29 20:58:19 +00:00
Peter Hawkins
47a76df7cc [IFRT] Fix incorrect type numbers for e4m3 and e5m2 types.
These types didn't match between xla::PrimitiveType and ifrt::DType.

Add a static_assert to enforce equality.

PiperOrigin-RevId: 576288042
2023-10-24 14:38:00 -07:00
jax authors
d03bbc0d0f random_lax_test: Bump shards number for CPU config.
PiperOrigin-RevId: 574239793
2023-10-17 12:59:12 -07:00
Peter Hawkins
89b5449882 [XLA:GPU] Fix bug in all-to-all for complex data types.
The multiplier for complex data types wasn't being applied correctly; the chunk_bytes calculation double-applied the multiplier.

Fixes https://github.com/google/jax/issues/18122

PiperOrigin-RevId: 573955671
2023-10-16 16:02:22 -07:00
jax authors
8f911e1512 random_test: Split into two so that each target is small enough to fit within a medium timeout.
PiperOrigin-RevId: 571146766
2023-10-05 15:28:51 -07:00
jax authors
a2b70e3346 Bump shard_count for shard_map_test to fix timeouts.
PiperOrigin-RevId: 571109311
2023-10-05 13:18:10 -07:00
jax authors
1c37f5091c sparse_test: Split into two so that each target is small enough to fit within a medium timeout.
PiperOrigin-RevId: 570882867
2023-10-04 19:59:03 -07:00
jax authors
305efe0501 random_test: reduce num_generated_cases to avoid timeouts
PiperOrigin-RevId: 570781641
2023-10-04 13:04:44 -07:00
Tao Wang
c12929b012 Add more API set up for Mock GPU client. Also clean up previous mock GPU client
API.

PiperOrigin-RevId: 570153877
2023-10-02 13:11:29 -07:00
Yash Katariya
a32ed7e002 Bump shard_count for shard_map_test to fix the asan failures
PiperOrigin-RevId: 569520202
2023-09-29 10:02:38 -07:00
Matthew Johnson
a9dc3c1ea3 [shard_map] internal change to shard_map CI testing
PiperOrigin-RevId: 569036873
2023-09-27 20:06:24 -07:00
Hyeontaek Lim
f0bde75dd3 [JAX] Export shard_map_test for testing on additional JAX backends
PiperOrigin-RevId: 567522898
2023-09-21 22:52:36 -07:00
Sharad Vikram
afb6691885 Disable msan/tsan for xmap_tests thanks to timeouts
PiperOrigin-RevId: 567412260
2023-09-21 14:24:08 -07:00
Junwhan Ahn
6a551a1efa Add memories_test.py to the list of exported tests
PiperOrigin-RevId: 567375604
2023-09-21 11:57:09 -07:00
Peter Hawkins
f863cfbaad Relax some test tolerances to fix failures on Linux aarch64.
PiperOrigin-RevId: 565930178
2023-09-16 06:55:22 -07:00
Peter Hawkins
bbfba9ace8 Remove code that disabled tests on "stream_executor" backends.
These tests work on both GPU and the current (non-stream_executor) TPU runtime, so the conditions aren't needed any more.

Tag a couple of tests as "multiaccelerator" since they appear to benefit from multiple devices.

PiperOrigin-RevId: 565367453
2023-09-14 07:52:43 -07:00
Peter Hawkins
306c60d4c7 Remove references to deprecated "tpu_se" build configuration.
PiperOrigin-RevId: 565156675
2023-09-13 14:10:30 -07:00
Yash Katariya
76a5dc3cac Move memories_test.py to JAX
PiperOrigin-RevId: 564551723
2023-09-11 17:41:55 -07:00
George Necula
660a015652 [export] Move jax_export and shape_poly out of jax2tf.
Those modules have been developed initially for jax2tf
but they do not depend on TF anymore. They are used for JAX
native serialization. We move them under
jax.experimental.export (also renaming jax_export.py to export.py) so that we can use them without depending on TF.

We are leaving behind stub modules jax2tf.jax_export and jax2tf.shape_poly that just redirect some of the public APIs. To be cleaned later.

PiperOrigin-RevId: 562988740
2023-09-05 22:15:59 -07:00
George Necula
e0a6230214 [host_callback] Delete unused code paths.
This is part of deprecating host_callback and moving to io_callback.

PiperOrigin-RevId: 561851494
2023-08-31 22:08:23 -07:00
Roy Frostig
a71c0e6ecc create jax.extend.random as a copy of jax.prng
Co-authored-by: Jake Vanderplas <jakevdp@google.com>
PiperOrigin-RevId: 559874051
2023-08-24 14:41:56 -07:00
Richard Levasseur
f891cbf64b Load Python rules from rules_python
PiperOrigin-RevId: 559789250
2023-08-24 10:22:57 -07:00
George Necula
26f091e446 [callback] Disable stream_executor tests.
PiperOrigin-RevId: 559252832
2023-08-22 16:15:00 -07:00
Peter Hawkins
a259df0d76 Move compiler APIs out of dispatch.py and xla_bridge.py into a new jax._src.compiler module.
Refactoring only, no user-visible changes intended.

PiperOrigin-RevId: 557116160
2023-08-15 06:39:46 -07:00
Jake VanderPlas
ad8e719b82 Add jnp.ufunc and jnp.frompyfunc 2023-08-10 14:58:18 -07:00
Peter Hawkins
afd56c15d9 Move jax.jaxpr_util to jax._src.jaxpr_util, and split it into a separate build target.
Change jaxpr_util_test to be a py_test(), since there's no point testing it on every hardware configuration.

PiperOrigin-RevId: 554861284
2023-08-08 10:09:09 -07:00
Adam Paszke
0228bf7d3c Fix MSAN errors in cache_key_test
The device_assignment array was never initialized, causing MSAN errors.
Replacing it with np.arange fixes the issue.

PiperOrigin-RevId: 553469463
2023-08-03 07:28:32 -07:00
jax authors
9e7502ce60 Disable MSAN testing for cache-key unit tests.
This is an existing issue with the compilation cache tests.
The refactoring of the cache key generation part into a separate
file requires tagging the refactored tests also.

PiperOrigin-RevId: 551972670
2023-07-28 16:02:12 -07:00