Skip to content

jax gate: CI runs an unpinned jax that no local environment has #292

Description

@oshaughnessy-junior

Corrected. This issue opened claiming two local failures were caused by jax
version drift. Neither was. The version spread below is real and still worth
fixing; it explained neither failure. See the comments for the two corrections
and what the causes turned out to be.

The version spread

jax-ile-check installs jax and numpyro unpinned, deliberately, so the gate
sees what a user gets. At the #214 merge the runner resolved jax 0.10.2, and
no environment on the CIT home had it:

environment jax
CI jax-ile-check 0.10.2
~/.cache/jaxci_venv 0.9.2
CVMFS igwn 0.7.1
conda coag_gpu / gwkokab / junior_rift / my_claude 0.7.2 / 0.9.2 / 0.9.0 / 0.9.0
conda asimov 0.4.23

PyPI's latest was already 0.11.1, so an unpinned local build does not reproduce
CI either. To mirror a run you must pin to what that run resolved.

Partly addressed. PR #293 makes jax-ile-check upload its resolved stack as
an artifact, so re-pinning is mechanical. A CI-matched venv now exists at
/scratch/richard.oshaughnessy/envs/jaxci-py311, rebuilt or re-pinned by
build_jaxci.sh in the same directory.

The two failures, correctly attributed

Both were chased as version drift and neither was.

  1. test_laplace_high_amplitude_accuracy_and_trend fails on CIT on the branch
    and on pristine base, on both jax versions, with and without XLA_FLAGS.
    Its file is in the gate's EXCLUDED list, so CI never runs it and a green
    CI run says nothing about it. No green run of it exists on any machine. The
    assertion compares two values at the double-precision noise floor.
  2. The whole-suite abort is the 25 GiB per-user memory cgroup, shared across
    sessions. dmesg names the kill by PID. Seen as exit 134, 137 and 139; the
    signal varies, the cause does not. Chunking the roster fixes it.

Still open

  • Container image and a blocking lane that uses it.
  • Demote the unpinned lane to a non-blocking canary, after the container
    lane exists and not before, or the repo has no jax gate at all in between.
  • Run the EXCLUDED suite on a schedule. It had silently drifted out of sync
    with the driver it pins, and only a by-hand run during jax ile: persist and transfer compilation caches safely #214 caught it.
  • Decide what ~/.cache/jaxci_venv is now that a CI-matched venv exists.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions