diff --git a/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_step0_gpu_node_cpu_fp64 b/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_step0_gpu_node_cpu_fp64 new file mode 100644 index 000000000..c0a0b1c3a --- /dev/null +++ b/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_step0_gpu_node_cpu_fp64 @@ -0,0 +1,154 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 4b: the step-0 containment +# route A/B (PyAutoArray#579) on RAL CPU. +# +# WHAT THIS MEASURES. scripts/point_source_image/likelihood_breakdown/ +# solver_config_sweep.py --step0-route control,gather,components,structured: +# the production FitPositionsImagePairAllSolved likelihood at the production +# geometry (+-9.9" / 0.2 / 1e-3 / MCS 15) with autoarray's _STEP0_CONTAINMENT +# set per route for tracing only (fresh closure + jax.clear_caches() per route), +# interleaved 20 rounds x 20 calls, bootstrap 90 % CI, vmap 1/4/16, compile_s, +# XLA memory, the route-aware step-0 prefix split, the 200 prior + 200 stress +# completeness draws, and gates.step0_route_bit_identity (stream / fiducial / +# prior log L, prior + stress positions, image counts, grad, vmap bit-identical +# to the control). "control" is the branch's library default ("structured"); +# "gather" is the pre-#579 general path, i.e. the "before". +# +# LIBRARY. The branch is unpushed, so its PyAutoArray is a git clone of the +# shared mirror with the branch fetched from a bundle, checked out detached at +# the measured commit (AA_BRANCH_SRC below), prepended to PYTHONPATH. Every +# other library is the shared mirror (/mnt/ral/jnightin/PyAuto, via +# activate.sh); PyAutoLens is mirror main 4487eb47, unchanged by #579. The job +# refuses to run unless autoarray imports from the clone and the rest from the +# mirror, and asserts the JSON source_revisions afterwards. +# +# THREADS. OMP/MKL/OPENBLAS pinned to 1 (BLAS family only); the JAX CPU backend +# sizes its Eigen pool from the 8 CPUs of --cpus-per-task=8, as phases 1-4a. +# XLA_FLAGS are the phase-1 row's, byte for byte. +# +# NODE. FALLBACK for the 8490H submit (..._ral_cpu_fp64): on 2026-09-27 the `ral` +# partition was saturated (euclid_dr1 arrays; 10-4 had its memory fully +# allocated at load ~155), so this leg runs CPU-only on an idle node of the `gpu` +# partition (AMD EPYC 7702), with NO --gres: JAX_PLATFORMS=cpu and no GPU is +# visible. Pinned to euclid-ral-gpu-2 so it does not share a node with the A100 +# leg on gpu-1. Only in-job ratios compare with the 8490H rows of phase 4a. + +# WALL-BASIS: +# RAL job 357335 (this cell, same 4 routes, EPYC 7702 euclid-ral-gpu-2 CPU-only, +# 8 CPUs, 200 + 200 draws, 20 x 20) ran 417 s (7:14 job wall). +# cell: point_source_image/solver_config_sweep/simple device: cpu precision: fp64 +# source: measured-wall wall: 417 ref: ral-job-357335-point_source_image-solver_config_sweep headroom: 3.0 + +#SBATCH -J point_source_step0_p4b_epyc +#SBATCH --partition=gpu +#SBATCH --nodelist=euclid-ral-gpu-2 +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=8 +#SBATCH --mem=32gb +#SBATCH --time=1:30:00 +#SBATCH -o output/output.%A.out +#SBATCH -e error/error.%A.err +#SBATCH --mail-type=END,FAIL +#SBATCH --mail-user=james.w.nightingale@durham.ac.uk + +export AP_ROOT="$(cd "${SLURM_SUBMIT_DIR:-$(dirname "$0")}/../.." && pwd)" +echo "AP_ROOT=$AP_ROOT" +source $AP_ROOT/activate.sh + +export AA_BRANCH_SRC="${AA_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather}" +if [ ! -f "$AA_BRANCH_SRC/autoarray/__init__.py" ]; then + echo "FATAL: $AA_BRANCH_SRC is not a PyAutoArray checkout (see LIBRARY)" >&2 + exit 2 +fi +export PYTHONPATH="$AA_BRANCH_SRC:$PYTHONPATH" + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 +export OPENBLAS_NUM_THREADS=1 +export NPROC=${SLURM_CPUS_PER_TASK:-8} +export JAX_PLATFORMS=cpu +export JAX_ENABLE_X64=1 +export XLA_FLAGS="--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false" +export NUMBA_CACHE_DIR=$AP_ROOT/output/numba_cache_${SLURM_JOB_ID:-local} +mkdir -p "$NUMBA_CACHE_DIR" "$MPLCONFIGDIR" +# No persistent compile cache: compile_s is a gate and must be cold per route. +unset JAX_COMPILATION_CACHE_DIR + +CONFIG_NAME=hpc_ral_cpu_epyc7702_fp64 +RESULTS_DIR=$AP_ROOT/results/breakdown/point_source_image +mkdir -p "$RESULTS_DIR" + +echo "==========================================" +date +hostname +lscpu | grep 'Model name' || true +echo "partition: ${SLURM_JOB_PARTITION:-unset}" +echo "cpus-per-task: ${SLURM_CPUS_PER_TASK:-unset}" +echo "sched_affinity: $(python3 -c 'import os; print(len(os.sched_getaffinity(0)))')" +echo "loadavg: $(cat /proc/loadavg)" +echo "Cell: point_source_image/likelihood_breakdown/solver_config_sweep --step0-route" +echo "Thread env: OMP=$OMP_NUM_THREADS MKL=$MKL_NUM_THREADS OPENBLAS=$OPENBLAS_NUM_THREADS NPROC=$NPROC" +echo "XLA_FLAGS: $XLA_FLAGS" +echo "PYTHONPATH: $PYTHONPATH" + +echo "=== source revisions ===" +for r in PyAutoNerves PyAutoFit PyAutoArray PyAutoGalaxy PyAutoLens; do + printf '%-14s %s\n' "$r (mirror)" "$(git -C /mnt/ral/jnightin/PyAuto/$r rev-parse HEAD 2>&1)" +done +echo "PyAutoArray (branch clone, IMPORTED): $(git -C $AA_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" + +cd $AP_ROOT + +echo "=== import provenance ===" +python3 - <<'PYEOF' || exit 3 +import os +if os.environ.get("CUDA_VISIBLE_DEVICES") not in (None, "", "NoDevFiles"): + raise SystemExit(f"REFUSING: a GPU is visible ({os.environ['CUDA_VISIBLE_DEVICES']}) on the CPU leg") +import autoarray, autofit, autogalaxy, autolens, jax, jaxlib, numpy +aa = os.path.realpath(os.environ["AA_BRANCH_SRC"]) +for m in (autoarray, autofit, autogalaxy, autolens): + print(f"{m.__name__:<11} {m.__version__:<12} {m.__file__}") +if not os.path.realpath(autoarray.__file__).startswith(aa + "/"): + raise SystemExit(f"REFUSING: autoarray from {autoarray.__file__}, not {aa}") +for m in (autofit, autogalaxy, autolens): + if not m.__file__.startswith("/mnt/ral/jnightin/PyAuto/"): + raise SystemExit(f"REFUSING: {m.__name__} from {m.__file__}, not the shared mirror") +from autoarray.structures.triangles import array as a +print("_STEP0_CONTAINMENT", a._STEP0_CONTAINMENT) +print("jax", jax.__version__, "jaxlib", jaxlib.__version__, "numpy", numpy.__version__, jax.devices()) +PYEOF + +echo "==========================================" +echo "RUN ${CONFIG_NAME} -> ${RESULTS_DIR}" +date +echo "loadavg: $(cat /proc/loadavg)" +PYTHONUNBUFFERED=1 python3 scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py \ + --config-name "$CONFIG_NAME" --output-dir "$RESULTS_DIR" \ + --step0-route control,gather,components,structured \ + --n-draws 200 --n-stress 200 --rounds 20 --calls 20 + +echo "=== source_revisions check (JSON vs imported HEADs) ===" +python3 - "$RESULTS_DIR/solver_config_sweep_step0_${CONFIG_NAME}.json" <<'PYEOF' +import json, os, subprocess, sys +path = sys.argv[1] +d = json.load(open(path)) +revs = d["source_revisions"] +def head(p): + return subprocess.check_output(["git", "-C", p, "rev-parse", "HEAD"], text=True).strip() +want = {r: head(f"/mnt/ral/jnightin/PyAuto/{r}") for r in ("PyAutoNerves", "PyAutoFit", "PyAutoGalaxy", "PyAutoLens")} +want["PyAutoArray"] = head(os.environ["AA_BRANCH_SRC"]) +for r, h in want.items(): + if revs[r] != h: + raise SystemExit(f"MISMATCH {path}: {r} JSON {revs[r]} != {h}") +subprocess.check_call(["git", "-C", os.environ["AA_BRANCH_SRC"], "merge-base", "--is-ancestor", + "c13b2d733538bec86cff3a15eccd9a0940a68463", revs["PyAutoArray"]]) +print("autoarray_imported_from", d.get("autoarray_imported_from")) +print("OK", path, "all_gates_pass", d.get("all_gates_pass")) +PYEOF + +echo "==========================================" +echo "loadavg: $(cat /proc/loadavg)" +echo "Finished." +date diff --git a/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_step0_ral_cpu_fp64 b/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_step0_ral_cpu_fp64 new file mode 100644 index 000000000..607062247 --- /dev/null +++ b/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_step0_ral_cpu_fp64 @@ -0,0 +1,149 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 4b: the step-0 containment +# route A/B (PyAutoArray#579) on RAL CPU. +# +# WHAT THIS MEASURES. scripts/point_source_image/likelihood_breakdown/ +# solver_config_sweep.py --step0-route control,gather,components,structured: +# the production FitPositionsImagePairAllSolved likelihood at the production +# geometry (+-9.9" / 0.2 / 1e-3 / MCS 15) with autoarray's _STEP0_CONTAINMENT +# set per route for tracing only (fresh closure + jax.clear_caches() per route), +# interleaved 20 rounds x 20 calls, bootstrap 90 % CI, vmap 1/4/16, compile_s, +# XLA memory, the route-aware step-0 prefix split, the 200 prior + 200 stress +# completeness draws, and gates.step0_route_bit_identity (stream / fiducial / +# prior log L, prior + stress positions, image counts, grad, vmap bit-identical +# to the control). "control" is the branch's library default ("structured"); +# "gather" is the pre-#579 general path, i.e. the "before". +# +# LIBRARY. The branch is unpushed, so its PyAutoArray is a git clone of the +# shared mirror with the branch fetched from a bundle, checked out detached at +# the measured commit (AA_BRANCH_SRC below), prepended to PYTHONPATH. Every +# other library is the shared mirror (/mnt/ral/jnightin/PyAuto, via +# activate.sh); PyAutoLens is mirror main 4487eb47, unchanged by #579. The job +# refuses to run unless autoarray imports from the clone and the rest from the +# mirror, and asserts the JSON source_revisions afterwards. +# +# THREADS. OMP/MKL/OPENBLAS pinned to 1 (BLAS family only); the JAX CPU backend +# sizes its Eigen pool from the 8 CPUs of --cpus-per-task=8, as phases 1-4a. +# XLA_FLAGS are the phase-1 row's, byte for byte. +# +# NODE. Pinned to the Xeon Platinum 8490H node of phase 4a (euclid-ral-compute-10-4, +# jobs 356365 / 356367). Check `sinfo -p ral -N -o "%N %T %C"` first: `idle*` +# nodes are unreachable. + +# WALL-BASIS: +# RAL job 357321 (this cell, --step0-route control,gather,components,structured, +# 8490H euclid-ral-compute-10-4 under load ~200, 8 CPUs, 200 + 200 draws, 20 x 20) +# ran 480 s (8:08 job wall). Headroom 3 covers a quieter or busier node. +# cell: point_source_image/solver_config_sweep/simple device: cpu precision: fp64 +# source: measured-wall wall: 480 ref: ral-job-357321-point_source_image-solver_config_sweep headroom: 3.0 + +#SBATCH -J point_source_step0_p4b +#SBATCH --partition=ral +#SBATCH --nodelist=euclid-ral-compute-10-4 +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=8 +#SBATCH --mem=32gb +#SBATCH --time=1:30:00 +#SBATCH -o output/output.%A.out +#SBATCH -e error/error.%A.err +#SBATCH --mail-type=END,FAIL +#SBATCH --mail-user=james.w.nightingale@durham.ac.uk + +export AP_ROOT="$(cd "${SLURM_SUBMIT_DIR:-$(dirname "$0")}/../.." && pwd)" +echo "AP_ROOT=$AP_ROOT" +source $AP_ROOT/activate.sh + +export AA_BRANCH_SRC="${AA_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather}" +if [ ! -f "$AA_BRANCH_SRC/autoarray/__init__.py" ]; then + echo "FATAL: $AA_BRANCH_SRC is not a PyAutoArray checkout (see LIBRARY)" >&2 + exit 2 +fi +export PYTHONPATH="$AA_BRANCH_SRC:$PYTHONPATH" + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 +export OPENBLAS_NUM_THREADS=1 +export NPROC=${SLURM_CPUS_PER_TASK:-8} +export JAX_PLATFORMS=cpu +export JAX_ENABLE_X64=1 +export XLA_FLAGS="--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false" +export NUMBA_CACHE_DIR=$AP_ROOT/output/numba_cache_${SLURM_JOB_ID:-local} +mkdir -p "$NUMBA_CACHE_DIR" "$MPLCONFIGDIR" +# No persistent compile cache: compile_s is a gate and must be cold per route. +unset JAX_COMPILATION_CACHE_DIR + +CONFIG_NAME=hpc_ral_cpu_fp64 +RESULTS_DIR=$AP_ROOT/results/breakdown/point_source_image +mkdir -p "$RESULTS_DIR" + +echo "==========================================" +date +hostname +lscpu | grep 'Model name' || true +echo "partition: ${SLURM_JOB_PARTITION:-unset}" +echo "cpus-per-task: ${SLURM_CPUS_PER_TASK:-unset}" +echo "sched_affinity: $(python3 -c 'import os; print(len(os.sched_getaffinity(0)))')" +echo "loadavg: $(cat /proc/loadavg)" +echo "Cell: point_source_image/likelihood_breakdown/solver_config_sweep --step0-route" +echo "Thread env: OMP=$OMP_NUM_THREADS MKL=$MKL_NUM_THREADS OPENBLAS=$OPENBLAS_NUM_THREADS NPROC=$NPROC" +echo "XLA_FLAGS: $XLA_FLAGS" +echo "PYTHONPATH: $PYTHONPATH" + +echo "=== source revisions ===" +for r in PyAutoNerves PyAutoFit PyAutoArray PyAutoGalaxy PyAutoLens; do + printf '%-14s %s\n' "$r (mirror)" "$(git -C /mnt/ral/jnightin/PyAuto/$r rev-parse HEAD 2>&1)" +done +echo "PyAutoArray (branch clone, IMPORTED): $(git -C $AA_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" + +cd $AP_ROOT + +echo "=== import provenance ===" +python3 - <<'PYEOF' || exit 3 +import os, autoarray, autofit, autogalaxy, autolens, jax, jaxlib, numpy +aa = os.path.realpath(os.environ["AA_BRANCH_SRC"]) +for m in (autoarray, autofit, autogalaxy, autolens): + print(f"{m.__name__:<11} {m.__version__:<12} {m.__file__}") +if not os.path.realpath(autoarray.__file__).startswith(aa + "/"): + raise SystemExit(f"REFUSING: autoarray from {autoarray.__file__}, not {aa}") +for m in (autofit, autogalaxy, autolens): + if not m.__file__.startswith("/mnt/ral/jnightin/PyAuto/"): + raise SystemExit(f"REFUSING: {m.__name__} from {m.__file__}, not the shared mirror") +from autoarray.structures.triangles import array as a +print("_STEP0_CONTAINMENT", a._STEP0_CONTAINMENT) +print("jax", jax.__version__, "jaxlib", jaxlib.__version__, "numpy", numpy.__version__, jax.devices()) +PYEOF + +echo "==========================================" +echo "RUN ${CONFIG_NAME} -> ${RESULTS_DIR}" +date +echo "loadavg: $(cat /proc/loadavg)" +PYTHONUNBUFFERED=1 python3 scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py \ + --config-name "$CONFIG_NAME" --output-dir "$RESULTS_DIR" \ + --step0-route control,gather,components,structured \ + --n-draws 200 --n-stress 200 --rounds 20 --calls 20 + +echo "=== source_revisions check (JSON vs imported HEADs) ===" +python3 - "$RESULTS_DIR/solver_config_sweep_step0_${CONFIG_NAME}.json" <<'PYEOF' +import json, os, subprocess, sys +path = sys.argv[1] +d = json.load(open(path)) +revs = d["source_revisions"] +def head(p): + return subprocess.check_output(["git", "-C", p, "rev-parse", "HEAD"], text=True).strip() +want = {r: head(f"/mnt/ral/jnightin/PyAuto/{r}") for r in ("PyAutoNerves", "PyAutoFit", "PyAutoGalaxy", "PyAutoLens")} +want["PyAutoArray"] = head(os.environ["AA_BRANCH_SRC"]) +for r, h in want.items(): + if revs[r] != h: + raise SystemExit(f"MISMATCH {path}: {r} JSON {revs[r]} != {h}") +subprocess.check_call(["git", "-C", os.environ["AA_BRANCH_SRC"], "merge-base", "--is-ancestor", + "c13b2d733538bec86cff3a15eccd9a0940a68463", revs["PyAutoArray"]]) +print("autoarray_imported_from", d.get("autoarray_imported_from")) +print("OK", path, "all_gates_pass", d.get("all_gates_pass")) +PYEOF + +echo "==========================================" +echo "loadavg: $(cat /proc/loadavg)" +echo "Finished." +date diff --git a/hpc/batch_gpu/submit_breakdown_point_source_image_solver_config_sweep_step0_a100_fp64 b/hpc/batch_gpu/submit_breakdown_point_source_image_solver_config_sweep_step0_a100_fp64 new file mode 100644 index 000000000..0ba796fe7 --- /dev/null +++ b/hpc/batch_gpu/submit_breakdown_point_source_image_solver_config_sweep_step0_a100_fp64 @@ -0,0 +1,153 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 4b: the step-0 containment +# route A/B (PyAutoArray#579): the A100 no-regression leg. The A100 is +# launch-bound for this likelihood (phase 3), so ~1x is the expectation. +# +# WHAT THIS MEASURES. scripts/point_source_image/likelihood_breakdown/ +# solver_config_sweep.py --step0-route control,gather,components,structured: +# the production FitPositionsImagePairAllSolved likelihood at the production +# geometry (+-9.9" / 0.2 / 1e-3 / MCS 15) with autoarray's _STEP0_CONTAINMENT +# set per route for tracing only (fresh closure + jax.clear_caches() per route), +# interleaved 20 rounds x 20 calls, bootstrap 90 % CI, vmap 1/4/16, compile_s, +# XLA memory, the route-aware step-0 prefix split, the 200 prior + 200 stress +# completeness draws, and gates.step0_route_bit_identity (stream / fiducial / +# prior log L, prior + stress positions, image counts, grad, vmap bit-identical +# to the control). "control" is the branch's library default ("structured"); +# "gather" is the pre-#579 general path, i.e. the "before". +# +# LIBRARY. The branch is unpushed, so its PyAutoArray is a git clone of the +# shared mirror with the branch fetched from a bundle, checked out detached at +# the measured commit (AA_BRANCH_SRC below), prepended to PYTHONPATH. Every +# other library is the shared mirror (/mnt/ral/jnightin/PyAuto, via +# activate.sh); PyAutoLens is mirror main 4487eb47, unchanged by #579. The job +# refuses to run unless autoarray imports from the clone and the rest from the +# mirror, and asserts the JSON source_revisions afterwards. +# +# BACKEND. JAX_PLATFORMS=cuda (NOT "cuda,cpu": a list can silently fall back to +# CPU) and JAX_PLATFORM_NAME=cuda; the job asserts jax.default_backend()=="gpu". +# XLA_FLAGS are byte-identical to the CPU submit's. + +# WALL-BASIS: +# RAL job 357322 (this cell, same 4 routes, A100 80 GB euclid-ral-gpu-1, 200 + 200 +# draws, 20 x 20) ran 432 s (7:32 job wall); the A100 is launch-bound, so the +# completeness draws dominate. +# cell: point_source_image/solver_config_sweep/simple device: gpu precision: fp64 +# source: measured-wall wall: 432 ref: ral-job-357322-point_source_image-solver_config_sweep headroom: 3.0 + +#SBATCH -J point_source_step0_p4b_gpu +#SBATCH --partition=gpu +#SBATCH --gres=gpu:1 +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=8 +#SBATCH --mem=32gb +#SBATCH --time=3:00:00 +#SBATCH -o output/output.%A.out +#SBATCH -e error/error.%A.err +#SBATCH --mail-type=END,FAIL +#SBATCH --mail-user=james.w.nightingale@durham.ac.uk + +export AP_ROOT="$(cd "${SLURM_SUBMIT_DIR:-$(dirname "$0")}/../.." && pwd)" +echo "AP_ROOT=$AP_ROOT" +source $AP_ROOT/activate.sh + +export AA_BRANCH_SRC="${AA_BRANCH_SRC:-/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather}" +if [ ! -f "$AA_BRANCH_SRC/autoarray/__init__.py" ]; then + echo "FATAL: $AA_BRANCH_SRC is not a PyAutoArray checkout (see LIBRARY)" >&2 + exit 2 +fi +export PYTHONPATH="$AA_BRANCH_SRC:$PYTHONPATH" + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 +export OPENBLAS_NUM_THREADS=1 +export NPROC=${SLURM_CPUS_PER_TASK:-8} +export JAX_PLATFORM_NAME=cuda +export JAX_PLATFORMS=cuda +export XLA_PYTHON_CLIENT_PREALLOCATE=false +export JAX_ENABLE_X64=1 +export XLA_FLAGS="--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false" +export NUMBA_CACHE_DIR=$AP_ROOT/output/numba_cache_${SLURM_JOB_ID:-local} +mkdir -p "$NUMBA_CACHE_DIR" "$MPLCONFIGDIR" +# No persistent compile cache: compile_s is a gate and must be cold per route. +unset JAX_COMPILATION_CACHE_DIR + +CONFIG_NAME=hpc_ral_a100_fp64 +RESULTS_DIR=$AP_ROOT/results/breakdown/point_source_image +mkdir -p "$RESULTS_DIR" + +echo "==========================================" +date +hostname +lscpu | grep 'Model name' || true +nvidia-smi --query-gpu=name,driver_version,memory.total,utilization.gpu --format=csv || true +echo "gpus: ${CUDA_VISIBLE_DEVICES:-unset}" +echo "partition: ${SLURM_JOB_PARTITION:-unset}" +echo "cpus-per-task: ${SLURM_CPUS_PER_TASK:-unset}" +echo "sched_affinity: $(python3 -c 'import os; print(len(os.sched_getaffinity(0)))')" +echo "loadavg: $(cat /proc/loadavg)" +echo "Cell: point_source_image/likelihood_breakdown/solver_config_sweep --step0-route" +echo "Thread env: OMP=$OMP_NUM_THREADS MKL=$MKL_NUM_THREADS OPENBLAS=$OPENBLAS_NUM_THREADS NPROC=$NPROC" +echo "XLA_FLAGS: $XLA_FLAGS" +echo "PYTHONPATH: $PYTHONPATH" + +echo "=== source revisions ===" +for r in PyAutoNerves PyAutoFit PyAutoArray PyAutoGalaxy PyAutoLens; do + printf '%-14s %s\n' "$r (mirror)" "$(git -C /mnt/ral/jnightin/PyAuto/$r rev-parse HEAD 2>&1)" +done +echo "PyAutoArray (branch clone, IMPORTED): $(git -C $AA_BRANCH_SRC rev-parse HEAD 2>&1)" +echo "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" + +cd $AP_ROOT + +echo "=== import provenance ===" +python3 - <<'PYEOF' || exit 3 +import os, autoarray, autofit, autogalaxy, autolens, jax, jaxlib, numpy +aa = os.path.realpath(os.environ["AA_BRANCH_SRC"]) +for m in (autoarray, autofit, autogalaxy, autolens): + print(f"{m.__name__:<11} {m.__version__:<12} {m.__file__}") +if not os.path.realpath(autoarray.__file__).startswith(aa + "/"): + raise SystemExit(f"REFUSING: autoarray from {autoarray.__file__}, not {aa}") +for m in (autofit, autogalaxy, autolens): + if not m.__file__.startswith("/mnt/ral/jnightin/PyAuto/"): + raise SystemExit(f"REFUSING: {m.__name__} from {m.__file__}, not the shared mirror") +from autoarray.structures.triangles import array as a +print("_STEP0_CONTAINMENT", a._STEP0_CONTAINMENT) +print("jax", jax.__version__, "jaxlib", jaxlib.__version__, "numpy", numpy.__version__, jax.devices()) +if jax.default_backend() != "gpu": + raise SystemExit(f"REFUSING: JAX backend is {jax.default_backend()}, not gpu") +PYEOF + +echo "==========================================" +echo "RUN ${CONFIG_NAME} -> ${RESULTS_DIR}" +date +echo "loadavg: $(cat /proc/loadavg)" +PYTHONUNBUFFERED=1 python3 scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py \ + --config-name "$CONFIG_NAME" --output-dir "$RESULTS_DIR" \ + --step0-route control,gather,components,structured \ + --n-draws 200 --n-stress 200 --rounds 20 --calls 20 + +echo "=== source_revisions check (JSON vs imported HEADs) ===" +python3 - "$RESULTS_DIR/solver_config_sweep_step0_${CONFIG_NAME}.json" <<'PYEOF' +import json, os, subprocess, sys +path = sys.argv[1] +d = json.load(open(path)) +revs = d["source_revisions"] +def head(p): + return subprocess.check_output(["git", "-C", p, "rev-parse", "HEAD"], text=True).strip() +want = {r: head(f"/mnt/ral/jnightin/PyAuto/{r}") for r in ("PyAutoNerves", "PyAutoFit", "PyAutoGalaxy", "PyAutoLens")} +want["PyAutoArray"] = head(os.environ["AA_BRANCH_SRC"]) +for r, h in want.items(): + if revs[r] != h: + raise SystemExit(f"MISMATCH {path}: {r} JSON {revs[r]} != {h}") +subprocess.check_call(["git", "-C", os.environ["AA_BRANCH_SRC"], "merge-base", "--is-ancestor", + "c13b2d733538bec86cff3a15eccd9a0940a68463", revs["PyAutoArray"]]) +print("autoarray_imported_from", d.get("autoarray_imported_from")) +print("OK", path, "all_gates_pass", d.get("all_gates_pass")) +PYEOF + +echo "==========================================" +echo "loadavg: $(cat /proc/loadavg)" +nvidia-smi --query-gpu=name,memory.used --format=csv || true +echo "Finished." +date diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.json new file mode 100644 index 000000000..a85c3bbdc --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.json @@ -0,0 +1,4705 @@ +{ + "cell": "solver_config_sweep_step0", + "issue": "PyAutoLabs/PyAutoArray#579", + "phase": "4b", + "step0_routes": [ + "control", + "gather", + "components", + "structured" + ], + "library_step0_default": "structured", + "config_name": "hpc_ral_a100_fp64", + "quotable": true, + "host_note": "A100 no-regression leg, RAL job 357322, euclid-ral-gpu-1 (post-run label). gates.fiducial_bit_exact fails only because its expected value is the CPU one (...812): the A100 fiducial ...806 equals the phase-2/3 A100 rows (static_lattice_ab / vertex_dedup_ab hpc_ral_a100_fp64) bit for bit, and every route is bit-identical to the control (gates.step0_route_bit_identity).", + "quick": false, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "311e690fd6c843fe38e5a228628b4417890694f2", + "PyAutoNerves": "eb27da2464e2f07e0ad67e7fb18ee84be76c479a", + "PyAutoFit": "5468c6cefa0ae8bb08a449497cbd3c620f3720e2", + "PyAutoArray": "c13b2d733538bec86cff3a15eccd9a0940a68463", + "PyAutoGalaxy": "879a9308b709b3705eb95904de6b349a5c034d61", + "PyAutoLens": "def4decf68a245a9c3dd1eb276ee0578897b220c" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather", + "autolens_imported_from": "/mnt/ral/jnightin/PyAuto/PyAutoLens", + "device": { + "backend": "gpu", + "device": "cuda:0", + "hostname": "euclid-ral-gpu-1", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "1", + "cpu_count": 124, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false, + "nvidia_smi": "NVIDIA A100 80GB PCIe, 541 MiB, 81920 MiB" + }, + "jax_devices": [ + "cuda:0" + ], + "machine": { + "cpu_model": "AMD EPYC 7702 64-Core Processor", + "cpu_count_os": 124, + "nproc": 1, + "nproc_all": 124, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "928298200 kB", + "kernel": "5.14.0-687.50.1.el9_8.x86_64", + "platform": "Linux-5.14.0-687.50.1.el9_8.x86_64-x86_64-with-glibc2.34", + "python": "3.12.4", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": null, + "NUMEXPR_NUM_THREADS": null + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": "NVIDIA A100 80GB PCIe, 81920 MiB, 610.57.04" + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "sched_affinity": 8, + "os_cpu_count": 124, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cuda", + "jax_enable_x64": true, + "loadavg_start": [ + 0.28, + 0.07, + 0.02 + ], + "loadavg_end": [ + 0.98, + 0.9, + 0.47 + ], + "protocol": { + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "seed": 314, + "n_prior_draws": 200, + "n_stress_draws": 200, + "step0_rounds": 10, + "vmap_batches": [ + 1, + 4, + 16 + ], + "route_order": "round-robin over every config, start rotated each round", + "cache_trap_guard": "fresh closure + fresh solver/analysis per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "admissible": "100% distinct-multiplicity agreement with the reference on the prior draws AND max position error <= 0.002\"", + "admissible_position_tol": 0.002, + "position_noise_sigma": 0.05, + "distinct_tol": 0.005, + "prior_draws": "full prior: vector_from_unit_vector(U(1e-4, 1-1e-4)); source = solved beta*", + "stress_draws": "OUTSIDE the prior: Isothermal centre U(-0.05,0.05), theta_E U(1,2), ell_comps U(-0.2,0.2), source centre U(-0.4,0.4); plain FitPositionsImagePairAll positions", + "reference": { + "name": "reference", + "block": "reference", + "extent": 12.0, + "scale": 0.05, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "reference_b": { + "name": "reference_b", + "block": "reference", + "extent": 11.0, + "scale": 0.07, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "max_containing_size_patch": "ArrayTriangles.__init__ / for_limits_and_scale __defaults__ + module constant, tracing only, restored by value", + "pytrees": "autofit.jax.register_model(model) for both models before any trace" + }, + "configs": [ + { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + } + ], + "static": { + "control": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "step0_gather": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "step0_components": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "step0_structured": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "reference": { + "extent_half_width": [ + 12.0, + 12.0 + ], + "limits": [ + -12.0, + 12.0, + -12.0, + 12.0 + ], + "scale": 0.05, + "pixel_scale_precision": 0.0001, + "n_steps": 9, + "n_steps_formula": "ceil(log2(0.05 / 0.0001))", + "last_step_triangle_side": 0.0001953125, + "step0_triangles": 535277, + "step0_rows": 268677, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "reference_b": { + "extent_half_width": [ + 11.0, + 11.0 + ], + "limits": [ + -11.0, + 11.0, + -11.0, + 11.0 + ], + "scale": 0.07, + "pixel_scale_precision": 0.0001, + "n_steps": 10, + "n_steps_formula": "ceil(log2(0.07 / 0.0001))", + "last_step_triangle_side": 0.00013671875, + "step0_triangles": 229585, + "step0_rows": 115473, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + } + }, + "reference_floor": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0001578692142314068, + "p99_position_error": 0.0001280749711778143, + "median_position_error": 5.966895436149997e-05, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.09204751533957278, + "p99": 0.06845503627316349, + "median": 0.004628222675297167, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423129578, + "p99_position_error": 0.00014084184669768283, + "median_position_error": 5.966895436134919e-05, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "reference_max_finite_positions": { + "prior": 4, + "stress": 4 + }, + "reference_compile": { + "reference_prior": { + "lower_s": 8.763231606018962, + "compile_s": 9.803126472979784, + "first_call_s": 0.018836133007425815, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 51715080.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 8609360, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 12869616, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 418983936, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 1.7778689689876046, + "compile_s": 4.2338678399974015, + "first_call_s": 0.014639233006164432, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 51709944.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 8607056, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 12869232, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 26292224, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 6.440029517019866, + "compile_s": 10.535469993017614, + "first_call_s": 0.01871165499323979, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 23815908.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 3706200, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 5527648, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 77582336, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 1.4927302100113593, + "compile_s": 4.915731057000812, + "first_call_s": 0.014642644993728027, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 23810776.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 3704920, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 5527520, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4014080, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + } + }, + "default_vs_reference": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00085134744991033, + "p99_position_error": 0.0007893460711577928, + "median_position_error": 0.00040657539052049664, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609119508, + "median": 0.030920850414811074, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711581035, + "p99_position_error": 0.0007893460711577219, + "median_position_error": 0.0004065753905207064, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + }, + "agrees_on_every_prior_draw": true, + "agrees_on_every_stress_draw": true, + "stress_mismatch_examples": [] + }, + "admissibility": { + "control": true, + "step0_gather": true, + "step0_components": true, + "step0_structured": true + }, + "precision_equivalent": { + "control": true, + "step0_gather": true, + "step0_components": true, + "step0_structured": true + }, + "reference_image_extent": { + "prior": { + "max_abs_y": 1.77939453125, + "max_abs_x": 1.7773254429359935, + "max_abs_coord": 1.77939453125, + "p99_abs_coord": 1.759083091412917, + "max_radius": 1.8116226317743076 + }, + "stress": { + "max_abs_y": 2.2498046875, + "max_abs_x": 2.300267215077964, + "max_abs_coord": 2.300267215077964, + "p99_abs_coord": 2.2027852305644777, + "max_radius": 2.5191249773380773 + } + }, + "extent_working": "prior: theta_E <= 1.6 + 4*0.05 = 1.8; |e| <= 0.0526 + 4*0.01 ~ 0.09 -> q ~ 0.83; SIE images lie within ~theta_E/sqrt(q) + |beta| ~ 1.98 + 0.1 ~ 2.1 arcsec of the centre, so boxes of +-6 / +-4 / +-3 / +-2.5 bracket it; reference_image_extent is the measured value", + "best_admissible": "step0_gather", + "best_admissible_any_precision": "step0_gather", + "table": [ + { + "config": "control", + "block": "control", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 0.83765501040034, + "speedup": 1.0, + "speedup_ci90": [ + 0.9959325710740744, + 1.0039575889655354 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.00085134744991033, + "prior_p99_err": 0.0007893460711577928, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711581035, + "compile_s": 5.510965514025884, + "flops": 2787435.0, + "temp_bytes": 390472 + }, + { + "config": "step0_gather", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 0.8374445023946464, + "speedup": 1.0002513694998196, + "speedup_ci90": [ + 0.996329114275808, + 1.0041380217034832 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.00085134744991033, + "prior_p99_err": 0.0007893460711577928, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711581035, + "compile_s": 5.54681887399056, + "flops": 3066830.0, + "temp_bytes": 389704 + }, + { + "config": "step0_components", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 0.8385800028918311, + "speedup": 0.998896953792958, + "speedup_ci90": [ + 0.9957632747405274, + 1.0025965713954643 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.00085134744991033, + "prior_p99_err": 0.0007893460711577928, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711581035, + "compile_s": 5.648363950982457, + "flops": 2787434.0, + "temp_bytes": 389960 + }, + { + "config": "step0_structured", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 0.8381294901482761, + "speedup": 0.9994338825282807, + "speedup_ci90": [ + 0.9952739001170396, + 1.0029508460025336 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.00085134744991033, + "prior_p99_err": 0.0007893460711577928, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711581035, + "compile_s": 5.72994618001394, + "flops": 2787435.0, + "temp_bytes": 390472 + } + ], + "rows": { + "control": { + "config": { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 0.83765501040034, + "p10_ms": 0.8213600929593667, + "p90_ms": 0.9404880867805332, + "min_ms": 0.8096590172499418, + "max_ms": 1.5494510007556528, + "mean_ms": 0.8628866681829095 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.9959325710740744, + "ci90_high": 1.0039575889655354, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 2.6268497959827073, + "compile_s": 5.510965514025884, + "first_call_s": 0.01229522199719213, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2787435.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 390472, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4042752, + "max_containing_size_proof": null + }, + "warm_ms": [ + 12.176844000350684, + 1.0756269912235439, + 0.9216390026267618 + ], + "per_call_ms": [ + 1.0360869928263128, + 1.481501996750012, + 0.9500390151515603, + 0.9498079889453948, + 0.9404179872944951, + 0.9631590219214559, + 0.950128014665097, + 0.942237995332107, + 0.9619990014471114, + 0.9654579916968942, + 0.9428900084458292, + 0.9365890000481158, + 0.9601879864931107, + 0.9447690099477768, + 0.978858006419614, + 0.9374679939355701, + 0.941118982154876, + 0.9658979834057391, + 0.9494179976172745, + 0.9595690062269568, + 1.0221170086879283, + 0.8656489953864366, + 0.8608500065747648, + 0.8370889991056174, + 0.8961889834608883, + 0.8704790088813752, + 0.8592309895902872, + 0.8497599919792265, + 0.8356700127478689, + 0.8583800226915628, + 0.8527089958079159, + 0.8410500013269484, + 0.8497090020682663, + 0.8460509998258203, + 0.8442789840046316, + 0.8392689924221486, + 0.8346399990841746, + 1.0465170198585838, + 0.8592510130256414, + 0.8526699966751039, + 0.8779990021139383, + 0.8430999878328294, + 0.8617689891252667, + 0.8385200053453445, + 1.158255006885156, + 0.8638290164526552, + 1.156826998339966, + 0.8520900155417621, + 0.8430900052189827, + 0.8361389918718487, + 0.8525589946657419, + 0.8666400099173188, + 0.8477089868392795, + 0.8714800060261041, + 1.5410110063385218, + 0.8721990161575377, + 0.8466909930575639, + 0.9177490137517452, + 0.843518995679915, + 0.8587000193074346, + 0.8640190062578768, + 0.8777499897405505, + 0.8407789864577353, + 0.8584800234530121, + 0.8482290140818805, + 0.8343910158146173, + 0.8392400050070137, + 0.8333910082001239, + 0.8422590035479516, + 0.8566890028305352, + 0.8386909903492779, + 0.8684289932716638, + 0.8442699909210205, + 0.8337390027008951, + 0.910178991034627, + 0.8428090077359229, + 0.859778985613957, + 0.8604600152466446, + 0.8422090031672269, + 0.8479509851895273, + 0.8561399881727993, + 0.8604809991084039, + 0.8432190224993974, + 0.8519999973941594, + 0.8382590021938086, + 0.8358200138900429, + 0.8477189985569566, + 0.8417209901381284, + 0.8615400001872331, + 0.8596990082878619, + 0.8470299944747239, + 0.8451389730907977, + 0.8489209867548198, + 0.8476100047118962, + 0.8441300014965236, + 0.8438790100626647, + 0.8583989983890206, + 0.8357409969903529, + 0.8601990120951086, + 0.8499500108882785, + 1.140916021540761, + 0.8688299858476967, + 0.8574289968237281, + 0.8689200039952993, + 0.8626490016467869, + 0.8786700200289488, + 0.8828790159896016, + 0.85427999147214, + 0.8944699948187917, + 0.8539500122424215, + 0.8644709887448698, + 0.8400299993809313, + 0.836870982311666, + 0.8551790087949485, + 0.8507290040142834, + 0.836159975733608, + 0.8532700012437999, + 0.8282809867523611, + 0.8265500073321164, + 0.8299300097860396, + 0.8406609995290637, + 0.8176199917215854, + 0.8247299992945045, + 0.8203000179491937, + 0.8145099855028093, + 0.8216399874072522, + 0.8446600113529712, + 0.8315189916174859, + 0.8137800032272935, + 0.8178700227290392, + 0.8548189944121987, + 0.8186399936676025, + 0.8099999977275729, + 0.8139210112858564, + 0.824349990580231, + 0.8254800050053746, + 1.0827959922607988, + 0.815350009361282, + 0.8169010106939822, + 0.8393000171054155, + 0.8413699979428202, + 0.8356500184163451, + 0.8213699911721051, + 0.8382099913433194, + 0.8345200039912015, + 0.8115410164464265, + 0.8096590172499418, + 0.8249710081145167, + 0.8190000080503523, + 0.8123510051518679, + 0.8226489881053567, + 1.0658279934432358, + 0.8440709789283574, + 0.832240009913221, + 0.8123810112010688, + 0.8103789878077805, + 0.82835101056844, + 0.8201900054700673, + 0.8175510156434029, + 0.8383700042031705, + 0.8211500244215131, + 0.8271110127680004, + 0.8248189988080412, + 0.8336309983860701, + 0.8161199802998453, + 0.8361299987882376, + 0.8137400145642459, + 0.817849999293685, + 0.8154499810189009, + 0.8323710062541068, + 1.147975999629125, + 0.8183299796655774, + 0.8355210011359304, + 0.8163489983417094, + 0.8268509991466999, + 0.8278189925476909, + 0.8335699967574328, + 0.8358900086022913, + 0.8161900041159242, + 0.84863998927176, + 0.8733489958103746, + 0.826111005153507, + 0.8228399965446442, + 0.8343899971805513, + 0.8311099954880774, + 0.8256089931819588, + 0.8302810019813478, + 0.8276200096588582, + 0.8251899853348732, + 0.8257899899035692, + 0.8496200025547296, + 0.8433790062554181, + 0.8271299884654582, + 0.8372890006285161, + 0.835829006973654, + 0.827120995381847, + 0.8280399779323488, + 0.8282600028906018, + 0.8237099973484874, + 0.8380210201721638, + 0.8340310014318675, + 0.834630016470328, + 0.8305399969685823, + 0.8295600127894431, + 0.8478100062347949, + 0.846288981847465, + 0.8245799981523305, + 1.1495360231492668, + 1.3294130039867014, + 0.8367789851035923, + 0.8267810044344515, + 0.8273290004581213, + 0.8360299980267882, + 0.8256399887613952, + 1.0295980027876794, + 0.8280699839815497, + 0.8337390027008951, + 0.8533099899068475, + 0.8278699824586511, + 0.8283010101877153, + 0.8507989987265319, + 0.9269290021620691, + 0.823200010927394, + 0.8461799880024046, + 0.8340789936482906, + 0.832649995572865, + 0.8297199965454638, + 0.8275200088974088, + 0.8204510086216033, + 0.8280199836008251, + 0.844380003400147, + 0.8416390046477318, + 0.8206409984268248, + 0.8324099762830883, + 0.8365099783986807, + 0.8210010128095746, + 0.825029012048617, + 0.8330109994858503, + 0.9303079859819263, + 0.8434100018348545, + 0.8269099926110357, + 0.825850002001971, + 0.835451006423682, + 0.8452099864371121, + 0.842440000269562, + 0.8385609835386276, + 0.829850003356114, + 0.8288699900731444, + 0.8517690002918243, + 0.8557999972254038, + 0.8380600193049759, + 0.8581400034017861, + 0.9858280245680362, + 0.8967790054157376, + 0.834591017337516, + 0.844419002532959, + 0.885969988303259, + 0.8294699946418405, + 0.8744689985178411, + 0.8789999992586672, + 0.8611390076112002, + 0.8240499882958829, + 0.8360299980267882, + 0.8307590032927692, + 0.8213909750338644, + 0.8407100103795528, + 0.8468909945804626, + 0.8177300042007118, + 0.8288609969895333, + 0.8305300143547356, + 0.8225190103985369, + 0.8183890022337437, + 0.8270100224763155, + 0.8212710090447217, + 0.8317489991895854, + 0.8457600197289139, + 0.8407690038438886, + 1.0932470031548291, + 0.8461189863737673, + 0.836799998069182, + 0.823609996587038, + 0.8460299868602306, + 0.8462189871352166, + 0.8244110213126987, + 0.8233400003518909, + 0.8457509975414723, + 0.8236400026362389, + 0.8172700181603432, + 0.823159993160516, + 0.8281889895442873, + 0.8258410089183599, + 0.8264400239568204, + 0.8504310098942369, + 0.8206400088965893, + 0.8260099857579917, + 0.8607689815107733, + 1.17674600915052, + 0.8218010189011693, + 0.8467299921903759, + 0.8431110181845725, + 0.8332800061907619, + 0.8301499765366316, + 0.8252210100181401, + 0.8491490152664483, + 0.8454000053461641, + 0.8258399902842939, + 0.8533200016245246, + 0.8363999950233847, + 0.829770986456424, + 0.8228399965446442, + 0.833988975500688, + 0.827941024908796, + 0.8287800010293722, + 0.8478410018142313, + 0.8515289810020477, + 0.8299800101667643, + 0.8343989902641624, + 0.8283310162369162, + 0.922248000279069, + 0.8296690066345036, + 1.5494510007556528, + 0.8235900022555143, + 0.8277000160887837, + 0.8323790098074824, + 0.8246509823948145, + 1.002367993351072, + 0.8293400169350207, + 0.8343399967998266, + 0.9480190055910498, + 0.824540009489283, + 0.8292490092571825, + 0.826520990813151, + 0.8261589973699301, + 0.8464299899060279, + 0.8397689962293953, + 0.8215209818445146, + 0.8668890222907066, + 0.981779012363404, + 0.8318600011989474, + 0.8339890046045184, + 0.90827900567092, + 0.8810500148683786, + 0.8414989861194044, + 0.8288800017908216, + 0.8457599906250834, + 0.8461590041406453, + 0.8310409903060645, + 0.8351790020242333, + 0.8411500020883977, + 0.8228090009652078, + 0.8334910089615732, + 0.829399999929592, + 1.1732860002666712, + 0.8270999824162573, + 0.8338690095115453, + 0.842590001411736, + 0.8212490065488964, + 0.834960985230282, + 0.8248300000559539, + 0.8250499959103763, + 1.0061970097012818, + 0.8420599915552884, + 0.8247890218626708, + 0.8415899937972426, + 0.8273489947896451, + 0.8197310089599341, + 0.8167900086846203, + 0.8286800002679229, + 1.2161259946879, + 0.8308489923365414, + 0.8488410094287246, + 0.8238999871537089, + 0.8179510186892003, + 0.8303300128318369, + 0.8191889792215079, + 0.8216100104618818, + 0.8381600200664252, + 0.8402600069530308, + 0.8420099911745638, + 0.8336809987667948, + 0.8303399954456836, + 0.8237109868787229, + 0.8208490035030991, + 0.8344709931407124, + 0.8241600007750094, + 0.9677479974925518, + 0.8401109953410923, + 0.8303299837280065, + 0.8426810090895742, + 0.8448699954897165, + 0.8442509861197323, + 0.8517499954905361, + 0.823200010927394, + 0.8234900014940649, + 0.8238390146289021, + 0.8386510016862303, + 0.8409400179516524, + 0.8231400279328227, + 0.8274489955510944, + 0.826780975330621 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876806, + "stream_log_likelihood": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00085134744991033, + "p99_position_error": 0.0007893460711577928, + "median_position_error": 0.00040657539052049664, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609119508, + "median": 0.030920850414811074, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711581035, + "p99_position_error": 0.0007893460711577219, + "median_position_error": 0.0004065753905207064, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_gather": { + "config": { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "stats": { + "n": 400, + "median_ms": 0.8374445023946464, + "p10_ms": 0.8191139990231022, + "p90_ms": 0.903601897880435, + "min_ms": 0.809110002592206, + "max_ms": 1.6034409927669913, + "mean_ms": 0.8581692949519493 + }, + "speedup_vs_control": { + "ratio": 1.0002513694998196, + "ci90_low": 0.996329114275808, + "ci90_high": 1.0041380217034832, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0017047202584544, + "p10": 0.9953258013712701, + "p90": 1.0151202245709903 + }, + "compile": { + "lower_s": 2.5812834140087944, + "compile_s": 5.54681887399056, + "first_call_s": 0.012314492021687329, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3066830.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 262144, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.369630994508043, + 0.913469004444778, + 0.9067989885807037 + ], + "per_call_ms": [ + 1.6034409927669913, + 0.9203680092468858, + 0.9586680098436773, + 0.9600489865988493, + 0.9466590126976371, + 0.9344499849248677, + 0.9307099971920252, + 0.9478580032009631, + 0.9432189981453121, + 0.962718011578545, + 0.903378997463733, + 0.9261090017389506, + 0.9164990042336285, + 0.8996689866762608, + 0.9011999936774373, + 0.9149579855147749, + 0.8997390104923397, + 0.8980690035969019, + 0.8902999979909509, + 0.8930900075938553, + 0.9109590027946979, + 0.859480001963675, + 0.9816189995035529, + 0.8826389966998249, + 0.8664900087751448, + 0.8624790061730891, + 0.8687989902682602, + 0.8627100032754242, + 0.8872089965734631, + 0.869679992320016, + 0.8661889878567308, + 0.8631199889350682, + 0.8860389934852719, + 0.8596699917688966, + 0.8903899870347232, + 0.8680690079927444, + 0.8665499917697161, + 0.8908479940146208, + 0.8711400150787085, + 1.1020770180039108, + 0.934357987716794, + 0.8569510246161371, + 0.8445499988738447, + 0.8460899989586323, + 0.8365289831999689, + 0.8358790073543787, + 0.8528400212526321, + 0.8328190015163273, + 0.8438499935436994, + 0.8543490257579833, + 0.8351209980901331, + 0.842139997985214, + 1.0944779787678272, + 0.8354309829883277, + 0.8736089803278446, + 0.8439199882559478, + 0.8339399937540293, + 0.8410109730903059, + 0.8418700017500669, + 0.84374999278225, + 0.8572499791625887, + 0.8408200228586793, + 0.9415280073881149, + 0.8687690133228898, + 0.8524600125383586, + 0.8552900108043104, + 0.8456409850623459, + 0.8463189878966659, + 0.8407100103795528, + 0.8389389840885997, + 0.8618189895059913, + 0.8610200020484626, + 0.8474299975205213, + 0.8523300057277083, + 0.8409490110352635, + 0.8465699793305248, + 0.8431189926341176, + 0.8382890082430094, + 0.8605890034232289, + 0.8563890005461872, + 0.9186879906337708, + 0.8497599919792265, + 0.8630590164102614, + 0.8627990027889609, + 0.8390499860979617, + 1.2497150164563209, + 0.840240012621507, + 0.8606210176367313, + 0.8427299908362329, + 0.8432909962721169, + 0.857609004015103, + 0.8405910048168153, + 0.8452300098724663, + 0.8308210235554725, + 0.8601699955761433, + 0.8570690115448087, + 0.8410599839407951, + 0.8451190078631043, + 1.1260560131631792, + 0.8403800020460039, + 0.8710389956831932, + 0.8374699973501265, + 0.8339290216099471, + 0.8418709912803024, + 0.838890002341941, + 0.8543390140403062, + 0.8554210071451962, + 0.842929002828896, + 0.8416709897574037, + 0.8279700123239309, + 0.8437609940301627, + 0.8443389961030334, + 0.8413710165768862, + 0.8518389950040728, + 0.8346789982169867, + 0.8485500002279878, + 0.8668389928061515, + 0.84113102639094, + 0.8431690221186727, + 0.8385399996768683, + 1.0904569935519248, + 0.8151300135068595, + 1.0499979835003614, + 0.8208710059989244, + 1.205405016662553, + 0.812020996818319, + 0.8138499979395419, + 0.8360210049431771, + 0.8307899988722056, + 0.8154799870681018, + 0.8396499906666577, + 0.8276199805550277, + 0.8110610069707036, + 0.809110002592206, + 0.8394009782932699, + 0.8169400098267943, + 0.8098910038825125, + 0.8110589988064021, + 0.8349909912794828, + 0.8315499871969223, + 0.8220089948736131, + 0.8152799855452031, + 0.8580790017731488, + 0.8180209842976183, + 0.8111589995678514, + 0.8279109897557646, + 0.810900004580617, + 0.8493610075674951, + 0.8261400216724724, + 0.8285089861601591, + 0.8276299922727048, + 0.8306700037792325, + 0.8206909988075495, + 0.8164900064002723, + 0.8367300033569336, + 0.8247700170613825, + 0.8168600033968687, + 0.8360400097444654, + 0.8357810147572309, + 0.8149099885486066, + 0.8234090055339038, + 0.8171800000127405, + 0.8142900187522173, + 0.8201199816539884, + 0.8098000253085047, + 1.087326993001625, + 0.8128590125124902, + 0.8479889947921038, + 0.8240110182669014, + 0.8116499811876565, + 0.8414000039920211, + 0.8154200040735304, + 0.815870997030288, + 0.8136200194712728, + 0.8358310151379555, + 0.8374190074391663, + 0.8207499922718853, + 0.8156799885910004, + 0.8343099907506257, + 0.8225600176956505, + 1.468343019951135, + 0.8273590065073222, + 0.8357389888260514, + 0.8541599963791668, + 0.8203200122807175, + 0.8366309921257198, + 0.8329999982379377, + 0.8272900013253093, + 0.8455289935227484, + 0.8420110098086298, + 0.8246199868153781, + 0.82154999836348, + 0.8346799877472222, + 0.824949995148927, + 0.8224909834098071, + 0.8235790010076016, + 0.8430599991697818, + 0.8263800118584186, + 1.101948000723496, + 0.8547089819330722, + 0.8419689838774502, + 0.8301310008391738, + 0.8486599836032838, + 0.9335590002592653, + 0.8335390011779964, + 0.8532089996151626, + 0.8322299981955439, + 0.8398190257139504, + 0.8254900167230517, + 0.8225800120271742, + 0.8205900085158646, + 0.8442500256933272, + 0.8377310005016625, + 0.8218300063163042, + 0.8321489731315523, + 0.841878994833678, + 0.8181800076272339, + 0.821770983748138, + 0.8339689811691642, + 0.8227310026995838, + 0.8265390060842037, + 1.2914050021208823, + 0.8360109932255, + 0.8233000116888434, + 0.8554499945603311, + 0.8371090225409716, + 0.8267310040537268, + 0.8429699810221791, + 0.8339400228578597, + 0.8264100179076195, + 0.8207189966924489, + 0.8310510020237416, + 0.8236599969677627, + 0.8229099912568927, + 0.8504590077791363, + 0.842030014609918, + 0.8232799882534891, + 0.8309400000143796, + 0.8279999892693013, + 0.9056080016307533, + 0.8427290013059974, + 0.8206509810406715, + 0.8191899978555739, + 0.84165099542588, + 0.846290000481531, + 0.8228099904954433, + 0.8268000092357397, + 0.8484499994665384, + 0.8286400116048753, + 0.8225300116464496, + 0.8358400082215667, + 1.2481640151236206, + 0.830889999633655, + 0.839079002616927, + 0.8237400033976883, + 0.8538500114809722, + 0.8348890114575624, + 0.8244510099757463, + 0.8259289897978306, + 0.8465299906674773, + 0.8303810027427971, + 0.8450799796264619, + 1.1342259822413325, + 0.8251100080087781, + 0.826859992230311, + 0.8488610037602484, + 0.8440490055363625, + 0.82196100265719, + 0.8493789937347174, + 0.8290490077342838, + 0.819350010715425, + 0.8214600093197078, + 0.8396499906666577, + 0.8200790034607053, + 0.8209109946619719, + 0.8462689875159413, + 0.8379609789699316, + 0.8232500113081187, + 0.8513999928254634, + 0.8309199765790254, + 0.8720489859115332, + 0.8295710140373558, + 0.8195300179067999, + 0.8174499962478876, + 0.8276500157080591, + 0.8426189888268709, + 0.8195909904316068, + 0.8430099987890571, + 0.8407509885728359, + 0.8192189852707088, + 0.8199909934774041, + 0.8377800113521516, + 0.8283209754154086, + 0.81691998639144, + 0.8127799956128001, + 0.8565699972677976, + 0.8217889990191907, + 1.1492070043459535, + 0.8343599911313504, + 0.8387110137846321, + 0.8241210016421974, + 0.823008973384276, + 0.8504110155627131, + 0.8443290134891868, + 0.9957180009223521, + 0.8298300090245903, + 0.8254109998233616, + 0.8228289952967316, + 0.8284090145025402, + 0.8222010219469666, + 0.99200799013488, + 0.8246710058301687, + 0.8666689973324537, + 0.8323600050061941, + 0.8248800004366785, + 0.8309599943459034, + 0.8274310093838722, + 0.825029012048617, + 0.8441499958280474, + 0.840390013763681, + 0.8587999909650534, + 0.8469989988952875, + 0.8269600220955908, + 0.8390589791815728, + 1.1930270120501518, + 0.827080977614969, + 0.8438400109298527, + 0.8413000032305717, + 0.8243189950007945, + 0.8458999800495803, + 0.8363990054931492, + 0.8176009869202971, + 0.8234999841079116, + 0.8315600280184299, + 0.8260899921879172, + 0.8241499890573323, + 0.8554909727536142, + 0.8430799935013056, + 0.8224899938795716, + 0.8312989957630634, + 0.8337300096172839, + 0.8312510035466403, + 0.824688991997391, + 0.8195409900508821, + 0.824349990580231, + 0.8206299971789122, + 0.8289809920825064, + 0.846178998472169, + 0.8401800005231053, + 0.8248990052379668, + 0.841689994558692, + 0.8377990161534399, + 0.8216910064220428, + 0.8251090184785426, + 0.8173399837687612, + 0.8214399858843535, + 0.8452190086245537, + 1.0620479879435152, + 0.8403889951296151, + 0.820730987470597, + 0.849019008455798, + 0.8182000019587576, + 0.8199200092349201, + 0.8339300111401826, + 0.8280399779323488, + 0.8271989936474711, + 0.8200200099963695, + 0.8396789780817926, + 0.8368600101675838, + 0.8211200183723122, + 0.8244410273618996, + 0.9564580104779452, + 0.8167409978341311, + 0.8178399875760078, + 0.8318600011989474, + 0.8322599751409143, + 0.8216299756895751, + 0.8396699849981815, + 0.8429399749729782, + 0.81808099639602, + 0.8418599900323898, + 0.8274709980469197, + 0.8295690058730543, + 0.8202799945138395, + 0.8413699979428202, + 0.8431890164501965, + 0.8165510080289096, + 0.8167700143530965, + 0.8238509763032198, + 0.8419700025115162, + 0.8181700250133872, + 0.8275090076494962, + 0.8286309894174337, + 0.8182690071407706, + 0.8247499936260283, + 0.8184300095308572, + 0.9645380196161568, + 0.8281299960799515, + 0.8730789995752275, + 0.8339000050909817 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876806, + "stream_log_likelihood": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00085134744991033, + "p99_position_error": 0.0007893460711577928, + "median_position_error": 0.00040657539052049664, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609119508, + "median": 0.030920850414811074, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711581035, + "p99_position_error": 0.0007893460711577219, + "median_position_error": 0.0004065753905207064, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "config": { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "stats": { + "n": 400, + "median_ms": 0.8385800028918311, + "p10_ms": 0.8199548959964886, + "p90_ms": 0.8959699014667422, + "min_ms": 0.807090982561931, + "max_ms": 1.4753630093764514, + "mean_ms": 0.8566193807928357 + }, + "speedup_vs_control": { + "ratio": 0.998896953792958, + "ci90_low": 0.9957632747405274, + "ci90_high": 1.0025965713954643, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0028574255405651, + "p10": 0.9894803345222816, + "p90": 1.0186321177807776 + }, + "compile": { + "lower_s": 2.581703657982871, + "compile_s": 5.648363950982457, + "first_call_s": 0.013408889004494995, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2787434.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389960, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 847652, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7684096, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.550399018218741, + 0.9462489979341626, + 0.9139990143012255 + ], + "per_call_ms": [ + 1.4569019840564579, + 0.9035589755512774, + 0.9154999861493707, + 0.9076380229089409, + 0.8999900019261986, + 0.9004189923871309, + 0.9224090026691556, + 0.9220100182574242, + 0.9105780045501888, + 0.9380090050399303, + 0.8919299871195108, + 0.9025190083775669, + 0.9110590035561472, + 0.8969679765868932, + 0.8927590097300708, + 0.890490016900003, + 0.880889012478292, + 0.8676500001456589, + 0.8929289760999382, + 0.8734699804335833, + 0.9047490020748228, + 0.8789400162640959, + 0.8717890013940632, + 0.8596390252932906, + 0.8584499882999808, + 0.8866290154401213, + 0.8639009902253747, + 0.8874089980963618, + 0.8820700168143958, + 0.8628190262243152, + 0.8671489777043462, + 0.8812299929559231, + 0.8884889830369502, + 0.8612810051999986, + 0.8958590042311698, + 0.8562199946027249, + 0.8676290162838995, + 0.8566190081182867, + 0.8818499918561429, + 0.8599889988545328, + 0.8739999902900308, + 0.8386900008190423, + 1.060237002093345, + 0.8610410150140524, + 0.8389199792873114, + 0.8438399818260223, + 0.8428489963989705, + 0.8371290168724954, + 0.8571200014557689, + 0.8570099889766425, + 0.8325600065290928, + 0.8454790222458541, + 0.8476799994241446, + 0.8392700110562146, + 0.836828985484317, + 0.8282689959742129, + 0.8575890096835792, + 0.8492199995089322, + 0.8435400086455047, + 0.851589982630685, + 0.9295400232076645, + 0.8424799889326096, + 0.8338610059581697, + 0.8376799814868718, + 0.8401900122407824, + 0.86167998961173, + 0.8583400049246848, + 0.8475199865642935, + 0.8472090121358633, + 0.8387900015804917, + 0.8396290068048984, + 0.8373900200240314, + 0.834588980069384, + 0.8566690084990114, + 0.8579000132158399, + 0.8399499929510057, + 0.8423610124737024, + 0.830000004498288, + 0.8385810069739819, + 0.8373199962079525, + 0.8912289922591299, + 0.8357909973710775, + 0.9699880029074848, + 0.8608000061940402, + 0.841169006889686, + 0.8386390109080821, + 0.864218978676945, + 0.8416989876423031, + 0.8549499907530844, + 0.8545599994249642, + 0.839599990285933, + 0.8448389999102801, + 0.8424499828834087, + 0.8591889927629381, + 0.8589889912400395, + 0.843301007989794, + 0.8716490119695663, + 0.8325109956786036, + 0.8372399897780269, + 0.8381810039281845, + 0.8827289857435971, + 0.8501700067427009, + 0.8684300119057298, + 0.8474589849356562, + 0.8348110131919384, + 0.8408599824178964, + 0.838441017549485, + 0.8697590092197061, + 0.8418590005021542, + 0.8499010000377893, + 0.8653689874336123, + 0.8368100097868592, + 0.8440900128334761, + 0.8281700138468295, + 1.4498730015475303, + 1.4753630093764514, + 0.9223879897035658, + 0.9254079777747393, + 0.9315290080849081, + 0.9091789834201336, + 1.1555460223462433, + 0.8351290016435087, + 0.8516800007782876, + 0.8273089770227671, + 0.8639000006951392, + 0.8379200007766485, + 0.8274599967990071, + 0.8458000083919615, + 0.842369016027078, + 0.8257690060418099, + 0.8212999964598566, + 0.8483710116706789, + 0.8384990214835852, + 0.8217910071834922, + 0.8259899914264679, + 0.8300509944092482, + 0.8233300177380443, + 0.8210410014726222, + 0.8444790146313608, + 0.8659200102556497, + 0.8627389906905591, + 0.8182799792848527, + 0.8122400031425059, + 0.8078509999904782, + 0.8175300026778132, + 0.807090982561931, + 0.8109890040941536, + 0.8367210102733225, + 0.8627790084574372, + 0.8108300098683685, + 0.8531709900125861, + 0.8172300003934652, + 0.8177509880624712, + 0.8151099900715053, + 0.8098609978333116, + 0.8203999896068126, + 0.8163409947883338, + 0.8168299973476678, + 0.8715500007383525, + 0.8336989849340171, + 0.8120900020003319, + 0.8161500154528767, + 0.8189099899027497, + 0.8158110140357167, + 1.1102660209871829, + 0.8193799876607955, + 0.8623900066595525, + 0.8790989813860506, + 0.8444309933111072, + 0.8318600011989474, + 0.8762099896557629, + 0.8460800163447857, + 1.161205000244081, + 0.8395399781875312, + 0.829138996778056, + 0.8367810223717242, + 0.8284500217996538, + 0.8460899989586323, + 0.8229589730035514, + 0.8267300145234913, + 0.8333990117534995, + 0.8235410205088556, + 0.8287700184155256, + 0.8233910193666816, + 0.8187200000975281, + 0.8443699916824698, + 0.8461689867544919, + 0.8212699904106557, + 0.8331690041813999, + 0.8407790155615658, + 0.8290309924632311, + 0.8304599905386567, + 0.8309610129799694, + 0.824879010906443, + 0.8217909780796617, + 0.8445190032944083, + 0.8442100079264492, + 0.8275590080302209, + 0.8623489993624389, + 0.8398710051551461, + 0.8498689858242869, + 0.8239310118369758, + 0.8488399907946587, + 0.8281199843622744, + 0.8222600154113024, + 0.8217099821195006, + 0.8278210007119924, + 0.819908978883177, + 0.8188109786715358, + 0.8411089947912842, + 0.8392009767703712, + 0.8879390079528093, + 0.8313000143971294, + 0.8319600019603968, + 0.8192989917006344, + 0.826450006570667, + 0.8355600002687424, + 0.8235910208895802, + 0.8241890172939748, + 0.8468299929518253, + 0.8375300094485283, + 0.826450006570667, + 0.8454500057268888, + 0.8412690076511353, + 0.8211010135710239, + 0.8407600107602775, + 0.8226990175899118, + 0.8242710027843714, + 0.820169982034713, + 0.8300800109282136, + 0.8196400012820959, + 0.8239909948315471, + 0.8444490085821599, + 0.8405999979004264, + 0.8223500044550747, + 0.9716990171000361, + 0.8323609945364296, + 0.8759890042711049, + 0.8333000005222857, + 0.8456500072497874, + 0.8237999863922596, + 0.827599986223504, + 0.8436890202574432, + 0.823830021545291, + 0.8187200000975281, + 0.825588998850435, + 0.8297009917441756, + 0.8253400155808777, + 0.8291199919767678, + 0.9927279897965491, + 0.8251910039689392, + 0.86840899894014, + 1.235333998920396, + 0.8433109906036407, + 0.8446990104857832, + 0.8204510086216033, + 0.8385789988096803, + 0.8230200037360191, + 0.8148190099745989, + 0.8158900018315762, + 0.8212290122173727, + 0.979719014139846, + 0.82677899627015, + 0.8491000044159591, + 0.8386200061067939, + 0.8260809991043061, + 0.8383390086237341, + 0.8499489922542125, + 0.8247990044765174, + 0.8224390039686114, + 0.8180509903468192, + 0.8190000080503523, + 0.8372299780603498, + 0.8368789858650416, + 0.8189409854821861, + 0.8463690173812211, + 0.8277410233858973, + 0.8208290091715753, + 0.818150001578033, + 0.8252709812950343, + 0.8271300175692886, + 0.9524479974061251, + 0.8250009850598872, + 0.8609599899500608, + 0.8253499981947243, + 0.8210200176108629, + 0.8224190096370876, + 0.8223610057029873, + 0.8209299994632602, + 0.8388599962927401, + 0.8374290191568434, + 0.8242600015364587, + 0.8459289965685457, + 0.8305399969685823, + 0.8197890128940344, + 0.9929770021699369, + 0.8258809975814074, + 0.8363689994439483, + 0.8420209924224764, + 0.8192800160031766, + 0.8489910105708987, + 0.8311000128742307, + 1.0039589833468199, + 0.8213410037569702, + 0.8231890096794814, + 0.8425999840255827, + 0.8431190217379481, + 0.8282210037577897, + 0.8983879815787077, + 0.8211909735109657, + 0.8400089864153415, + 0.8282999915536493, + 0.8223410113714635, + 0.8216600108426064, + 0.8501409902237356, + 0.8424599946010858, + 0.8299110049847513, + 0.8515800000168383, + 0.8217809954658151, + 0.8195590053219348, + 1.2168560060672462, + 0.8225500059779733, + 1.051686005666852, + 0.8512600034009665, + 0.8216300047934055, + 0.8228210208471864, + 0.8274999854620546, + 0.8227200014516711, + 0.8232899999711663, + 0.8432589820586145, + 0.8438510121777654, + 0.8200999873224646, + 0.8165409963112324, + 1.0739870194811374, + 0.8414599869865924, + 0.824169983388856, + 0.8257700246758759, + 0.839410990010947, + 0.8418290235567838, + 0.8251600083895028, + 0.8335190068464726, + 0.8199599978979677, + 0.8224800112657249, + 0.8419689838774502, + 0.8377510239370167, + 0.825809984235093, + 0.849091011332348, + 0.8278799941763282, + 0.9620880009606481, + 0.8372000011149794, + 0.8198189898394048, + 0.8188310021068901, + 0.8415289921686053, + 0.8376000041607767, + 0.8201999880839139, + 0.8526899910066277, + 1.2061249872203916, + 0.8221600146498531, + 0.8421409875154495, + 0.8251800027210265, + 0.8478100062347949, + 0.8606589981354773, + 0.8277599990833551, + 0.8376990153919905, + 0.8535810047760606, + 0.8229890081565827, + 0.8503800199832767, + 0.8318200125358999, + 0.8236599969677627, + 0.8419700025115162, + 0.8834589971229434, + 0.8242600015364587, + 0.8306899981107563, + 0.8671499963384122, + 0.8237900037784129, + 0.8411010203417391, + 0.8396199846174568, + 0.8217789873015136, + 0.9943879849743098, + 0.8249399834312499, + 0.8441399841103703, + 0.8480210090056062, + 0.8205390186049044, + 0.8258699963334948, + 0.8377890044357628, + 0.8366389956790954, + 0.8161109872162342, + 0.8282299968414009, + 0.8250310202129185, + 0.8179490105248988, + 0.8222409815061837, + 0.8195590053219348, + 0.8265909855253994, + 0.8187000057660043, + 0.8211600070353597, + 0.822750007500872, + 0.8395490003749728, + 0.8429900044575334, + 0.8223599870689213, + 0.8335710153914988 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876806, + "stream_log_likelihood": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00085134744991033, + "p99_position_error": 0.0007893460711577928, + "median_position_error": 0.00040657539052049664, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609119508, + "median": 0.030920850414811074, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711581035, + "p99_position_error": 0.0007893460711577219, + "median_position_error": 0.0004065753905207064, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "config": { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "stats": { + "n": 400, + "median_ms": 0.8381294901482761, + "p10_ms": 0.8211640059016645, + "p90_ms": 0.8904601854737848, + "min_ms": 0.8089609909802675, + "max_ms": 1.5217220061458647, + "mean_ms": 0.8566515373240691 + }, + "speedup_vs_control": { + "ratio": 0.9994338825282807, + "ci90_low": 0.9952739001170396, + "ci90_high": 1.0029508460025336, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0009711334706575, + "p10": 0.9771974191721321, + "p90": 1.017323623641774 + }, + "compile": { + "lower_s": 2.6107569689920638, + "compile_s": 5.72994618001394, + "first_call_s": 0.013577006990090013, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2787435.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 390472, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4243456, + "max_containing_size_proof": null + }, + "warm_ms": [ + 0.9911080123856664, + 0.9894579998217523, + 0.8959000115282834 + ], + "per_call_ms": [ + 1.5217220061458647, + 0.9037489944603294, + 0.8741889905650169, + 0.8677900186739862, + 0.8903679845388979, + 0.8990390051621944, + 0.9002279839478433, + 0.8620299922768027, + 0.8696890145074576, + 0.8642789907753468, + 0.8866800053510815, + 0.8658090082462877, + 0.8738500182516873, + 0.8982390281744301, + 0.9212690056301653, + 0.857610022649169, + 0.8801690128166229, + 0.8708499954082072, + 0.8858289802446961, + 0.8630510128568858, + 0.8902889967430383, + 0.8604890026617795, + 0.8602500020060688, + 0.8800590003374964, + 0.8793489832896739, + 0.8873300103005022, + 0.8939190011005849, + 0.8974499942269176, + 0.8858189976308495, + 0.8562989823985845, + 0.8837489876896143, + 0.8833090250845999, + 0.8912899938877672, + 0.8712590206414461, + 0.8748199907131493, + 0.8650689851492643, + 0.8580400026403368, + 0.8859299996402115, + 0.8677500009071082, + 0.8837800123728812, + 1.3409139937721193, + 0.8361990039702505, + 0.8926699811127037, + 0.8366100082639605, + 0.836801016703248, + 0.8458390075247735, + 0.8334190060850233, + 0.8657999860588461, + 0.8584090101066977, + 0.8521010167896748, + 0.8456590003333986, + 0.8398699865210801, + 0.8398889913223684, + 0.8399899816140532, + 1.1387370177544653, + 0.8597690030001104, + 0.8491599874105304, + 0.8343599911313504, + 0.8804399985820055, + 0.8314199803862721, + 0.878719991305843, + 0.8471100009046495, + 0.8484800055157393, + 0.8423590043094009, + 0.8607609779573977, + 0.8362900116480887, + 0.8440499950665981, + 0.8637999999336898, + 0.8334289886988699, + 0.8511400083079934, + 0.8425999840255827, + 0.8455309725832194, + 0.8476889925077558, + 0.8380989893339574, + 0.8660689927637577, + 0.8574789972044528, + 0.8429510053247213, + 0.8620389853604138, + 0.8486110018566251, + 0.8533189829904586, + 1.2877350091002882, + 0.8416089985985309, + 0.8478800009470433, + 0.845919013954699, + 0.8625290065538138, + 0.8617099956609309, + 0.8371190051548183, + 0.8526600140612572, + 0.8372589945793152, + 0.8416399941779673, + 0.8413790201302618, + 0.83466901560314, + 0.8716390002518892, + 1.0429169924464077, + 0.8360200154129416, + 0.8581989968661219, + 0.8371309959329665, + 0.8381599909625947, + 0.8687690133228898, + 0.8483099809382111, + 1.2155959848314524, + 0.9081400057766587, + 0.8984680171124637, + 0.8941790147218853, + 0.9151980048045516, + 0.8881880203261971, + 0.9019600111059844, + 0.8886389841791242, + 0.8974800002761185, + 0.9260679944418371, + 0.9217290207743645, + 0.8778399787843227, + 0.8947290189098567, + 0.918739999178797, + 1.0679280094336718, + 0.8789289859123528, + 0.8617500134278089, + 0.8638289873488247, + 0.8588699856773019, + 0.8559999987483025, + 0.9252100135199726, + 0.8522190037183464, + 0.8249209786299616, + 0.8388400019612163, + 0.8487100130878389, + 0.8236400026362389, + 0.8432109898421913, + 0.8432089816778898, + 0.839490006910637, + 0.824951013782993, + 0.8471189939882606, + 0.8367600094061345, + 0.8187600178644061, + 0.8211710082832724, + 0.854468991747126, + 1.0052279976662248, + 0.8412589959334582, + 0.8228499791584909, + 0.8089609909802675, + 0.8383689855691046, + 0.8193799876607955, + 0.8353909943252802, + 0.8253190026152879, + 0.810230994829908, + 0.8110390044748783, + 0.8105209853965789, + 0.8163189922925085, + 0.8131309878081083, + 0.8145199972204864, + 0.8137509867083281, + 0.8397689962293953, + 0.8313299913424999, + 0.8172100060619414, + 0.8372900192625821, + 0.8351500146090984, + 0.8314290025737137, + 0.8139210112858564, + 0.8177999989129603, + 0.8103009895421565, + 0.818859989522025, + 0.8597109990660101, + 0.8326200186274946, + 0.8251809922512621, + 0.8347489929292351, + 0.8308010001201183, + 0.8287699893116951, + 0.8457209914922714, + 0.8441690006293356, + 0.8196790004149079, + 0.8379300124943256, + 0.8381689840462059, + 0.8242009789682925, + 0.8237800211645663, + 0.8284399809781462, + 0.8250499959103763, + 0.8259110036306083, + 0.847559014800936, + 0.8425400010310113, + 0.8250399841926992, + 0.8525490120518953, + 0.8479789830744267, + 0.8262099872808903, + 0.824238988570869, + 0.8472309855278581, + 0.845430011395365, + 0.8252600091509521, + 0.8386700064875185, + 0.8287189994007349, + 0.8253309933934361, + 0.8217499998863786, + 0.8265200012829155, + 0.8238700102083385, + 0.8213200198952109, + 0.8411399903707206, + 0.8893799968063831, + 0.826000003144145, + 0.8395689947064966, + 1.0940470092464238, + 0.825140014057979, + 0.8224709890782833, + 0.8270000107586384, + 0.8469299937132746, + 0.8317810134030879, + 0.8202400058507919, + 0.8285100047942251, + 0.8334490121342242, + 0.8246310171671212, + 0.8233999833464622, + 0.8461700053885579, + 1.078556990250945, + 0.8325900125782937, + 0.8398409991059452, + 0.8503190183546394, + 0.8264509961009026, + 0.8274790016002953, + 0.8491099870298058, + 0.8451189787592739, + 0.8269509999081492, + 0.8372089941985905, + 0.8380000072065741, + 0.8256889996118844, + 0.8615309779997915, + 0.8219699957408011, + 0.8295710140373558, + 0.8352200093213469, + 0.8265099895652384, + 0.8234810084104538, + 0.8319290063809603, + 0.8344610105268657, + 0.8248900121543556, + 0.8213400142267346, + 0.8454599883407354, + 0.8392799936700612, + 0.8202090102713555, + 0.8411190065089613, + 0.83466901560314, + 0.8329600095748901, + 0.8222309988923371, + 0.8274590072687715, + 0.8212410029955208, + 0.8444100094493479, + 0.8216099813580513, + 0.8216910064220428, + 0.8465390128549188, + 0.835151004139334, + 0.8220699965022504, + 0.8511600026395172, + 0.8371089934371412, + 0.8243700140155852, + 0.8257910085376352, + 1.2019849964417517, + 0.8314000151585788, + 0.8360999927390367, + 0.8195889822673053, + 0.8182399906218052, + 0.8238700102083385, + 0.8294699946418405, + 0.8184300095308572, + 0.8217499998863786, + 0.8435490017291158, + 0.8198490249924362, + 1.0514780005905777, + 0.8277500164695084, + 0.8309900003951043, + 0.8352390141226351, + 1.0082469962071627, + 0.8322810172103345, + 0.8255800057668239, + 0.8463309786748141, + 0.829249998787418, + 0.8179810247384012, + 0.8278399764094502, + 0.821740017272532, + 0.8187589992303401, + 0.8272299892269075, + 0.823120994027704, + 0.8226289937738329, + 0.8443599799647927, + 0.8424700063187629, + 0.9097100119106472, + 0.866350979777053, + 0.8210100058931857, + 0.8253600099124014, + 0.8229200029745698, + 1.1491859913803637, + 0.8228109800256789, + 0.884398992639035, + 0.8340500062331557, + 0.8174800022970885, + 0.8373900200240314, + 0.8305700030177832, + 0.8311099954880774, + 0.8208299987018108, + 0.9132890263572335, + 0.8211009844671935, + 0.8578000124543905, + 0.8267709927167743, + 0.8194200054276735, + 0.8456489886157215, + 0.8412199968006462, + 0.8234900014940649, + 0.8280500187538564, + 0.8221909811254591, + 0.821438996354118, + 0.8472100016660988, + 0.8448299777228385, + 0.8283010101877153, + 0.8687000081408769, + 0.8291910053230822, + 0.8187599887605757, + 0.8193299872800708, + 0.8525990124326199, + 0.8238799928221852, + 0.884169974597171, + 0.851630000397563, + 0.8436309872195125, + 0.8258999732788652, + 0.8332899888046086, + 0.8301000052597374, + 0.8201310120057315, + 0.8699590107426047, + 0.8317100000567734, + 0.8163499878719449, + 0.8258399902842939, + 0.8277700108010322, + 0.8220789895858616, + 0.8241009782068431, + 0.8413099858444184, + 0.8446900174021721, + 0.8224199991673231, + 0.8546999888494611, + 0.8317600004374981, + 0.8429410227108747, + 0.8286600059363991, + 0.8402899838984013, + 0.8248900121543556, + 0.8274500141851604, + 0.8472299959976226, + 0.8498289971612394, + 0.8359009807463735, + 0.8814400061964989, + 0.8224600169342011, + 0.822261004941538, + 0.8259700261987746, + 0.822939007775858, + 0.822670990601182, + 0.8430090092588216, + 0.8476199873257428, + 0.8250900136772543, + 0.8181610028259456, + 0.8280400070361793, + 0.8412099850829691, + 0.8215389971155673, + 0.8179310243576765, + 1.317014015512541, + 0.9891570080071688, + 0.8377199992537498, + 0.8352390141226351, + 0.9118880261667073, + 0.8476699877064675, + 0.8552699873689562, + 0.8373199962079525, + 0.8306209929287434, + 0.8286699885502458, + 0.8228789956774563, + 0.8186699997168034, + 0.8397790079470724, + 0.8426100248470902, + 0.8220899908337742, + 0.8503900025971234, + 0.8262589981313795, + 0.8312409918289632, + 0.8397089841309935, + 0.8294589933939278, + 0.8222400210797787, + 1.1507559975143522, + 0.8324909722432494, + 0.8266799850389361, + 0.8509299950674176, + 0.824349990580231, + 0.8349389827344567, + 0.8416210184805095, + 0.8229799859691411, + 0.8402109961025417, + 0.8368399867322296, + 0.8207299979403615, + 0.8192599925678223, + 0.8466890139970928, + 0.8367199916392565, + 0.8278789755422622, + 0.8462799887638539, + 0.8318399777635932, + 0.8278510067611933, + 0.8220290183089674, + 0.8497000089846551, + 0.8164099999703467, + 0.8260089962277561, + 0.853839999763295, + 0.8455689821857959, + 0.8206409984268248 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876806, + "stream_log_likelihood": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00085134744991033, + "p99_position_error": 0.0007893460711577928, + "median_position_error": 0.00040657539052049664, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609119508, + "median": 0.030920850414811074, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711581035, + "p99_position_error": 0.0007893460711577219, + "median_position_error": 0.0004065753905207064, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + } + }, + "vmap": { + "best": "step0_gather", + "routes": [ + "control", + "step0_gather", + "step0_components", + "step0_structured" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 0.8336004830198362, + "p10_ms": 0.8113289950415492, + "p90_ms": 0.9583760023815558, + "min_ms": 0.7996800122782588, + "max_ms": 1.5689920110162348, + "mean_ms": 0.8677728669863427 + }, + "median_ms_per_likelihood": 0.8336004830198362, + "compile": { + "lower_s": 3.534118679992389, + "compile_s": 6.123841880995315, + "first_call_s": 0.015827780007384717, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2785711.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 390216, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 12288, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap4": { + "config": "control", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 0.9222634980687872, + "p10_ms": 0.899898906936869, + "p90_ms": 1.0289020108757543, + "min_ms": 0.891309988219291, + "max_ms": 1.8543879850767553, + "mean_ms": 0.9520257918484276 + }, + "median_ms_per_likelihood": 0.2305658745171968, + "compile": { + "lower_s": 3.6502856320003048, + "compile_s": 6.16853548301151, + "first_call_s": 0.015554703015368432, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10540188.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1528136, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5783552, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap16": { + "config": "control", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 1.124436515965499, + "p10_ms": 1.102638989686966, + "p90_ms": 1.194823003606871, + "min_ms": 1.09016802161932, + "max_ms": 1.7639689904171973, + "mean_ms": 1.1547457618871704 + }, + "median_ms_per_likelihood": 0.07027728224784369, + "compile": { + "lower_s": 3.5472289780154824, + "compile_s": 6.479978011979256, + "first_call_s": 0.016334515006747097, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 42100100.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 6084936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 94208, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap1": { + "config": "step0_gather", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 0.8298010070575401, + "p10_ms": 0.8061839936999604, + "p90_ms": 0.8788271079538391, + "min_ms": 0.7891699788160622, + "max_ms": 1.4457940123975277, + "mean_ms": 0.8525084068241995 + }, + "median_ms_per_likelihood": 0.8298010070575401, + "compile": { + "lower_s": 3.4645191179879475, + "compile_s": 6.1214333820098545, + "first_call_s": 0.015254117985023186, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3065106.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 57344, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.0045787796471457, + "ci90_low": 1.0011201212303857, + "ci90_high": 1.0079889399136905, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap4": { + "config": "step0_gather", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 0.9133589774137363, + "p10_ms": 0.890255780541338, + "p90_ms": 0.9879971010377632, + "min_ms": 0.879510014783591, + "max_ms": 1.4964329893700778, + "mean_ms": 0.9443198823282728 + }, + "median_ms_per_likelihood": 0.22833974435343407, + "compile": { + "lower_s": 3.569131350988755, + "compile_s": 6.086117453989573, + "first_call_s": 0.015755732980323955, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10819583.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1528136, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4268032, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.0097492014369476, + "ci90_low": 1.007067394883651, + "ci90_high": 1.01319945664046, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap16": { + "config": "step0_gather", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 1.0986514971591532, + "p10_ms": 1.072304995614104, + "p90_ms": 1.1540229053935036, + "min_ms": 1.0601280082482845, + "max_ms": 1.6151310119312257, + "mean_ms": 1.1226303457806353 + }, + "median_ms_per_likelihood": 0.06866571857244708, + "compile": { + "lower_s": 3.475108950980939, + "compile_s": 6.429651493002893, + "first_call_s": 0.01625527601572685, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 42379492.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 6084936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5533696, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.023469697964295, + "ci90_low": 1.0200106499257122, + "ci90_high": 1.0283196965585484, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap1": { + "config": "step0_components", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 0.8306700037792325, + "p10_ms": 0.8075150137301534, + "p90_ms": 0.8915641083149239, + "min_ms": 0.7975199841894209, + "max_ms": 1.4586829929612577, + "mean_ms": 0.8559700075420551 + }, + "median_ms_per_likelihood": 0.8306700037792325, + "compile": { + "lower_s": 3.4610606679925695, + "compile_s": 6.079748970019864, + "first_call_s": 0.015412937005748972, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2785710.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 847652, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 16961536, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.003527850081586, + "ci90_low": 1.0001906883279912, + "ci90_high": 1.0068348298883827, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap4": { + "config": "step0_components", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 0.9160945046460256, + "p10_ms": 0.8923058921936899, + "p90_ms": 0.965451990487054, + "min_ms": 0.8838490175548941, + "max_ms": 1.3916229945607483, + "mean_ms": 0.9394609701848822 + }, + "median_ms_per_likelihood": 0.2290236261615064, + "compile": { + "lower_s": 3.5582027710042894, + "compile_s": 6.144133021996822, + "first_call_s": 0.016104367998195812, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10540187.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1528648, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 847652, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 20766720, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.006734014221759, + "ci90_low": 1.0037835766691527, + "ci90_high": 1.0100836384406002, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap16": { + "config": "step0_components", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 1.091177502530627, + "p10_ms": 1.0699820006266236, + "p90_ms": 1.1659178882837298, + "min_ms": 1.0605580173432827, + "max_ms": 1.7549500043969601, + "mean_ms": 1.123378486809088 + }, + "median_ms_per_likelihood": 0.06819859390816418, + "compile": { + "lower_s": 3.484036854992155, + "compile_s": 6.309605831978843, + "first_call_s": 0.016645872994558886, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 42100100.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 6085448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 847652, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 35733504, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.0304799295785871, + "ci90_low": 1.027709439281646, + "ci90_high": 1.034789270963167, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap1": { + "config": "step0_structured", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 0.8377755002584308, + "p10_ms": 0.813393120188266, + "p90_ms": 0.8837282250169665, + "min_ms": 0.8032910118345171, + "max_ms": 1.7126599850598723, + "mean_ms": 0.8641045467084041 + }, + "median_ms_per_likelihood": 0.8377755002584308, + "compile": { + "lower_s": 3.533376956009306, + "compile_s": 6.26782644999912, + "first_call_s": 0.015070449997438118, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2785711.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 390216, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 48377856, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9950165441251186, + "ci90_low": 0.9918015001553566, + "ci90_high": 0.9979441278851563, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap4": { + "config": "step0_structured", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 0.9235235047526658, + "p10_ms": 0.9013379894895479, + "p90_ms": 0.9982599935028702, + "min_ms": 0.8893790072761476, + "max_ms": 1.4616929984185845, + "mean_ms": 0.9565310547623085 + }, + "median_ms_per_likelihood": 0.23088087618816644, + "compile": { + "lower_s": 3.6353171129885595, + "compile_s": 6.200072256004205, + "first_call_s": 0.017819117987528443, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10540188.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1528136, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 23318528, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9986356528259495, + "ci90_low": 0.9956359467729642, + "ci90_high": 1.0026098578839509, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap16": { + "config": "step0_structured", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 1.128961012000218, + "p10_ms": 1.1052449903218076, + "p90_ms": 1.2018649140372875, + "min_ms": 1.0960969957523048, + "max_ms": 1.7728589882608503, + "mean_ms": 1.1621802497393219 + }, + "median_ms_per_likelihood": 0.07056006325001363, + "compile": { + "lower_s": 3.544565604010131, + "compile_s": 6.466160877986113, + "first_call_s": 0.01842924000811763, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 42100100.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 6084936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37470208, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252, + 7.051561357429162, + 9.219327498422556, + 0.8907045816755392, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966778, + 0.7025906917399034, + 7.669569297550706, + -0.46390116505282464, + -5.412376751794209, + 5.343244353415997, + -20.481275097418546 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9959923363281582, + "ci90_low": 0.993009605119989, + "ci90_high": 0.9994402289979405, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + } + } + }, + "step0_split": { + "control": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.16328298079315573, + "ray_trace": 0.14671350072603673, + "general_gather": 0.14574799570254982, + "route_inputs": 0.22475700825452805, + "containment": 0.23401748330798 + }, + "ray_trace_ms": -0.016569480067119002, + "containment_ms": 0.08730398258194327, + "route_input_materialisation_ms": 0.07804350752849132, + "general_gather_reference_ms": -0.0009655050234869123, + "step0_route": "library default (structured)", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.07073450251482427, + "containment_share_of_step0": 1.2342489093444382, + "step0_share_of_likelihood": 0.08444347808654326, + "containment_share_of_likelihood": 0.10422427072956697 + }, + "step0_gather": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.16242348647210747, + "ray_trace": 0.14666799688711762, + "general_gather": 0.14600348367821425, + "route_inputs": 0.16110300202853978, + "containment": 0.23141250130720437 + }, + "ray_trace_ms": -0.015755489584989846, + "containment_ms": 0.08474450442008674, + "route_input_materialisation_ms": 0.014435005141422153, + "general_gather_reference_ms": -0.0006645132089033723, + "step0_route": "gather", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.0689890148350969, + "containment_share_of_step0": 1.2283767875603078, + "step0_share_of_likelihood": 0.08238040208972053, + "containment_share_of_likelihood": 0.10119417367689737 + }, + "step0_components": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.1630180049687624, + "ray_trace": 0.14600850408896804, + "general_gather": 0.14685351925436407, + "route_inputs": 0.1609479950275272, + "containment": 0.22890752006787807 + }, + "ray_trace_ms": -0.01700950087979436, + "containment_ms": 0.08289901597891003, + "route_input_materialisation_ms": 0.014939490938559175, + "general_gather_reference_ms": 0.0008450151653960347, + "step0_route": "components", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.06588951509911567, + "containment_share_of_step0": 1.2581518600373287, + "step0_share_of_likelihood": 0.07857272397612228, + "containment_share_of_likelihood": 0.09885641881875785 + }, + "step0_structured": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.16088849224615842, + "ray_trace": 0.14582800213247538, + "general_gather": 0.14478800585493445, + "route_inputs": 0.2240129979327321, + "containment": 0.23568750475533307 + }, + "ray_trace_ms": -0.015060490113683045, + "containment_ms": 0.08985950262285769, + "route_input_materialisation_ms": 0.07818499580025673, + "general_gather_reference_ms": -0.0010399962775409222, + "step0_route": "structured", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.07479901250917464, + "containment_share_of_step0": 1.2013461088384791, + "step0_share_of_likelihood": 0.08924517438939145, + "containment_share_of_likelihood": 0.10721434298530692 + } + }, + "uncapped_containing_counts": { + "control": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "step0_gather": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + } + }, + "gates": { + "fiducial_bit_exact": { + "value": 7.743201200876806, + "expected": 7.743201200876812, + "repr": "7.743201200876806", + "pass": false + }, + "max_containing_size_patch": { + "control": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_gather": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_components": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_structured": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "grad": { + "control": { + "compile_s": 16.52882811400923, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + 249.25847095707593, + 214.72130119062194, + 374.3919459816108, + 813.0025446225928, + 3314.449436325227 + ], + [ + -30.046183166260203, + 41.85589438433415, + 53.129153081302505, + -17.18919451496857, + 1304.4185837665627 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_gather": { + "compile_s": 15.902298842003802, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + 249.25847095707593, + 214.72130119062194, + 374.3919459816108, + 813.0025446225928, + 3314.449436325227 + ], + [ + -30.046183166260203, + 41.85589438433415, + 53.129153081302505, + -17.18919451496857, + 1304.4185837665627 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_components": { + "compile_s": 16.629773179010954, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + 249.25847095707593, + 214.72130119062194, + 374.3919459816108, + 813.0025446225928, + 3314.449436325227 + ], + [ + -30.046183166260203, + 41.85589438433415, + 53.129153081302505, + -17.18919451496857, + 1304.4185837665627 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_structured": { + "compile_s": 16.732731691008667, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304409438, + 53.13429595961162, + 31.78649237786796, + 2.8041319222743963, + 1781.7386158499723 + ], + [ + 249.25847095707593, + 214.72130119062194, + 374.3919459816108, + 813.0025446225928, + 3314.449436325227 + ], + [ + -30.046183166260203, + 41.85589438433415, + 53.129153081302505, + -17.18919451496857, + 1304.4185837665627 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + } + }, + "step0_route_bit_identity": { + "step0_gather": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + } + } + }, + "all_gates_pass": false, + "completeness_compile": { + "control_prior": { + "lower_s": 3.8373180710186716, + "compile_s": 6.4766654259874485, + "first_call_s": 0.013670084998011589, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2787435.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 390472, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4263936, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.0753604119818192, + "compile_s": 3.6217841939942446, + "first_call_s": 0.010213997011305764, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2785566.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 388936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 567872, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2203648, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_prior": { + "lower_s": 3.7094068009755574, + "compile_s": 6.3733586779853795, + "first_call_s": 0.012994163989787921, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3066830.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 389704, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1127048, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 6168576, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_stress": { + "lower_s": 1.0549887570086867, + "compile_s": 3.5271897230122704, + "first_call_s": 0.010571781982434914, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3064961.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 388168, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 1126664, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2576384, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_prior": { + "lower_s": 3.7382403440133203, + "compile_s": 6.351212826004485, + "first_call_s": 0.013302220002515242, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2787434.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 389960, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 847652, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3911680, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_stress": { + "lower_s": 1.0642562459979672, + "compile_s": 3.56419834800181, + "first_call_s": 0.010113538010045886, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2785565.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 388424, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 847524, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1921024, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_prior": { + "lower_s": 3.664924925978994, + "compile_s": 6.375978806987405, + "first_call_s": 0.013340648991288617, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2787435.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 390472, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2744320, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_stress": { + "lower_s": 1.162414644000819, + "compile_s": 3.7145927469828166, + "first_call_s": 0.010224707017187029, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2785566.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 388936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 567872, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1343488, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + } + }, + "progress": [ + "[ 5.7 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 32.1 s] reference reference solved on 200 prior + 200 stress draws (compile 4.2 s)", + "[ 56.7 s] reference reference_b solved on 200 prior + 200 stress draws (compile 4.9 s)", + "[ 56.7 s] reference floor: {\"prior\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.0001578692142314068, \"p99_position_error\": 0.0001280749711778143, \"median_position_error\": 5.966895436149997e-05, \"ref_distinct_histogram\": {\"2\": 21, \"4\": 179}, \"abs_delta_logl_vs_reference\": {\"max\": 0.09204751533957278, \"p99\": 0.06845503627316349, \"median\": 0.004628222675297167, \"n_nonfinite_mismatch\": 0}}, \"stress\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423129578, \"p99_position_error\": 0.00014084184669768283, \"median_position_error\": 5.966895436134919e-05, \"ref_distinct_histogram\": {\"2\": 163, \"4\": 37}}}", + "[ 119.8 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035", + "[ 119.9 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035", + "[ 119.9 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035", + "[ 119.9 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035", + "[ 119.9 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359935, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.759083091412917, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}}", + "[ 119.9 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 155.0 s] timing: 20 rounds x 20 calls x 4 routes done", + "[ 155.7 s] fiducial gate: 7.743201200876806 == 7.743201200876812: False", + "[ 240.1 s] grad gate: control=True, step0_gather=True, step0_components=True, step0_structured=True", + "[ 240.1 s] best admissible (precision-equivalent): step0_gather; any precision: step0_gather", + "[ 366.8 s] vmap: control_vmap1 0.834 ms/L, control_vmap4 0.231 ms/L, control_vmap16 0.070 ms/L, step0_gather_vmap1 0.830 ms/L, step0_gather_vmap4 0.228 ms/L, step0_gather_vmap16 0.069 ms/L, step0_components_vmap1 0.831 ms/L, step0_components_vmap4 0.229 ms/L, step0_components_vmap16 0.068 ms/L, step0_structured_vmap1 0.838 ms/L, step0_structured_vmap4 0.231 ms/L, step0_structured_vmap16 0.071 ms/L", + "[ 366.8 s] step-0 route bit-identity vs control: step0_gather=True, step0_components=True, step0_structured=True", + "[ 366.8 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 387.0 s] step-0 split: control trace -0.017 contain 0.087, step0_gather trace -0.016 contain 0.085, step0_components trace -0.017 contain 0.083, step0_structured trace -0.015 contain 0.090", + "[ 387.0 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 410.2 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]", + "[ 432.4 s] uncapped step0_gather: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]" + ], + "wall_s": 432.49594629197964 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.png new file mode 100644 index 000000000..47a21719c Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.png differ diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json new file mode 100644 index 000000000..26d996089 --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json @@ -0,0 +1,4704 @@ +{ + "cell": "solver_config_sweep_step0", + "issue": "PyAutoLabs/PyAutoArray#579", + "phase": "4b", + "step0_routes": [ + "control", + "gather", + "components", + "structured" + ], + "library_step0_default": "structured", + "config_name": "hpc_ral_cpu_epyc7702_fp64", + "quotable": "supplementary", + "host_note": "SUPPLEMENTARY (post-run label): AMD EPYC 7702 CPU-only on gpu-partition node euclid-ral-gpu-2 (no --gres), RAL job 357335, run because the ral partition was saturated. A different CPU from the phase-4a Xeon Platinum 8490H (euclid-ral-compute-10-4): within-node route ratios (x gather) are valid, absolute ms are NOT comparable to phase 4a.", + "quick": false, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "311e690fd6c843fe38e5a228628b4417890694f2", + "PyAutoNerves": "eb27da2464e2f07e0ad67e7fb18ee84be76c479a", + "PyAutoFit": "5468c6cefa0ae8bb08a449497cbd3c620f3720e2", + "PyAutoArray": "c13b2d733538bec86cff3a15eccd9a0940a68463", + "PyAutoGalaxy": "879a9308b709b3705eb95904de6b349a5c034d61", + "PyAutoLens": "def4decf68a245a9c3dd1eb276ee0578897b220c" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather", + "autolens_imported_from": "/mnt/ral/jnightin/PyAuto/PyAutoLens", + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "euclid-ral-gpu-2", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "1", + "cpu_count": 124, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "AMD EPYC 7702 64-Core Processor", + "cpu_count_os": 124, + "nproc": 1, + "nproc_all": 124, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "928298204 kB", + "kernel": "5.14.0-687.50.1.el9_8.x86_64", + "platform": "Linux-5.14.0-687.50.1.el9_8.x86_64-x86_64-with-glibc2.34", + "python": "3.12.4", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": null, + "NUMEXPR_NUM_THREADS": null + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": null + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "sched_affinity": 8, + "os_cpu_count": 124, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 0.29, + 0.07, + 0.02 + ], + "loadavg_end": [ + 1.48, + 1.33, + 0.66 + ], + "protocol": { + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "seed": 314, + "n_prior_draws": 200, + "n_stress_draws": 200, + "step0_rounds": 10, + "vmap_batches": [ + 1, + 4, + 16 + ], + "route_order": "round-robin over every config, start rotated each round", + "cache_trap_guard": "fresh closure + fresh solver/analysis per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "admissible": "100% distinct-multiplicity agreement with the reference on the prior draws AND max position error <= 0.002\"", + "admissible_position_tol": 0.002, + "position_noise_sigma": 0.05, + "distinct_tol": 0.005, + "prior_draws": "full prior: vector_from_unit_vector(U(1e-4, 1-1e-4)); source = solved beta*", + "stress_draws": "OUTSIDE the prior: Isothermal centre U(-0.05,0.05), theta_E U(1,2), ell_comps U(-0.2,0.2), source centre U(-0.4,0.4); plain FitPositionsImagePairAll positions", + "reference": { + "name": "reference", + "block": "reference", + "extent": 12.0, + "scale": 0.05, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "reference_b": { + "name": "reference_b", + "block": "reference", + "extent": 11.0, + "scale": 0.07, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "max_containing_size_patch": "ArrayTriangles.__init__ / for_limits_and_scale __defaults__ + module constant, tracing only, restored by value", + "pytrees": "autofit.jax.register_model(model) for both models before any trace" + }, + "configs": [ + { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + } + ], + "static": { + "control": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "step0_gather": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "step0_components": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "step0_structured": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "reference": { + "extent_half_width": [ + 12.0, + 12.0 + ], + "limits": [ + -12.0, + 12.0, + -12.0, + 12.0 + ], + "scale": 0.05, + "pixel_scale_precision": 0.0001, + "n_steps": 9, + "n_steps_formula": "ceil(log2(0.05 / 0.0001))", + "last_step_triangle_side": 0.0001953125, + "step0_triangles": 535277, + "step0_rows": 268677, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "reference_b": { + "extent_half_width": [ + 11.0, + 11.0 + ], + "limits": [ + -11.0, + 11.0, + -11.0, + 11.0 + ], + "scale": 0.07, + "pixel_scale_precision": 0.0001, + "n_steps": 10, + "n_steps_formula": "ceil(log2(0.07 / 0.0001))", + "last_step_triangle_side": 0.00013671875, + "step0_triangles": 229585, + "step0_rows": 115473, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + } + }, + "reference_floor": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423151782, + "p99_position_error": 0.0001280749711777913, + "median_position_error": 5.9668954361473236e-05, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.09204751533968647, + "p99": 0.06845503627316121, + "median": 0.004628222675307825, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423129578, + "p99_position_error": 0.00014084184669768283, + "median_position_error": 5.966895436132821e-05, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "reference_max_finite_positions": { + "prior": 4, + "stress": 4 + }, + "reference_compile": { + "reference_prior": { + "lower_s": 8.750041433988372, + "compile_s": 8.308000456017908, + "first_call_s": 0.024183892004657537, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 48502648.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 17361496, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 452059136, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 1.7536962699959986, + "compile_s": 2.0874339919828344, + "first_call_s": 0.02349727600812912, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 47671892.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 17361048, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5283840, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 6.3681287489889655, + "compile_s": 9.030520883999998, + "first_call_s": 0.011626578983850777, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 23082492.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 7566936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 50667520, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 1.5515906600048766, + "compile_s": 2.27375302001019, + "first_call_s": 0.011668908002320677, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 22251710.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 7566488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1232896, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + } + }, + "default_vs_reference": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + }, + "agrees_on_every_prior_draw": true, + "agrees_on_every_stress_draw": true, + "stress_mismatch_examples": [] + }, + "admissibility": { + "control": true, + "step0_gather": true, + "step0_components": true, + "step0_structured": true + }, + "precision_equivalent": { + "control": true, + "step0_gather": true, + "step0_components": true, + "step0_structured": true + }, + "reference_image_extent": { + "prior": { + "max_abs_y": 1.77939453125, + "max_abs_x": 1.7773254429359933, + "max_abs_coord": 1.77939453125, + "p99_abs_coord": 1.7590830914129167, + "max_radius": 1.8116226317743076 + }, + "stress": { + "max_abs_y": 2.2498046875, + "max_abs_x": 2.300267215077964, + "max_abs_coord": 2.300267215077964, + "p99_abs_coord": 2.2027852305644777, + "max_radius": 2.5191249773380773 + } + }, + "extent_working": "prior: theta_E <= 1.6 + 4*0.05 = 1.8; |e| <= 0.0526 + 4*0.01 ~ 0.09 -> q ~ 0.83; SIE images lie within ~theta_E/sqrt(q) + |beta| ~ 1.98 + 0.1 ~ 2.1 arcsec of the centre, so boxes of +-6 / +-4 / +-3 / +-2.5 bracket it; reference_image_extent is the measured value", + "best_admissible": "step0_structured", + "best_admissible_any_precision": "step0_structured", + "table": [ + { + "config": "control", + "block": "control", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.9813075050478801, + "speedup": 1.0, + "speedup_ci90": [ + 0.9892159090440629, + 1.0108369243245885 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 4.055132859997684, + "flops": 2801341.0, + "temp_bytes": 901656 + }, + { + "config": "step0_gather", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 3.1836355046834797, + "speedup": 0.6223411889122225, + "speedup_ci90": [ + 0.6156395466100351, + 0.6275383662532038 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 3.9973594350158237, + "flops": 3383414.0, + "temp_bytes": 1692120 + }, + { + "config": "step0_components", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.9792630046140403, + "speedup": 1.0010329604651194, + "speedup_ci90": [ + 0.9915762775510888, + 1.0099727645188283 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 4.1208400769974105, + "flops": 3578378.0, + "temp_bytes": 1506264 + }, + { + "config": "step0_structured", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.971192512428388, + "speedup": 1.0051314077928548, + "speedup_ci90": [ + 0.9950336108192507, + 1.0138289471971313 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 4.190009113022825, + "flops": 2801341.0, + "temp_bytes": 901656 + } + ], + "rows": { + "control": { + "config": { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 1.9813075050478801, + "p10_ms": 1.8009490187978372, + "p90_ms": 2.1719150099670514, + "min_ms": 1.4919799868948758, + "max_ms": 3.1976399768609554, + "mean_ms": 1.986411474426859 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.9892159090440629, + "ci90_high": 1.0108369243245885, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 2.687993858009577, + "compile_s": 4.055132859997684, + "first_call_s": 0.0031670609896536916, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901656, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2813952, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.8663020057138056, + 2.255575993331149, + 1.909148006234318 + ], + "per_call_ms": [ + 1.9479180045891553, + 2.0338470058050007, + 2.1504369797185063, + 1.989628013689071, + 1.982488000066951, + 1.8972889811266214, + 2.030338015174493, + 2.2460779873654246, + 1.8577289883978665, + 1.911867002490908, + 1.8023680022452027, + 1.7189200152643025, + 1.9810170051641762, + 1.9189290178474039, + 2.0584979793056846, + 1.9983079982921481, + 1.90369802294299, + 2.021517982939258, + 2.067027991870418, + 1.9562880042940378, + 1.8247189873363823, + 1.7156579997390509, + 1.9590979791246355, + 1.5846599999349564, + 1.9478780159261078, + 1.7571790085639805, + 1.6997400089167058, + 1.9188489823136479, + 1.8309589941054583, + 1.7367689870297909, + 1.6067399992607534, + 1.5828199975658208, + 1.6023409843910486, + 2.0344080112408847, + 2.180386014515534, + 1.9578680221457034, + 2.0655870030168444, + 2.018127008341253, + 1.9226779986638576, + 1.9964480015914887, + 2.024266985245049, + 1.7002790118567646, + 2.2777960111852735, + 1.894457993330434, + 2.0788770052604377, + 1.9737980037461966, + 2.198845992097631, + 1.9265279988758266, + 2.0480669918470085, + 1.9449280225671828, + 1.917557994602248, + 1.8872780201490968, + 1.8720380030572414, + 1.9044979999307543, + 2.0176279940642416, + 1.9941469945479184, + 2.0773769938386977, + 1.9275079830549657, + 1.899388007586822, + 1.926597993588075, + 2.9493010079022497, + 3.1976399768609554, + 2.4854640068951994, + 2.2059960174374282, + 2.1445369930006564, + 2.105527004459873, + 1.9453580025583506, + 2.8891830006614327, + 2.0161969878245145, + 2.1354469936341047, + 2.5367549969814718, + 1.6596099885646254, + 1.9885980000253767, + 2.0001980010420084, + 2.3444549879059196, + 2.1984369959682226, + 2.017138001974672, + 2.037407015450299, + 2.4403060087934136, + 2.711083012400195, + 2.0593480148818344, + 2.1851870114915073, + 1.9016680016648024, + 2.1891259821131825, + 2.0436169870663434, + 1.7685290076769888, + 1.9823180045932531, + 2.0188269845675677, + 1.9756280235014856, + 1.672129990765825, + 1.8438489933032542, + 2.0658569992519915, + 1.8002289871219546, + 1.8985980132129043, + 1.9740679999813437, + 2.1892559889238328, + 1.952967984834686, + 1.9731879874598235, + 2.046737994533032, + 2.0156879909336567, + 1.8147089867852628, + 1.6101000073831528, + 1.8396789964754134, + 2.0054370106663555, + 2.137827017577365, + 1.9180670205969363, + 2.2309169871732593, + 1.931828010128811, + 1.986946997931227, + 1.8816990195773542, + 1.9253889913670719, + 1.8185380031354725, + 2.063516993075609, + 1.8773479969240725, + 1.8865169840864837, + 1.9680479890666902, + 2.239536988781765, + 1.9069580012001097, + 1.8420190026517957, + 2.038287988398224, + 1.8631590064615011, + 2.1543460024986416, + 1.981598004931584, + 1.8740679952315986, + 1.9506180251482874, + 2.0061669929418713, + 2.154846995836124, + 1.782259001629427, + 1.9608470029197633, + 1.9133890164084733, + 2.0543380232993513, + 1.9346780027262866, + 1.945608004461974, + 2.080937003483996, + 1.9582379900384694, + 1.9949479901697487, + 1.8854289955925196, + 1.7828690179158002, + 1.4919799868948758, + 1.7745399964042008, + 1.7607889894861728, + 1.8097090069204569, + 2.049517002888024, + 2.023987006396055, + 2.070036978693679, + 2.287615992827341, + 1.931348000653088, + 1.9750780193135142, + 2.1129570086486638, + 1.8269690044689924, + 2.0793579751625657, + 1.8411980126984417, + 1.9027089874725789, + 1.9564479880500585, + 2.04237800789997, + 1.950617996044457, + 2.0328079990576953, + 1.699159009149298, + 1.5488200006075203, + 1.9225179858040065, + 1.8321290262974799, + 2.0642669987864792, + 2.1134470007382333, + 2.0063769770786166, + 2.0621169824153185, + 1.8984190246555954, + 1.9502579816617072, + 1.7907790024764836, + 1.8222189974039793, + 1.926587981870398, + 1.6782799793872982, + 1.6350600053556263, + 1.7110590124502778, + 1.829218992497772, + 1.8968570220749825, + 1.7143879958894104, + 2.0685170020442456, + 2.024857996730134, + 1.8500880105420947, + 1.8835680093616247, + 1.8961990135721862, + 2.0025179837830365, + 2.0586670143529773, + 2.0222079765517265, + 2.088156994432211, + 2.1396469965111464, + 2.0141669956501573, + 2.033127995673567, + 1.951518002897501, + 2.0275080169085413, + 2.0256479911040515, + 1.9978769996669143, + 1.9405079947318882, + 2.2244760184548795, + 1.8438980041537434, + 1.9248180033173412, + 1.9417580042500049, + 1.9179380033165216, + 2.1129669912625104, + 1.8760179809760302, + 1.811438996810466, + 2.024576999247074, + 2.0859869837295264, + 2.3138149990700185, + 2.5366350018884987, + 1.9752180087380111, + 2.207275974797085, + 1.9700279808603227, + 2.1571370016317815, + 2.062987012322992, + 2.018098020926118, + 2.235275984276086, + 2.075337019050494, + 1.9591680029407144, + 2.0140870183240622, + 2.185117016779259, + 2.139696996891871, + 1.8847280007321388, + 1.9975079922005534, + 1.9210379978176206, + 2.0264269842300564, + 1.9991970038972795, + 2.083706989651546, + 1.8958179862238467, + 1.9567779963836074, + 1.9184389966540039, + 2.1116870047990233, + 2.0273280097171664, + 1.947777986060828, + 2.1085670159664005, + 2.034717006608844, + 2.081286977045238, + 1.9560480141080916, + 1.9478879985399544, + 1.8527590145822614, + 2.1595259895548224, + 1.7771990096662194, + 2.089037006953731, + 2.0633770036511123, + 1.9554980099201202, + 1.8571990076452494, + 1.9665379950311035, + 2.0394780149217695, + 1.9494479929562658, + 1.962238020496443, + 1.856758986832574, + 2.0230569934938103, + 1.908517995616421, + 1.8609580001793802, + 1.775228010956198, + 2.007958013564348, + 1.7924789863172919, + 1.8165489891543984, + 1.8793080234900117, + 2.266105992021039, + 2.013318007811904, + 1.9833680125884712, + 2.0876080088783056, + 1.8439679988659918, + 1.9933480070903897, + 1.8104180053342134, + 1.9344979955349118, + 1.9893179996870458, + 1.9646569853648543, + 1.6190299938898534, + 1.5826699964236468, + 1.623000018298626, + 1.7671179957687855, + 1.939528010552749, + 2.218206995166838, + 2.0379070192575455, + 1.919757982250303, + 1.9866980146616697, + 1.9551279838196933, + 1.9393079855944961, + 1.8665090028662235, + 2.239916007965803, + 1.8837090174201876, + 1.8666789983399212, + 1.9065079977735877, + 1.8010290223173797, + 2.2301669814623892, + 1.9377190037630498, + 1.9695780065376312, + 2.088716981234029, + 2.0193169766571373, + 2.138087002094835, + 2.0687969808932394, + 2.130806999048218, + 1.978498010430485, + 2.0125070004723966, + 1.9921379862353206, + 1.9802979950327426, + 2.0249579974915832, + 2.2463269997388124, + 2.028416987741366, + 2.136316994437948, + 2.1657370089087635, + 1.975207997020334, + 1.9247790041845292, + 1.6525500104762614, + 2.153537003323436, + 2.0296970033086836, + 1.9418780284468085, + 2.08426799508743, + 2.0344869990367442, + 1.980967994313687, + 2.123656013282016, + 1.9563579990062863, + 2.050656999927014, + 2.1089369838591665, + 2.0152470096945763, + 2.2075460001360625, + 1.7705389764159918, + 2.006587979849428, + 2.1009369811508805, + 2.0529080065898597, + 2.0454180194064975, + 1.8761279934551567, + 2.0165180030744523, + 1.9198679947294295, + 2.0079380192328244, + 2.101097023114562, + 2.0945569849573076, + 2.0237379940226674, + 2.1895969985052943, + 2.0096070074941963, + 1.8563889898359776, + 2.02232800074853, + 2.2636959911324084, + 2.049377973889932, + 2.0444569818209857, + 1.9417779985815287, + 1.984148024348542, + 1.89471899648197, + 1.9178889924660325, + 1.9295579986646771, + 2.151897002477199, + 2.1453869994729757, + 2.063767984509468, + 1.8521889869589359, + 1.8855590024031699, + 2.034028002526611, + 1.8919889989774674, + 2.2921359923202544, + 2.091727015795186, + 1.7862190143205225, + 2.1816760126966983, + 1.9860879983752966, + 1.9195890054106712, + 2.0598379778675735, + 2.068547997623682, + 1.824028993723914, + 1.8019490235019475, + 1.927498000441119, + 1.982756977668032, + 2.0239180012140423, + 1.9418979936745018, + 1.9571979937609285, + 2.2017359733581543, + 1.7660790181253105, + 1.8853289948310703, + 2.176756999688223, + 1.8564079946372658, + 2.1713770111091435, + 1.9101679790765047, + 1.869198022177443, + 1.9338080019224435, + 1.8956679850816727, + 1.7824189853854477, + 1.654980005696416, + 1.9379680161364377, + 2.130415989086032, + 1.8900379945989698, + 1.822129008360207, + 1.8920589936897159, + 2.0070269820280373, + 1.9370480149518698, + 2.018137980485335, + 1.9939379999414086, + 2.0138770050834864, + 2.03047800459899, + 1.8525990017224103, + 1.9231079786550254, + 2.0661370072048157, + 2.0375669992063195, + 2.0618670096155256, + 2.081926999380812, + 2.2768069757148623, + 2.1798970119562, + 2.0874869951512665, + 2.0632779924198985, + 1.9220979884266853, + 1.952488993993029, + 1.9236789958085865, + 1.9542480004020035, + 2.0658169814851135, + 2.039836981566623, + 2.033547993050888, + 2.0193069940432906 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_gather": { + "config": { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "stats": { + "n": 400, + "median_ms": 3.1836355046834797, + "p10_ms": 2.8291361057199538, + "p90_ms": 3.5758650832576677, + "min_ms": 2.3185760073829442, + "max_ms": 3.8922770181670785, + "mean_ms": 3.1937458828178933 + }, + "speedup_vs_control": { + "ratio": 0.6223411889122225, + "ci90_low": 0.6156395466100351, + "ci90_high": 0.6275383662532038, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.6200591642378285, + "p10": 0.6012462472507466, + "p90": 0.6450524273383553 + }, + "compile": { + "lower_s": 2.5578584960021544, + "compile_s": 3.9973594350158237, + "first_call_s": 0.003534618008416146, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3964928, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.7973440010100603, + 3.3909880148712546, + 3.3743699896149337 + ], + "per_call_ms": [ + 2.8701419942080975, + 3.55758800287731, + 3.137020015856251, + 3.6074279923923314, + 3.224560001399368, + 3.134639991912991, + 2.8308229811955243, + 3.050169994821772, + 3.250601002946496, + 3.4460389870218933, + 2.8640620002988726, + 2.7960430015809834, + 2.7733529859688133, + 3.2832410070113838, + 3.068240999709815, + 3.213579999282956, + 3.170961019350216, + 3.3585789788048714, + 2.3185760073829442, + 2.78099300339818, + 2.3997650132514536, + 3.4210779995191842, + 3.1625110132154077, + 3.0814220081083477, + 3.0872900097165257, + 3.013192006619647, + 3.1405200134031475, + 3.648126992629841, + 3.0852020136080682, + 3.1702900014352053, + 3.1822409946471453, + 3.158029983751476, + 2.967251988593489, + 2.992942987475544, + 2.7546630008146167, + 3.1853410182520747, + 3.397199005121365, + 3.161930973874405, + 3.0126009951345623, + 3.4433790133334696, + 3.06120200548321, + 3.20984999416396, + 3.2319099991582334, + 2.8511419950518757, + 3.2575700024608523, + 3.4720090043265373, + 3.085889999056235, + 3.255960007663816, + 3.122109977994114, + 3.433438978390768, + 3.167821007082239, + 3.1025009811855853, + 3.1639910012017936, + 3.4805290051735938, + 3.1397500133607537, + 3.3829190069809556, + 2.807231998303905, + 3.589667991036549, + 2.882333006709814, + 3.3487780019640923, + 2.9466929845511913, + 3.8922770181670785, + 3.501697996398434, + 3.010852000443265, + 2.8642120014410466, + 3.703568014316261, + 3.0248120019678026, + 3.210429014870897, + 3.5197090182919055, + 3.4664489794522524, + 3.675777988974005, + 3.3855299989227206, + 3.175049991114065, + 3.1026119831949472, + 3.1275899964384735, + 3.5033280146308243, + 3.5789980029221624, + 3.354349988512695, + 3.520736994687468, + 3.335949993925169, + 2.9663220047950745, + 3.6802859976887703, + 3.2438999915029854, + 3.15308099379763, + 3.0715210014022887, + 3.192790987668559, + 3.4795289975591004, + 2.775543020106852, + 3.0365519924089313, + 3.1987999973353, + 2.745973994024098, + 3.2063999969977885, + 3.3017899841070175, + 3.599917981773615, + 3.3306289988104254, + 3.1072119891177863, + 3.1671110191382468, + 3.0292809824459255, + 2.81059299595654, + 2.903781976783648, + 3.341537987580523, + 3.12061098520644, + 3.560568002285436, + 3.2635789830237627, + 3.713766986038536, + 3.0725719989277422, + 3.1247510050889105, + 3.1835510162636638, + 3.267049993155524, + 3.575516981072724, + 3.1030609970912337, + 3.201731014996767, + 3.09059998835437, + 2.898342994740233, + 2.9712409886997193, + 3.178601007675752, + 3.087270015385002, + 3.082570998230949, + 2.7267529803793877, + 3.44904899247922, + 2.791222999803722, + 3.352688974700868, + 3.1972310098353773, + 3.021501994226128, + 3.2507500145584345, + 3.2901300000958145, + 2.8167529962956905, + 3.5642389848362654, + 3.3022610004991293, + 3.6696379829663783, + 2.9657609993591905, + 3.2134999928530306, + 3.1737899989821017, + 3.2032209855969995, + 3.0804620182607323, + 3.3600080059841275, + 2.792562998365611, + 2.8722620045300573, + 3.445938986260444, + 3.7614870234392583, + 2.9348829993978143, + 3.5277190036140382, + 3.3248479885514826, + 3.183911001542583, + 2.830512006767094, + 3.5096580104436725, + 3.2191310019697994, + 3.654906991869211, + 2.7235830202698708, + 3.1358510022982955, + 2.997231000335887, + 3.192650998244062, + 3.614476998336613, + 3.4922189952339977, + 3.0584520136471838, + 3.604148019803688, + 3.3904879819601774, + 2.860962995328009, + 2.753322012722492, + 3.112981008598581, + 2.5537150213494897, + 2.8779720014426857, + 2.57377399248071, + 2.458034985465929, + 3.206808993127197, + 3.09494198882021, + 2.7668029943015426, + 3.2667700143065304, + 3.2443399832118303, + 3.2356290030293167, + 2.9584119911305606, + 3.468629001872614, + 2.8899619937874377, + 3.532697999617085, + 2.479424001649022, + 2.7981940074823797, + 3.0078210111241788, + 3.248030989198014, + 3.6888679896946996, + 2.98296200344339, + 3.3383000118192285, + 3.4224989940412343, + 3.0695120221935213, + 3.375769010744989, + 3.5119880049023777, + 3.2865109969861805, + 2.733364002779126, + 3.223629028070718, + 3.5407090035732836, + 3.081581002334133, + 3.1566099787596613, + 3.3252499997615814, + 3.520958998706192, + 3.4639980003703386, + 3.6151980166323483, + 3.0087120248936117, + 2.857351995771751, + 3.0864920117892325, + 3.1817889830563217, + 3.553308022674173, + 2.9905509727541357, + 3.5502190003171563, + 3.1393909885082394, + 3.073921980103478, + 3.6395979986991733, + 3.4044999920297414, + 3.446549002546817, + 3.260751022025943, + 3.5232490045018494, + 2.5799339928198606, + 3.1587420089636, + 3.2105800055433065, + 2.9917820065747947, + 3.0103710014373064, + 3.3169499947689474, + 3.095621010288596, + 2.843841997673735, + 2.9754110146313906, + 2.7074540266767144, + 2.875821985071525, + 2.6901240053121, + 3.217518999008462, + 2.8912629932165146, + 2.6727229997050017, + 2.6900840166490525, + 2.993711008457467, + 2.9993130010552704, + 3.2030300062615424, + 3.0998610018286854, + 2.8964020020794123, + 3.049321996513754, + 3.62542801303789, + 2.920161990914494, + 3.657067019958049, + 3.6483780131675303, + 3.319390001706779, + 3.2533599878661335, + 3.3095600083470345, + 3.32645999151282, + 3.5081479873042554, + 3.179909981554374, + 2.7344939881004393, + 3.0830010073259473, + 3.129660995909944, + 3.3707779948599637, + 3.2880399958230555, + 3.4884290071204305, + 3.146099974401295, + 3.5397879837546498, + 3.0122019816190004, + 3.6791279853787273, + 3.3870080078486353, + 3.6822569963987917, + 3.179010993335396, + 3.265678999014199, + 2.967041014926508, + 2.8511519776657224, + 3.1110119889490306, + 3.0720210052095354, + 3.4252979967277497, + 2.7999120065942407, + 2.77962299878709, + 3.1893900013528764, + 3.0092429951764643, + 3.1482400081586093, + 3.275590017437935, + 3.5076490021310747, + 3.435029007960111, + 3.6641769984271377, + 3.4700980177149177, + 2.785464021144435, + 3.055290988413617, + 3.4526989911682904, + 3.0123110045678914, + 3.41903799562715, + 3.603897988796234, + 3.0155220010783523, + 3.5962479887530208, + 3.045311983441934, + 3.2193099905271083, + 3.251490998081863, + 3.2909290166571736, + 3.610067971749231, + 3.7344270094763488, + 3.3465299929957837, + 3.532078000716865, + 2.90288298856467, + 3.123311005765572, + 3.2376509916502982, + 3.6920770071446896, + 3.6091379879508168, + 3.1518810137640685, + 3.1473609851673245, + 3.1965910166036338, + 3.5720769956242293, + 3.1275209912564605, + 3.2239410211332142, + 2.986141014844179, + 3.18542099557817, + 3.233510011341423, + 2.491405000910163, + 3.569709020666778, + 2.8035940194968134, + 2.9327410156838596, + 3.094650979619473, + 2.443425008095801, + 3.1464409839827567, + 3.467118978733197, + 3.4454489941708744, + 2.6753929851111025, + 3.213660995243117, + 3.050111001357436, + 2.7721640071831644, + 3.015580994542688, + 3.589008003473282, + 3.5057189816143364, + 2.94984201900661, + 3.5077079955954105, + 3.5927779972553253, + 3.167971008224413, + 2.9325520154088736, + 3.59535901225172, + 3.1546899990644306, + 3.049371996894479, + 2.7300429937895387, + 3.5426290123723447, + 3.071172017371282, + 3.582198027288541, + 3.176850004820153, + 3.298420022474602, + 3.5897690104320645, + 3.082071023527533, + 3.2512510078959167, + 3.1757199903950095, + 3.6201070179231465, + 3.524109022691846, + 3.283130005002022, + 3.593547997297719, + 3.2046590058598667, + 3.101420996244997, + 3.223601001081988, + 3.536959004122764, + 2.8330530039966106, + 2.8458739980123937, + 3.1952699937392026, + 3.320669988170266, + 3.2071699970401824, + 3.7664760020561516, + 3.1064809882082045, + 3.0085620237514377, + 3.508207999402657, + 2.4476149992551655, + 3.2077900250442326, + 3.5140080144628882, + 3.5014990135096014, + 3.1631500169169158, + 3.2225009927060455, + 3.555068018613383, + 3.1798190029803663, + 3.4189799916930497, + 2.958601020509377, + 3.1676910002715886, + 3.132649988401681, + 3.249920002417639, + 3.0803109984844923, + 2.9084320121910423, + 3.6238479951862246, + 3.0247819959186018, + 3.185470006428659, + 3.0713620071765035, + 3.262548998463899, + 3.381128975888714, + 3.2068210130091757, + 3.2256199920084327, + 3.2671799999661744, + 3.0591009999625385, + 3.070141014177352, + 3.596497990656644, + 2.913042000727728, + 3.1777709955349565, + 3.084541007410735, + 3.1837199931032956, + 3.2947809959296137, + 3.2651799847371876, + 3.5679879947565496, + 3.4820190048776567, + 3.3236600283998996, + 3.1734200019855052, + 3.3804900012910366, + 3.0926110048312694, + 3.209569986211136, + 3.4922089835163206, + 3.0516420083586127, + 3.0379510135389864, + 2.7003430004697293, + 3.013492008903995, + 3.4616090124472976, + 3.0706610123161227, + 3.1983710068743676, + 3.0000109982211143 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "config": { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "stats": { + "n": 400, + "median_ms": 1.9792630046140403, + "p10_ms": 1.8095480103511363, + "p90_ms": 2.146816995809786, + "min_ms": 1.5161810151766986, + "max_ms": 2.4881939752958715, + "mean_ms": 1.9813577875174815 + }, + "speedup_vs_control": { + "ratio": 1.0010329604651194, + "ci90_low": 0.9915762775510888, + "ci90_high": 1.0099727645188283, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0063807441634844, + "p10": 0.9570340954335629, + "p90": 1.0465114178156316 + }, + "compile": { + "lower_s": 2.5268545360013377, + "compile_s": 4.1208400769974105, + "first_call_s": 0.002543174021411687, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3578378.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1506264, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 6008832, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.0427979761734605, + 1.781358994776383, + 2.093037008307874 + ], + "per_call_ms": [ + 1.7138099938165396, + 1.9275990198366344, + 2.0385379903018475, + 2.2241270053200424, + 1.860949007095769, + 1.7996990063693374, + 1.9806569907814264, + 2.2349960054270923, + 2.053898002486676, + 1.9730679923668504, + 1.9364079926162958, + 1.9139779906254262, + 2.0105779985897243, + 1.659539993852377, + 2.4881939752958715, + 2.0005280093755573, + 2.1073569951113313, + 1.9651280017569661, + 1.8488189962226897, + 1.9168180006090552, + 2.1373370254877955, + 1.9355980039108545, + 2.0434079924598336, + 2.0770780101884156, + 1.97042798390612, + 2.1420069970190525, + 2.0449479925446212, + 2.000256994506344, + 2.0700470195151865, + 2.0529269822873175, + 2.161056996555999, + 1.966957002878189, + 1.919608999742195, + 2.0162879955023527, + 1.9802280003204942, + 1.969827979337424, + 2.1949759975541383, + 1.8111590179614723, + 1.9931179995182902, + 1.9055889861192554, + 1.7869980074465275, + 2.0575789967551827, + 1.8997680163010955, + 1.9583679968491197, + 1.982757996302098, + 1.6917390166781843, + 2.079258003504947, + 2.109207009198144, + 1.8718880019150674, + 1.9956979958806187, + 2.102447993820533, + 1.7747879901435226, + 1.7403090023435652, + 2.123137004673481, + 1.9011789991054684, + 1.9204290001653135, + 1.9335190008860081, + 1.8078289867844433, + 1.923798001371324, + 1.7918590165209025, + 1.8217189935967326, + 2.0599270064849406, + 2.1057169942650944, + 2.3566560121253133, + 2.103667997289449, + 2.137326984666288, + 2.1444259909912944, + 1.9001580076292157, + 1.8869279883801937, + 1.8994279962498695, + 2.052976982668042, + 1.9353580137249082, + 2.0823670201934874, + 1.9172280153725296, + 1.7220790032297373, + 2.0038780057802796, + 1.8473590025678277, + 2.2127059928607196, + 1.8718780193012208, + 1.9979279895778745, + 1.8822179990820587, + 1.9036180165130645, + 1.938587985932827, + 1.9991669978480786, + 2.092737006023526, + 1.8650690035428852, + 2.101156977005303, + 1.8639889894984663, + 1.9186080025974661, + 1.9862879998981953, + 2.0916369976475835, + 1.9426790240686387, + 1.9263990106992424, + 2.0392980077303946, + 2.0170369825791568, + 1.8051990191452205, + 1.7300689942203462, + 1.737518992740661, + 1.6495599993504584, + 1.9160480005666614, + 1.9172079919371754, + 1.891218009404838, + 1.9428379891905934, + 1.917137997224927, + 2.1040669817011803, + 1.916239009005949, + 2.105496998410672, + 1.9852480036206543, + 2.0804270170629025, + 1.959927991265431, + 1.9969179993495345, + 1.9842970068566501, + 1.8213290022686124, + 2.0913170010317117, + 1.9638479861896485, + 1.9686479936353862, + 2.0243570033926517, + 2.0774069998878986, + 1.9344580068718642, + 2.245655981823802, + 2.0666869822889566, + 1.9978079944849014, + 1.8997479928657413, + 1.8626390083227307, + 2.0227570203132927, + 1.9803479954134673, + 2.1742760145571083, + 1.9938180048484355, + 1.923228002851829, + 1.981937006348744, + 2.0896769710816443, + 2.002348017413169, + 1.975428021978587, + 2.031878015259281, + 1.8217390170320868, + 2.2202060208655894, + 1.773099007550627, + 2.0461670064833015, + 2.1516770066227764, + 1.8330290040466934, + 1.9512080179993063, + 2.140955999493599, + 1.9708580221049488, + 1.8938079883810133, + 1.957278000190854, + 2.101777005009353, + 2.1462769946083426, + 2.0801170030608773, + 2.0070169994141906, + 1.827049010898918, + 2.0052670151926577, + 1.9864380010403693, + 2.1863360016141087, + 2.0219970028847456, + 2.0336779998615384, + 1.9291280186735094, + 1.8698489875532687, + 1.616719993762672, + 1.625770004466176, + 2.0946579752489924, + 1.7003290122374892, + 2.0479270024225116, + 2.1613869757857174, + 2.0435669866856188, + 2.1184670040383935, + 2.335927012609318, + 1.854446978541091, + 2.096458018058911, + 1.9956979958806187, + 1.9744070013985038, + 2.1119470184203237, + 1.9848380179610103, + 2.0593280205503106, + 2.0093769999220967, + 2.249606011901051, + 1.9457880116533488, + 2.2329160128720105, + 1.9757469999603927, + 2.1461369760800153, + 1.9728770130313933, + 1.7793590086512268, + 1.996576989768073, + 1.976367988390848, + 1.9427580118644983, + 1.9556180050130934, + 2.1107470092829317, + 1.9570479926187545, + 1.9409780215937644, + 2.1844459988642484, + 2.199135982664302, + 1.979838008992374, + 1.9638679805211723, + 1.9828379736281931, + 2.0175680110696703, + 2.0789779955521226, + 2.0522979903034866, + 1.9166679994668812, + 2.2541260113939643, + 2.0578269904945046, + 1.9730679923668504, + 1.9168879953213036, + 2.057336998404935, + 1.9412279943935573, + 1.954437990207225, + 1.8522989994380623, + 1.8896980036515743, + 1.9037279998883605, + 1.9161879899911582, + 1.9824279879685491, + 1.930897997226566, + 1.7901689861901104, + 1.849697990110144, + 2.120637014741078, + 2.055966993793845, + 1.8884079763665795, + 2.2577559866476804, + 1.8865979800466448, + 2.2293259971775115, + 1.915978005854413, + 2.0381869981065392, + 1.9717680115718395, + 1.9727179897017777, + 2.0798469777218997, + 2.217656990978867, + 2.179417002480477, + 2.0727669761981815, + 1.9613679905887693, + 1.8121690081898123, + 1.5825100126676261, + 2.080917009152472, + 2.3124059953261167, + 2.0950879843439907, + 1.8930189835373312, + 1.7560800188221037, + 1.5730989980511367, + 1.951366983121261, + 1.9999569922219962, + 1.8755179771687835, + 1.9768879865296185, + 2.049419010290876, + 1.886007987195626, + 2.1952059760224074, + 2.050048002274707, + 2.039497980149463, + 1.7678579897619784, + 2.122776990290731, + 2.1349070011638105, + 2.2077170142438263, + 1.8212089780718088, + 1.9089679990429431, + 2.036707999650389, + 2.0483880070969462, + 2.087877976009622, + 1.9786880002357066, + 1.7305889923591167, + 1.8137589795514941, + 2.273885009344667, + 1.9602379761636257, + 2.1185969817452133, + 1.964077993761748, + 1.7906090070027858, + 2.022538013989106, + 1.929099002154544, + 2.00752800446935, + 2.054157026577741, + 1.9634480122476816, + 1.9092580187134445, + 1.8864180019591004, + 1.9431979744695127, + 1.901257986901328, + 2.0377470063976943, + 1.9313580123707652, + 2.0845370017923415, + 2.085087005980313, + 1.9301279971841723, + 1.8769190064631402, + 2.025906986091286, + 1.7491690232418478, + 1.9331779913045466, + 2.0784570078831166, + 1.79991900222376, + 2.0068880112376064, + 1.9720179843716323, + 2.012748009292409, + 1.949537982000038, + 2.081987011479214, + 1.9455080037005246, + 1.9642280240077525, + 2.10693699773401, + 2.072606992442161, + 2.1083870087750256, + 2.006227005040273, + 1.9843880145344883, + 2.0809079869650304, + 2.1697269985452294, + 2.0119280088692904, + 2.075137017527595, + 2.053456992143765, + 1.9649480236694217, + 1.9826370116788894, + 1.8960279994644225, + 2.0466669811867177, + 2.0106180163566023, + 2.2979360073804855, + 2.1162469929549843, + 1.929738005856052, + 1.8568079976830631, + 1.8751989991869777, + 2.153977024136111, + 2.211806015111506, + 1.9585980044212192, + 2.1662460057996213, + 1.9616679928731173, + 1.939978013979271, + 2.0348469843156636, + 2.3108249879442155, + 1.9216980144847184, + 2.2696670203004032, + 2.108736982336268, + 2.0959069952368736, + 1.8097390129696578, + 2.0044379925820976, + 1.9933669827878475, + 1.971518009668216, + 1.868677994934842, + 1.9965980027336627, + 2.008187002502382, + 1.9974680035375059, + 1.919049012940377, + 2.1049469942227006, + 2.0589880004990846, + 2.179477014578879, + 1.8998580053448677, + 1.9402180041652173, + 2.1394159994088113, + 2.1161370095796883, + 2.2256060037761927, + 1.6338999848812819, + 1.7931289912667125, + 1.7050200258381665, + 1.8038490088656545, + 1.8965989875141531, + 1.9824169867206365, + 1.9051790004596114, + 1.9942680082749575, + 1.9703680009115487, + 2.0056880021002144, + 1.6947599942795932, + 1.5766310098115355, + 1.9542380177881569, + 2.1022970031481236, + 1.9364279869478196, + 1.922887982800603, + 1.8047390040010214, + 2.0007679995615035, + 1.871597982244566, + 1.8859690171666443, + 2.0171479845885187, + 1.959957997314632, + 1.940838003065437, + 1.7920690006576478, + 1.986498013138771, + 2.0772569987457246, + 2.1875370002817363, + 2.011967997532338, + 1.8832269997801632, + 2.0409970020409673, + 1.8891679937951267, + 1.8778180237859488, + 1.9749380007851869, + 2.069868001854047, + 1.8756880017463118, + 1.9951580034103245, + 1.9678479875437915, + 1.939927984494716, + 1.9324669847264886, + 1.8945680058095604, + 2.1736279886681587, + 1.9166390120517462, + 1.8949790101032704, + 1.930147991515696, + 2.0547780150081962, + 2.018587983911857, + 1.8405779846943915, + 1.5862899890635163, + 1.5161810151766986, + 1.6881100018508732, + 1.5981399919837713, + 2.0227870263624936, + 1.9352880190126598, + 1.850739005021751, + 1.8762389954645187, + 1.9653280032798648, + 2.06483798683621, + 2.180726994993165, + 2.136795985279605, + 1.9212679762858897, + 2.2371459926944226, + 2.0642570161726326, + 1.961428002687171 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "config": { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "stats": { + "n": 400, + "median_ms": 1.971192512428388, + "p10_ms": 1.784380996832624, + "p90_ms": 2.1547600044868886, + "min_ms": 1.5221810026559979, + "max_ms": 3.1426610075868666, + "mean_ms": 1.969261312042363 + }, + "speedup_vs_control": { + "ratio": 1.0051314077928548, + "ci90_low": 0.9950336108192507, + "ci90_high": 1.0138289471971313, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0069041756956367, + "p10": 0.9571048675261754, + "p90": 1.047675588365404 + }, + "compile": { + "lower_s": 2.6010064609872643, + "compile_s": 4.190009113022825, + "first_call_s": 0.002868412993848324, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901656, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2551808, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.0692870020866394, + 2.165937010431662, + 2.0677869906648993 + ], + "per_call_ms": [ + 1.9867269729729742, + 2.02796800294891, + 1.941208989592269, + 2.2685760050080717, + 2.0281779870856553, + 1.98144800378941, + 2.033616998232901, + 2.0870269800070673, + 2.0083480048924685, + 1.9351569935679436, + 1.942058006534353, + 1.913778978632763, + 1.9443279888946563, + 1.8544190097600222, + 1.9882270134985447, + 1.8651790160220116, + 1.914908003527671, + 1.9319479761179537, + 1.8638689944054931, + 2.1894359961152077, + 1.75319000845775, + 1.6972000012174249, + 1.5588789829052985, + 1.5717610076535493, + 1.991197990719229, + 1.7914889904204756, + 1.6079700144473463, + 1.921178016345948, + 2.2444960195571184, + 2.114575996529311, + 2.1676670003216714, + 2.145097008906305, + 2.084306994220242, + 1.9442980119492859, + 2.0826880063395947, + 2.0256769785191864, + 1.9103779923170805, + 1.9392879912629724, + 2.011637989198789, + 1.9916080054827034, + 1.7278589948546141, + 1.8168089736718684, + 2.1116269927006215, + 2.160896983696148, + 1.802548998966813, + 1.9070389971602708, + 1.8695589969865978, + 1.9541179935913533, + 2.022027998464182, + 1.7795090097934008, + 1.5663410013075918, + 1.5811100020073354, + 1.874589012004435, + 1.958178007043898, + 2.0355680026113987, + 1.9650180183816701, + 1.9230979960411787, + 1.9591879972722381, + 1.8416290113236755, + 1.9523579976521432, + 1.7490379977971315, + 2.148108003893867, + 2.100306999636814, + 2.2100359783507884, + 1.8332990002818406, + 2.193546009948477, + 1.9166390120517462, + 1.9162980024702847, + 2.0566479943227023, + 2.0345370285212994, + 1.9735280075110495, + 2.079077996313572, + 1.8783390114549547, + 1.874169014627114, + 1.926887984154746, + 1.9785879994742572, + 1.9844880152959377, + 2.5173040048684925, + 3.1426610075868666, + 3.050561004783958, + 1.7784290248528123, + 1.994036982068792, + 1.9931179995182902, + 2.027876995271072, + 1.97805801872164, + 2.2430060198530555, + 2.063388004899025, + 2.017738006543368, + 2.2029560059309006, + 2.234596002381295, + 1.9678680109791458, + 2.0130279881414026, + 1.9791980157606304, + 2.0713169942609966, + 1.8293489993084222, + 1.9997970084659755, + 1.9754779932554811, + 1.977707986952737, + 1.9647279987111688, + 1.9892480049747974, + 1.7512000049464405, + 1.9407079962547868, + 1.9775880209635943, + 1.9188389996998012, + 2.1402770071290433, + 1.9930069975089282, + 1.75984000088647, + 1.6682890127412975, + 1.8983379995916039, + 2.0053279877174646, + 1.9892080163117498, + 2.1313769975677133, + 1.8665480019990355, + 2.202277013566345, + 1.8763179832603782, + 1.95787800475955, + 2.0072979968972504, + 1.9638680096250027, + 2.0422569941729307, + 2.006358001381159, + 1.968487980775535, + 1.9346880144439638, + 1.9643179839476943, + 2.0445469999685884, + 1.919157977681607, + 1.9438879971858114, + 1.9821279856842011, + 1.9047780078835785, + 1.9660579855553806, + 2.0077970111742616, + 2.0482679829001427, + 1.7550699994899333, + 2.021067979512736, + 2.2114360181149095, + 1.9630180031526834, + 1.9663379935082048, + 1.9908779941033572, + 1.9681580015458167, + 2.156597009161487, + 2.116826013661921, + 2.0015480113215744, + 1.8792279879562557, + 2.262555994093418, + 1.9433889829088002, + 1.9713679794222116, + 2.072347007924691, + 2.0021879754494876, + 1.671089994488284, + 1.5221810026559979, + 2.040937019046396, + 1.7885690031107515, + 1.6103899979498237, + 1.7367480031680316, + 1.8453380034770817, + 1.6181200044229627, + 1.7843090172391385, + 1.8404489965178072, + 2.0807379914913327, + 2.0582379947882146, + 1.9440079922787845, + 2.0067470031790435, + 2.290005999384448, + 1.8876380054280162, + 1.979617984034121, + 1.9358290010131896, + 1.9873879791703075, + 2.220205991761759, + 1.9880469772033393, + 2.158036979380995, + 2.0688280055765063, + 1.7417000199202448, + 2.2030469845049083, + 2.049786999123171, + 2.0488270092755556, + 2.209255995694548, + 2.016118000028655, + 2.0252380054444075, + 1.7425100086256862, + 1.9652580085676163, + 2.0095480140298605, + 1.9556280167307705, + 2.0237970165908337, + 2.2006260114721954, + 1.9274279766250402, + 2.058226993540302, + 2.018538012634963, + 2.259025990497321, + 2.2157159983180463, + 1.9642780243884772, + 1.9229780009482056, + 1.9345179898664355, + 1.9670180045068264, + 1.9929280097130686, + 2.1038370032329112, + 1.8337579967919737, + 1.976967992959544, + 2.133077010512352, + 2.2218280064407736, + 2.214687003288418, + 2.0165779860690236, + 1.920357986818999, + 1.9803880131803453, + 1.8428770126774907, + 1.9609770097304136, + 1.870506996056065, + 1.9432579865679145, + 1.9814479746855795, + 1.897117996122688, + 1.9181779935024679, + 1.9980079960078, + 1.908168982481584, + 1.8515289993956685, + 1.620470022317022, + 1.8920879811048508, + 1.9412380061112344, + 1.8677980115171522, + 2.103587001329288, + 1.9292679789941758, + 1.9609180162660778, + 1.8502279999665916, + 1.7898289952427149, + 2.082246995996684, + 1.7919589881785214, + 1.9043079810217023, + 2.096266980515793, + 2.216416993178427, + 1.9014569988939911, + 2.0097570086363703, + 2.00540799414739, + 2.00338801369071, + 1.9811679958365858, + 2.138387004379183, + 1.8263089878018945, + 1.8581179901957512, + 2.3095360083971173, + 2.10654700640589, + 1.7179200076498091, + 1.9006190123036504, + 2.0475680066738278, + 2.0213680109009147, + 1.7843889945652336, + 2.149075997294858, + 2.155236987164244, + 2.01953700161539, + 1.9028779934160411, + 1.8879180133808404, + 1.970798010006547, + 2.2220159880816936, + 1.5914209943730384, + 1.6037710011005402, + 1.631959981750697, + 1.8315679917577654, + 1.8817789969034493, + 2.026587986620143, + 2.0460779778659344, + 1.9605479901656508, + 1.9577079801820219, + 2.058376994682476, + 1.9615280034486204, + 1.9145080004818738, + 1.8471589719410986, + 1.7685790080577135, + 2.16781601193361, + 1.8860279815271497, + 1.8708990246523172, + 2.098688011756167, + 1.929877995280549, + 1.9650280009955168, + 2.0574170048348606, + 1.8481089791748673, + 1.9191989849787205, + 1.831499015679583, + 1.753218995872885, + 1.6467589884996414, + 1.5903809980954975, + 1.5701600059401244, + 1.9856180006172508, + 1.9951179856434464, + 1.832369016483426, + 1.9308089977130294, + 1.8998879822902381, + 2.0625469915103167, + 1.984327973332256, + 2.084898005705327, + 2.183036005590111, + 2.0430870063137263, + 2.0143570145592093, + 1.9985079998150468, + 2.0237269927747548, + 1.9805380143225193, + 1.9029579998459667, + 1.6732299991417676, + 1.9408880034461617, + 2.1526670025195926, + 2.163745986763388, + 2.0175480167381465, + 2.0372879807837307, + 1.8604790093377233, + 2.0696570281870663, + 2.0104080031160265, + 1.6877480084076524, + 2.0323079952504486, + 1.9118889758829027, + 2.0591579959727824, + 1.749640010530129, + 2.112627000315115, + 2.0913269836455584, + 1.971846999367699, + 2.095567004289478, + 1.6920389898587018, + 1.5801700064912438, + 1.846299011958763, + 2.017997991060838, + 2.0012379973195493, + 2.0467470167204738, + 1.8531589885242283, + 2.0853279856964946, + 1.963408023584634, + 2.1926159970462322, + 1.8074490071740001, + 1.7993990040849894, + 1.784679014235735, + 2.096396987326443, + 1.9896980084013194, + 1.9062380015384406, + 1.914007996674627, + 2.1483769814949483, + 2.0290070096962154, + 1.9711280183400959, + 2.0110979967284948, + 1.9817779830191284, + 2.087118016788736, + 1.9138389907311648, + 1.9953780283685774, + 1.9173180044163018, + 2.0837269839830697, + 1.9501180213410407, + 2.000398002564907, + 1.853699010098353, + 2.056288009043783, + 1.8315190100111067, + 1.9617380166891962, + 2.0311669795773923, + 2.1686870022676885, + 2.044977998593822, + 1.9254790095146745, + 1.8511389789637178, + 1.9768780039157718, + 1.930938014993444, + 1.9712570065166801, + 2.154707006411627, + 1.8938790017273277, + 2.1455759997479618, + 1.821938989451155, + 2.017316990531981, + 1.9009879906661808, + 1.9436879956629127, + 1.9114680180791765, + 1.8553590052761137, + 1.8951189995277673, + 1.7725999932736158, + 1.9310979987494648, + 1.916237990371883, + 1.9817279826384038, + 1.929697988089174, + 1.9941779901273549, + 2.1693780145142227, + 2.1405770094133914, + 1.9278690160717815, + 1.9639380043372512, + 2.0091180049348623, + 1.963507995242253, + 1.9894680008292198, + 1.9849580130539834, + 2.0028980216011405, + 1.9936379976570606, + 2.1584670175798237, + 1.9931869755964726, + 1.9972480076830834, + 1.9529089913703501, + 1.7124699952546507, + 2.1745160047430545, + 2.0921069954056293, + 1.909888000227511, + 1.9112879817839712, + 1.9302580039948225, + 1.94571798783727, + 1.9578779756557196, + 2.070966991595924, + 1.9472379935905337, + 1.8651889986358583, + 1.8911590159405023, + 1.9875169964507222, + 1.9906779925804585, + 1.9280279811937362, + 2.1796459914185107, + 1.9590879965107888, + 1.927187986439094, + 1.9309190101921558, + 1.980667992029339 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + } + }, + "vmap": { + "best": "step0_structured", + "routes": [ + "control", + "step0_gather", + "step0_components", + "step0_structured" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.9984929967904463, + "p10_ms": 1.7651509813731536, + "p90_ms": 2.1875509206438437, + "min_ms": 1.5265310066752136, + "max_ms": 2.4264450185000896, + "mean_ms": 1.9886153368861414 + }, + "median_ms_per_likelihood": 1.9984929967904463, + "compile": { + "lower_s": 3.500198764988454, + "compile_s": 4.78498803198454, + "first_call_s": 0.002684803999727592, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2813353.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901720, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2797568, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap4": { + "config": "control", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 5.766439498984255, + "p10_ms": 5.439168107113801, + "p90_ms": 6.289221093175001, + "min_ms": 4.939839011058211, + "max_ms": 6.794127984903753, + "mean_ms": 5.814191821991699 + }, + "median_ms_per_likelihood": 1.4416098747460637, + "compile": { + "lower_s": 3.5011383689998183, + "compile_s": 5.0760049860109575, + "first_call_s": 0.005983823008136824, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10339222.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3200344, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3555328, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap16": { + "config": "control", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 18.223058490548283, + "p10_ms": 17.130755091784522, + "p90_ms": 19.657381091383286, + "min_ms": 15.433975990163162, + "max_ms": 20.677802996942773, + "mean_ms": 18.310249242422287 + }, + "median_ms_per_likelihood": 1.1389411556592677, + "compile": { + "lower_s": 3.6066151020058896, + "compile_s": 5.279567246994702, + "first_call_s": 0.019836409017443657, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 40452632.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12396824, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2732032, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap1": { + "config": "step0_gather", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 3.25468550727237, + "p10_ms": 2.9407041176455095, + "p90_ms": 3.636032086797059, + "min_ms": 2.603852975880727, + "max_ms": 3.866697021294385, + "mean_ms": 3.2794187697436428 + }, + "median_ms_per_likelihood": 3.25468550727237, + "compile": { + "lower_s": 3.455726857006084, + "compile_s": 4.668210218980676, + "first_call_s": 0.0037917569861747324, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3395426.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 33775616, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.614035670212975, + "ci90_low": 0.609728881710782, + "ci90_high": 0.6193532410477945, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap4": { + "config": "step0_gather", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 9.977103996789083, + "p10_ms": 9.260137000819668, + "p90_ms": 10.797901902697049, + "min_ms": 7.650811981875449, + "max_ms": 11.29520998802036, + "mean_ms": 9.988809456626768 + }, + "median_ms_per_likelihood": 2.4942759991972707, + "compile": { + "lower_s": 3.43247774001793, + "compile_s": 5.0330795290065, + "first_call_s": 0.009677260008174926, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36581376, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.5779672639315035, + "ci90_low": 0.5724595139205815, + "ci90_high": 0.585194820846235, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap16": { + "config": "step0_gather", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 33.940601511858404, + "p10_ms": 31.497134003438987, + "p90_ms": 36.48083198640961, + "min_ms": 29.458958975737914, + "max_ms": 40.15874399919994, + "mean_ms": 33.98989403009182 + }, + "median_ms_per_likelihood": 2.1212875944911502, + "compile": { + "lower_s": 3.4642902350169607, + "compile_s": 5.212569477997022, + "first_call_s": 0.03190379400621168, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 45574880.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27047448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37105664, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.5369102985455748, + "ci90_low": 0.5326699938994689, + "ci90_high": 0.541553470948365, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap1": { + "config": "step0_components", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.020172993070446, + "p10_ms": 1.827995985513553, + "p90_ms": 2.254783996613696, + "min_ms": 1.5502409951295704, + "max_ms": 2.3998150136321783, + "mean_ms": 2.027096302335849 + }, + "median_ms_per_likelihood": 2.020172993070446, + "compile": { + "lower_s": 3.5136122120020445, + "compile_s": 4.75471134801046, + "first_call_s": 0.002719533018535003, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3590390.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1506328, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37740544, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9892682476429663, + "ci90_low": 0.9813191258091946, + "ci90_high": 0.9950968342229074, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap4": { + "config": "step0_components", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 5.52099100605119, + "p10_ms": 5.072492893668823, + "p90_ms": 6.009905008249916, + "min_ms": 4.6627910051029176, + "max_ms": 6.7510590015444905, + "mean_ms": 5.531720380386105 + }, + "median_ms_per_likelihood": 1.3802477515127975, + "compile": { + "lower_s": 3.4219344439916313, + "compile_s": 5.224851414008299, + "first_call_s": 0.005522985011339188, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 13447376.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6777112, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37732352, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.0444573252635343, + "ci90_low": 1.0364172226763542, + "ci90_high": 1.0533299252449464, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap16": { + "config": "step0_components", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 18.650505517143756, + "p10_ms": 16.7515390960034, + "p90_ms": 20.378170916228555, + "min_ms": 14.906648022588342, + "max_ms": 21.41292701708153, + "mean_ms": 18.537156373713515 + }, + "median_ms_per_likelihood": 1.1656565948214848, + "compile": { + "lower_s": 3.4063576199987438, + "compile_s": 5.4203955530247185, + "first_call_s": 0.016001051990315318, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 52885240.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27103128, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36315136, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9770812096110446, + "ci90_low": 0.9656676750964245, + "ci90_high": 0.989334587062284, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap1": { + "config": "step0_structured", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.0230829977663234, + "p10_ms": 1.8497210083296522, + "p90_ms": 2.222856890875846, + "min_ms": 1.519160985480994, + "max_ms": 2.4242650251835585, + "mean_ms": 2.025425262399949 + }, + "median_ms_per_likelihood": 2.0230829977663234, + "compile": { + "lower_s": 3.5719881340046413, + "compile_s": 4.724451454007067, + "first_call_s": 0.0027972520038019866, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2813353.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901720, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37494784, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9878452831628625, + "ci90_low": 0.9796911183617224, + "ci90_high": 0.9940848584813425, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap4": { + "config": "step0_structured", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 5.785139495856129, + "p10_ms": 5.458534005447291, + "p90_ms": 6.357561994809657, + "min_ms": 4.979529010597616, + "max_ms": 7.397664012387395, + "mean_ms": 5.847070690797409 + }, + "median_ms_per_likelihood": 1.4462848739640322, + "compile": { + "lower_s": 3.488613986002747, + "compile_s": 5.019535144005204, + "first_call_s": 0.0060336129972711205, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10339222.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3200344, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 40935424, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.996767580646021, + "ci90_low": 0.989338430378054, + "ci90_high": 1.0060034695670645, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap16": { + "config": "step0_structured", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 18.12048400461208, + "p10_ms": 17.071463802130893, + "p90_ms": 19.67904201883357, + "min_ms": 15.248346026055515, + "max_ms": 20.618373004253954, + "mean_ms": 18.246133728825953 + }, + "median_ms_per_likelihood": 1.132530250288255, + "compile": { + "lower_s": 3.605344840005273, + "compile_s": 5.215043354022782, + "first_call_s": 0.018388786993455142, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 40452632.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12396824, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37535744, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.005660692391555, + "ci90_low": 0.9977592019384882, + "ci90_high": 1.0135673948221453, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + } + } + }, + "step0_split": { + "control": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.19911400158889592, + "ray_trace": 0.694440008373931, + "general_gather": 1.6715744859538972, + "route_inputs": 1.0698029946070164, + "containment": 1.3353674876270816 + }, + "ray_trace_ms": 0.49532600678503513, + "containment_ms": 0.6409274792531505, + "route_input_materialisation_ms": 0.3753629862330854, + "general_gather_reference_ms": 0.9771344775799662, + "step0_route": "library default (structured)", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 1.1362534860381857, + "containment_share_of_step0": 0.5640708584207689, + "step0_share_of_likelihood": 0.5734866915626643, + "containment_share_of_likelihood": 0.3234871304026388 + }, + "step0_gather": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.19389849330764264, + "ray_trace": 0.6829854828538373, + "general_gather": 1.6568650025874376, + "route_inputs": 2.476145513355732, + "containment": 2.588949486380443 + }, + "ray_trace_ms": 0.4890869895461947, + "containment_ms": 1.9059640035266057, + "route_input_materialisation_ms": 1.7931600305018947, + "general_gather_reference_ms": 0.9738795197336003, + "step0_route": "gather", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 2.3950509930728003, + "containment_share_of_step0": 0.795792661216492, + "step0_share_of_likelihood": 0.7523006291233452, + "containment_share_of_likelihood": 0.5986753196849081 + }, + "step0_components": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.194973501493223, + "ray_trace": 0.6865415052743629, + "general_gather": 1.6950749995885417, + "route_inputs": 0.7423055067192763, + "containment": 1.2807320163119584 + }, + "ray_trace_ms": 0.49156800378113985, + "containment_ms": 0.5941905110375956, + "route_input_materialisation_ms": 0.05576400144491345, + "general_gather_reference_ms": 1.0085334943141788, + "step0_route": "components", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 1.0857585148187354, + "containment_share_of_step0": 0.5472584400010845, + "step0_share_of_likelihood": 0.5485670738490159, + "containment_share_of_likelihood": 0.3002079610705722 + }, + "step0_structured": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.19408400112297386, + "ray_trace": 0.6752350018359721, + "general_gather": 1.6681999986758456, + "route_inputs": 1.081733003957197, + "containment": 1.322141513810493 + }, + "ray_trace_ms": 0.4811510007129982, + "containment_ms": 0.646906511974521, + "route_input_materialisation_ms": 0.406498002121225, + "general_gather_reference_ms": 0.9929649968398735, + "step0_route": "structured", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 1.1280575126875192, + "containment_share_of_step0": 0.5734694416717379, + "step0_share_of_likelihood": 0.5722716099899454, + "containment_share_of_likelihood": 0.3281802806655206 + } + }, + "uncapped_containing_counts": { + "control": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "step0_structured": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + } + }, + "gates": { + "fiducial_bit_exact": { + "value": 7.743201200876812, + "expected": 7.743201200876812, + "repr": "7.743201200876812", + "pass": true + }, + "max_containing_size_patch": { + "control": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_gather": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_components": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_structured": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "grad": { + "control": { + "compile_s": 6.495404627989046, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503027, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.391945981619, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624765, + 41.85589438434542, + 53.12915308132679, + -17.18919451496125, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_gather": { + "compile_s": 6.57684411801165, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503027, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.391945981619, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624765, + 41.85589438434542, + 53.12915308132679, + -17.18919451496125, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_components": { + "compile_s": 6.85879500900046, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503027, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.391945981619, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624765, + 41.85589438434542, + 53.12915308132679, + -17.18919451496125, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_structured": { + "compile_s": 6.860316837992286, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503027, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.391945981619, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624765, + 41.85589438434542, + 53.12915308132679, + -17.18919451496125, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + } + }, + "step0_route_bit_identity": { + "step0_gather": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + } + } + }, + "all_gates_pass": true, + "completeness_compile": { + "control_prior": { + "lower_s": 3.6646697859978303, + "compile_s": 5.636730425991118, + "first_call_s": 0.003247840009862557, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 901592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 10899456, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.1472945710120257, + "compile_s": 1.7533260129857808, + "first_call_s": 0.0026635540125425905, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2746879.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 901144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": -356352, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_prior": { + "lower_s": 3.5573216050106566, + "compile_s": 5.378276742005255, + "first_call_s": 0.003813096001977101, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3375104, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_stress": { + "lower_s": 1.0385473190108314, + "compile_s": 1.6881609720003325, + "first_call_s": 0.00352899800054729, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3328952.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1003520, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_prior": { + "lower_s": 3.7053968050167896, + "compile_s": 5.37164963199757, + "first_call_s": 0.002701863006222993, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3578378.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1506200, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7471104, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_stress": { + "lower_s": 1.0494220610125922, + "compile_s": 1.699748401006218, + "first_call_s": 0.002424865000648424, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3523916.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1506072, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1650688, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_prior": { + "lower_s": 3.6218338290054817, + "compile_s": 5.501567266008351, + "first_call_s": 0.002743103977991268, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 901592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3964928, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_stress": { + "lower_s": 1.0632718060223851, + "compile_s": 1.7362065069901291, + "first_call_s": 0.0025230039900634438, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2746879.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 901144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1048576, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + } + }, + "progress": [ + "[ 5.4 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 38.5 s] reference reference solved on 200 prior + 200 stress draws (compile 2.1 s)", + "[ 63.8 s] reference reference_b solved on 200 prior + 200 stress draws (compile 2.3 s)", + "[ 63.8 s] reference floor: {\"prior\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423151782, \"p99_position_error\": 0.0001280749711777913, \"median_position_error\": 5.9668954361473236e-05, \"ref_distinct_histogram\": {\"2\": 21, \"4\": 179}, \"abs_delta_logl_vs_reference\": {\"max\": 0.09204751533968647, \"p99\": 0.06845503627316121, \"median\": 0.004628222675307825, \"n_nonfinite_mismatch\": 0}}, \"stress\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423129578, \"p99_position_error\": 0.00014084184669768283, \"median_position_error\": 5.966895436132821e-05, \"ref_distinct_histogram\": {\"2\": 163, \"4\": 37}}}", + "[ 116.4 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 116.4 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 116.4 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 116.5 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 116.5 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}}", + "[ 116.5 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 147.4 s] timing: 20 rounds x 20 calls x 4 routes done", + "[ 148.1 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True", + "[ 193.3 s] grad gate: control=True, step0_gather=True, step0_components=True, step0_structured=True", + "[ 193.3 s] best admissible (precision-equivalent): step0_structured; any precision: step0_structured", + "[ 349.9 s] vmap: control_vmap1 1.998 ms/L, control_vmap4 1.442 ms/L, control_vmap16 1.139 ms/L, step0_gather_vmap1 3.255 ms/L, step0_gather_vmap4 2.494 ms/L, step0_gather_vmap16 2.121 ms/L, step0_components_vmap1 2.020 ms/L, step0_components_vmap4 1.380 ms/L, step0_components_vmap16 1.166 ms/L, step0_structured_vmap1 2.023 ms/L, step0_structured_vmap4 1.446 ms/L, step0_structured_vmap16 1.133 ms/L", + "[ 350.0 s] step-0 route bit-identity vs control: step0_gather=True, step0_components=True, step0_structured=True", + "[ 350.0 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 370.6 s] step-0 split: control trace 0.495 contain 0.641, step0_gather trace 0.489 contain 1.906, step0_components trace 0.492 contain 0.594, step0_structured trace 0.481 contain 0.647", + "[ 370.6 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 394.2 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]", + "[ 416.8 s] uncapped step0_structured: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]" + ], + "wall_s": 416.85579955001594 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.png new file mode 100644 index 000000000..2b6fc4849 Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.png differ diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.json new file mode 100644 index 000000000..2d7764e68 --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.json @@ -0,0 +1,4704 @@ +{ + "cell": "solver_config_sweep_step0", + "issue": "PyAutoLabs/PyAutoArray#579", + "phase": "4b", + "step0_routes": [ + "control", + "gather", + "components", + "structured" + ], + "library_step0_default": "structured", + "config_name": "hpc_ral_cpu_fp64", + "quotable": true, + "host_note": null, + "quick": false, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "311e690fd6c843fe38e5a228628b4417890694f2", + "PyAutoNerves": "eb27da2464e2f07e0ad67e7fb18ee84be76c479a", + "PyAutoFit": "5468c6cefa0ae8bb08a449497cbd3c620f3720e2", + "PyAutoArray": "c13b2d733538bec86cff3a15eccd9a0940a68463", + "PyAutoGalaxy": "879a9308b709b3705eb95904de6b349a5c034d61", + "PyAutoLens": "def4decf68a245a9c3dd1eb276ee0578897b220c" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather", + "autolens_imported_from": "/mnt/ral/jnightin/PyAuto/PyAutoLens", + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "euclid-ral-compute-10-4", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "1", + "cpu_count": 236, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "Intel(R) Xeon(R) Platinum 8490H", + "cpu_count_os": 236, + "nproc": 1, + "nproc_all": 236, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "1010827848 kB", + "kernel": "5.14.0-687.50.1.el9_8.x86_64", + "platform": "Linux-5.14.0-687.50.1.el9_8.x86_64-x86_64-with-glibc2.34", + "python": "3.12.4", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "VECLIB_MAXIMUM_THREADS": null, + "NUMEXPR_NUM_THREADS": null + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": null + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "1", + "OPENBLAS_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1" + }, + "sched_affinity": 8, + "os_cpu_count": 236, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 199.87, + 197.55, + 198.5 + ], + "loadavg_end": [ + 189.92, + 196.83, + 198.49 + ], + "protocol": { + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "seed": 314, + "n_prior_draws": 200, + "n_stress_draws": 200, + "step0_rounds": 10, + "vmap_batches": [ + 1, + 4, + 16 + ], + "route_order": "round-robin over every config, start rotated each round", + "cache_trap_guard": "fresh closure + fresh solver/analysis per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "admissible": "100% distinct-multiplicity agreement with the reference on the prior draws AND max position error <= 0.002\"", + "admissible_position_tol": 0.002, + "position_noise_sigma": 0.05, + "distinct_tol": 0.005, + "prior_draws": "full prior: vector_from_unit_vector(U(1e-4, 1-1e-4)); source = solved beta*", + "stress_draws": "OUTSIDE the prior: Isothermal centre U(-0.05,0.05), theta_E U(1,2), ell_comps U(-0.2,0.2), source centre U(-0.4,0.4); plain FitPositionsImagePairAll positions", + "reference": { + "name": "reference", + "block": "reference", + "extent": 12.0, + "scale": 0.05, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "reference_b": { + "name": "reference_b", + "block": "reference", + "extent": 11.0, + "scale": 0.07, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "max_containing_size_patch": "ArrayTriangles.__init__ / for_limits_and_scale __defaults__ + module constant, tracing only, restored by value", + "pytrees": "autofit.jax.register_model(model) for both models before any trace" + }, + "configs": [ + { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + } + ], + "static": { + "control": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "step0_gather": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "step0_components": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "step0_structured": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "reference": { + "extent_half_width": [ + 12.0, + 12.0 + ], + "limits": [ + -12.0, + 12.0, + -12.0, + 12.0 + ], + "scale": 0.05, + "pixel_scale_precision": 0.0001, + "n_steps": 9, + "n_steps_formula": "ceil(log2(0.05 / 0.0001))", + "last_step_triangle_side": 0.0001953125, + "step0_triangles": 535277, + "step0_rows": 268677, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "reference_b": { + "extent_half_width": [ + 11.0, + 11.0 + ], + "limits": [ + -11.0, + 11.0, + -11.0, + 11.0 + ], + "scale": 0.07, + "pixel_scale_precision": 0.0001, + "n_steps": 10, + "n_steps_formula": "ceil(log2(0.07 / 0.0001))", + "last_step_triangle_side": 0.00013671875, + "step0_triangles": 229585, + "step0_rows": 115473, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + } + }, + "reference_floor": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423151782, + "p99_position_error": 0.0001280749711777913, + "median_position_error": 5.9668954361473236e-05, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.09204751533968647, + "p99": 0.06845503627316121, + "median": 0.004628222675307825, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423129578, + "p99_position_error": 0.00014084184669768283, + "median_position_error": 5.966895436132821e-05, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "reference_max_finite_positions": { + "prior": 4, + "stress": 4 + }, + "reference_compile": { + "reference_prior": { + "lower_s": 10.060315753013128, + "compile_s": 11.6538036299753, + "first_call_s": 0.03160825901431963, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 48502648.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 17361496, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 449953792, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 2.255625616002362, + "compile_s": 2.9262410230003297, + "first_call_s": 0.0260827970050741, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 47671892.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 17361048, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7585792, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 7.306371496990323, + "compile_s": 13.036068585002795, + "first_call_s": 0.01250081299804151, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 23082492.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 7566936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 52080640, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 1.8269656740012579, + "compile_s": 3.246219435997773, + "first_call_s": 0.010487619001651183, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 22251710.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 7566488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2326528, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + } + }, + "default_vs_reference": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + }, + "agrees_on_every_prior_draw": true, + "agrees_on_every_stress_draw": true, + "stress_mismatch_examples": [] + }, + "admissibility": { + "control": true, + "step0_gather": true, + "step0_components": true, + "step0_structured": true + }, + "precision_equivalent": { + "control": true, + "step0_gather": true, + "step0_components": true, + "step0_structured": true + }, + "reference_image_extent": { + "prior": { + "max_abs_y": 1.77939453125, + "max_abs_x": 1.7773254429359933, + "max_abs_coord": 1.77939453125, + "p99_abs_coord": 1.7590830914129167, + "max_radius": 1.8116226317743076 + }, + "stress": { + "max_abs_y": 2.2498046875, + "max_abs_x": 2.300267215077964, + "max_abs_coord": 2.300267215077964, + "p99_abs_coord": 2.2027852305644777, + "max_radius": 2.5191249773380773 + } + }, + "extent_working": "prior: theta_E <= 1.6 + 4*0.05 = 1.8; |e| <= 0.0526 + 4*0.01 ~ 0.09 -> q ~ 0.83; SIE images lie within ~theta_E/sqrt(q) + |beta| ~ 1.98 + 0.1 ~ 2.1 arcsec of the centre, so boxes of +-6 / +-4 / +-3 / +-2.5 bracket it; reference_image_extent is the measured value", + "best_admissible": "step0_components", + "best_admissible_any_precision": "step0_components", + "table": [ + { + "config": "control", + "block": "control", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.5761569811729714, + "speedup": 1.0, + "speedup_ci90": [ + 0.988855997982134, + 1.010726696775158 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 5.808565878978698, + "flops": 2801341.0, + "temp_bytes": 901656 + }, + { + "config": "step0_gather", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 2.260284003568813, + "speedup": 0.6973269636401186, + "speedup_ci90": [ + 0.682987842519193, + 0.7129293895293143 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 5.373007704998599, + "flops": 3383414.0, + "temp_bytes": 1692120 + }, + { + "config": "step0_components", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.5498150169150904, + "speedup": 1.0169968441203485, + "speedup_ci90": [ + 0.9967895359080113, + 1.0302721082861257 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 5.675205477018608, + "flops": 3578378.0, + "temp_bytes": 1506264 + }, + { + "config": "step0_structured", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.5700014919275418, + "speedup": 1.0039206900611746, + "speedup_ci90": [ + 0.9895092789636317, + 1.0199336598834796 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 5.827341369993519, + "flops": 2801341.0, + "temp_bytes": 901656 + } + ], + "rows": { + "control": { + "config": { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 1.5761569811729714, + "p10_ms": 1.318818487925455, + "p90_ms": 1.8483875959645957, + "min_ms": 1.1586030013859272, + "max_ms": 2.1496879926417023, + "mean_ms": 1.5815421168372268 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.988855997982134, + "ci90_high": 1.010726696775158, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 2.846633198991185, + "compile_s": 5.808565878978698, + "first_call_s": 0.0027086699847131968, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901656, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3354624, + "max_containing_size_proof": null + }, + "warm_ms": [ + 4.48337200214155, + 1.6438009915873408, + 1.9156589987687767 + ], + "per_call_ms": [ + 1.7269959789700806, + 1.8580800096970052, + 1.4896439970470965, + 1.739761995850131, + 1.5584570064675063, + 1.5553130069747567, + 1.7558280087541789, + 1.6220499819610268, + 1.5751020109746605, + 1.5461989969480783, + 1.6397350118495524, + 1.5925189945846796, + 1.8817649979609996, + 1.5485580079257488, + 1.647039025556296, + 1.698712003417313, + 1.7156850080937147, + 1.508246990852058, + 2.013856981648132, + 1.9271970086265355, + 1.4850409934297204, + 1.6064200026448816, + 1.5391369815915823, + 1.851570006692782, + 1.8571929831523448, + 1.3193489867262542, + 1.4744730142410845, + 1.4783119841013104, + 1.6465680091641843, + 1.6482750070281327, + 1.7289730021730065, + 1.2572609994094819, + 1.5561740146949887, + 1.1701160110533237, + 1.6231040062848479, + 1.2879019777756184, + 1.5128759841900319, + 1.3644770078826696, + 1.6908689867705107, + 1.8829669861588627, + 1.5700079966336489, + 1.4584540040232241, + 1.7264420166611671, + 1.562166988151148, + 1.405526971211657, + 1.6376590065192431, + 1.394883991451934, + 1.6770020010881126, + 1.621617004275322, + 1.8174280121456832, + 1.5760889800731093, + 1.5239930071402341, + 1.6736160032451153, + 1.4038019871804863, + 1.520056976005435, + 1.3714020024053752, + 1.3950790162198246, + 1.3863710046280175, + 1.4409930154215544, + 1.4505079889204353, + 1.5039549907669425, + 1.5637009928468615, + 1.3706079917028546, + 1.7954509821720421, + 1.7043270054273307, + 1.40560299041681, + 1.5534090052824467, + 2.04867499996908, + 1.484825013903901, + 1.4791559951845556, + 1.829749991884455, + 1.519170997198671, + 1.4800179924350232, + 1.4502019912470132, + 1.653571001952514, + 1.3140439987182617, + 1.436958002159372, + 1.42605701694265, + 1.3878729951102287, + 1.3736750115640461, + 1.6091910074464977, + 1.8469939823262393, + 1.8612410058267415, + 1.6540480137337, + 1.8871540087275207, + 1.5609099937137216, + 1.8256859912071377, + 1.4756529999431223, + 1.56770899775438, + 1.4955160149838775, + 1.4397829945664853, + 1.5805680013727397, + 1.9755649846047163, + 1.656592998187989, + 1.5177119930740446, + 1.5146299847401679, + 1.9027089874725789, + 1.580582989845425, + 1.636487984796986, + 1.8657789914868772, + 1.6663620190229267, + 1.7194859974551946, + 1.7066019936464727, + 1.700052001979202, + 1.6432319825980812, + 1.5661079960409552, + 1.5653799928259104, + 1.6937669715844095, + 1.6302480071317405, + 1.5189599944278598, + 1.5952560061123222, + 1.5782889968249947, + 1.6558330098632723, + 1.7030310118570924, + 1.9521500216796994, + 1.737191982101649, + 1.635149004869163, + 1.777361991116777, + 2.1274870086926967, + 1.5862699947319925, + 1.5086130006238818, + 1.5796410152688622, + 1.379120978526771, + 1.590797008248046, + 1.4967420138418674, + 1.3748319761361927, + 1.5855919918976724, + 1.5008389891590923, + 1.7610560171306133, + 1.5067450003698468, + 1.381279987981543, + 1.7803650116547942, + 1.4867670251987875, + 1.3514700112864375, + 1.4297360030468553, + 1.35127198882401, + 1.355385989882052, + 1.352326013147831, + 1.5000819985289127, + 1.5243660018313676, + 1.8899739952757955, + 1.939343987032771, + 1.6647529846522957, + 1.6255970112979412, + 1.56198997865431, + 1.695075014140457, + 1.5740229864604771, + 1.578758005052805, + 1.6234239737968892, + 1.5685080143157393, + 1.5182280039880425, + 1.5067800122778863, + 1.873153989436105, + 1.407211006153375, + 1.5895100077614188, + 1.4992840006016195, + 1.5143180207815021, + 1.6340079891961068, + 1.8577779992483556, + 1.474244985729456, + 2.014173980569467, + 1.995942002395168, + 1.9636430079117417, + 1.8839480180758983, + 1.7822190129663795, + 1.8482659943401814, + 1.7309329996351153, + 1.996474020415917, + 1.871702988864854, + 1.6032120038289577, + 1.9092060101684183, + 1.7007850110530853, + 1.7848589923232794, + 1.7223950126208365, + 1.6769889916758984, + 1.7510559991933405, + 1.655847008805722, + 1.9456050067674369, + 1.8129160162061453, + 1.5993790002539754, + 1.5450749779120088, + 1.5643830120097846, + 1.4521100092679262, + 1.7643889877945185, + 1.3221650151535869, + 1.6067590040620416, + 1.4432909956667572, + 1.7407409904990345, + 1.7623110034037381, + 1.4041359827388078, + 1.4978050021454692, + 1.7671899986453354, + 1.4374059974215925, + 1.3370699889492244, + 1.3544389803428203, + 1.6351359954569489, + 1.2881580041721463, + 1.5784169954713434, + 1.4225529739633203, + 1.476202014600858, + 1.4891479804646224, + 1.583095989190042, + 1.3015590084251016, + 1.3567800051532686, + 1.2745080166496336, + 1.2745870044454932, + 1.6513910086359829, + 1.2585630174726248, + 1.4367680123541504, + 1.3675229856744409, + 1.2118399899918586, + 1.2589319958351552, + 1.2264719989616424, + 1.50664898683317, + 1.569015992572531, + 1.603715994860977, + 1.2940969900228083, + 1.2438289995770901, + 1.2587789969984442, + 1.2588370009325445, + 1.5415710222441703, + 1.5972419932950288, + 1.298175979172811, + 1.5786160074640065, + 1.2510159867815673, + 1.262689009308815, + 1.243176986463368, + 1.2922530004289001, + 1.2903919850941747, + 1.2655349855776876, + 1.402621011948213, + 1.1844410037156194, + 1.1586030013859272, + 1.2143710046075284, + 1.5921810118015856, + 1.622001000214368, + 1.393578015267849, + 1.5952200046740472, + 1.2557430018205196, + 1.1839260114356875, + 2.13073001941666, + 2.0505870052147657, + 1.5409990155603737, + 1.6247059975285083, + 1.471486990340054, + 1.493530988227576, + 1.493265008321032, + 1.6052430146373808, + 1.5656930045224726, + 1.8387830059509724, + 1.6778600111138076, + 1.5380209952127188, + 1.751236995914951, + 1.5587899833917618, + 1.627786026801914, + 1.4889889862388372, + 1.5579640166833997, + 1.7424150137230754, + 1.4359769993461668, + 1.5647090040147305, + 1.5651920111849904, + 1.7584640008863062, + 1.5088460058905184, + 1.6864319914020598, + 1.682823000010103, + 1.7272839904762805, + 1.5455489919986576, + 1.7000219959300011, + 1.754046999849379, + 1.6774579999037087, + 1.5345090068876743, + 1.803584978915751, + 1.534442009869963, + 1.9887480011675507, + 1.6921059868764132, + 1.6527699772268534, + 1.9023589848075062, + 1.6822050092741847, + 1.7229710065294057, + 1.8551709945313632, + 1.655241008847952, + 1.6856000002007931, + 1.8930980004370213, + 1.8413069774396718, + 1.5739210066385567, + 1.8494820105843246, + 1.520060992334038, + 1.6949900018516928, + 1.532764988951385, + 1.5611129929311574, + 1.6927790129557252, + 1.5879340062383562, + 1.6217100201174617, + 1.780268008587882, + 1.5475719992537051, + 1.766188011970371, + 1.492933020927012, + 1.603393000550568, + 1.8599310133140534, + 1.6241429839283228, + 1.7841430089902133, + 1.7600120045244694, + 1.595918001839891, + 1.6031470149755478, + 1.4903050032444298, + 1.5753330080769956, + 1.6653529892209917, + 1.308133010752499, + 1.5944170008879155, + 1.3489930133800954, + 1.5575489960610867, + 1.3354459952097386, + 1.3390860112849623, + 1.2327599979471415, + 1.6285660094581544, + 1.8743689870461822, + 1.6573689936194569, + 1.802991988370195, + 2.1496879926417023, + 1.5826859744265676, + 1.7679890152066946, + 1.5615489974152297, + 1.6181039973162115, + 1.687904994469136, + 1.3116239861119539, + 1.2692899908870459, + 1.3948619889561087, + 1.4976260135881603, + 1.417188992490992, + 1.482366002164781, + 1.2374539801385254, + 1.2620330089703202, + 1.1909629974979907, + 1.2477790005505085, + 1.1875409982167184, + 1.2216210016049445, + 1.4936169900465757, + 1.2447659973986447, + 1.2421200226526707, + 1.7495819774921983, + 1.5356040094047785, + 1.9059029873460531, + 1.5630550042260438, + 1.8131629913114011, + 1.5457300178240985, + 1.6434139979537576, + 1.7257340077776462, + 1.6509140259586275, + 1.7167409823741764, + 1.8293559842277318, + 1.584259996889159, + 1.5998579910956323, + 1.584929006639868, + 1.9558679778128862, + 1.6388060175813735, + 1.7049500020220876, + 1.6164819826371968, + 1.6966510156635195, + 1.5918090066406876, + 1.5537099970970303, + 1.6399419982917607, + 1.5183019859250635, + 1.5762249822728336, + 1.5373209898825735, + 1.538040000014007, + 1.5321160026360303, + 1.5223880182020366, + 1.7867340066004544, + 1.483252999605611, + 1.5905449981801212, + 1.4581580180674791, + 1.453210978070274, + 1.4362839865498245, + 1.4645210176240653, + 1.476489007472992, + 1.4165369793772697, + 1.6394520062021911, + 1.488629000959918, + 1.5083719918038696, + 1.4733719872310758, + 1.5903520106803626, + 1.4492009941022843, + 1.6266820020973682, + 1.4747510140296072, + 1.576881972141564, + 1.439648011000827, + 1.8275130132678896, + 1.6064639785327017, + 1.4264790224842727, + 1.4257629809435457, + 1.4987869944889098, + 1.7376159958075732, + 1.7305870132986456, + 1.890379993710667, + 1.645719981752336, + 1.6902359784580767, + 1.4637009880971164, + 1.722769986372441, + 1.3660799886565655, + 1.45960200461559 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_gather": { + "config": { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "stats": { + "n": 400, + "median_ms": 2.260284003568813, + "p10_ms": 1.8454876000760123, + "p90_ms": 2.6572969130938873, + "min_ms": 1.5768750163260847, + "max_ms": 3.1036170257721096, + "mean_ms": 2.2473222220287425 + }, + "speedup_vs_control": { + "ratio": 0.6973269636401186, + "ci90_low": 0.682987842519193, + "ci90_high": 0.7129293895293143, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.6718295154411158, + "p10": 0.6121171365402884, + "p90": 0.7958508634304995 + }, + "compile": { + "lower_s": 2.8550514060189016, + "compile_s": 5.373007704998599, + "first_call_s": 0.0035000000207219273, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5861376, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.3952960036695004, + 2.2454440186265856, + 2.1826969750691205 + ], + "per_call_ms": [ + 2.8801340085919946, + 2.6572910137474537, + 2.6857930060941726, + 2.693807997275144, + 2.1018469997216016, + 2.614164986880496, + 2.6739020249806345, + 2.5881359761115164, + 2.213706000475213, + 2.5710290065035224, + 1.9449109968263656, + 2.1431230125017464, + 2.652789989951998, + 2.227482997113839, + 2.382658014539629, + 2.021288004470989, + 1.768387999618426, + 2.0552310161292553, + 2.1510990045499057, + 2.5736309762578458, + 2.3003729875199497, + 2.7001039998140186, + 2.15329002821818, + 2.490598999429494, + 2.6675270055420697, + 2.695811999728903, + 2.612687007058412, + 2.8770030185114592, + 2.6417569897603244, + 2.280326996697113, + 2.3158359981607646, + 2.3785230005159974, + 2.2926089877728373, + 2.310949988896027, + 1.7618770070839673, + 2.4267510161735117, + 1.8820049881469458, + 2.1273370075505227, + 2.404950006166473, + 1.863552985014394, + 1.9447119848337024, + 1.895168999908492, + 2.4697009939700365, + 2.5992199953179806, + 1.8483050225768238, + 2.337565994821489, + 2.353788004256785, + 1.8754230113700032, + 1.8668319971766323, + 1.9086470128968358, + 1.906124991364777, + 1.9406320061534643, + 2.3958630044944584, + 2.536534011596814, + 2.428334002615884, + 1.7771070124581456, + 1.712867000605911, + 1.9077640026807785, + 2.288220974151045, + 2.252797974506393, + 1.9883629865944386, + 1.9242289999965578, + 1.8089820223394781, + 1.830833003623411, + 1.849444000981748, + 2.261510002426803, + 1.8606280209496617, + 1.7599849961698055, + 1.7569990013726056, + 1.7503249982837588, + 1.8460999999660999, + 1.7431339947506785, + 1.8751269963104278, + 1.6935050080064684, + 1.7725990037433803, + 2.2609230072703212, + 2.2457889863289893, + 1.7799559864215553, + 2.284563990542665, + 2.3135209921747446, + 2.80094999470748, + 2.0773560099769384, + 2.126336010405794, + 1.9799399888142943, + 2.1834869985468686, + 2.5788449856918305, + 2.2083089861553162, + 2.5900060136336833, + 2.662066981429234, + 2.581537002697587, + 2.6831540162675083, + 2.2263640130404383, + 2.5952889991458505, + 3.1036170257721096, + 2.203562995418906, + 2.538405009545386, + 2.3549830075353384, + 2.5739039992913604, + 2.1992399997543544, + 2.186848985729739, + 2.672442002221942, + 2.048787981038913, + 2.4731169978622347, + 2.4926790210884064, + 2.7518300048541278, + 2.3276169958990067, + 2.7564159827306867, + 2.712924004299566, + 2.902590000303462, + 2.7775719936471432, + 2.2991290024947375, + 2.228258003015071, + 2.801961003569886, + 2.8475770086515695, + 2.881330990931019, + 2.2562449739780277, + 2.1629520051646978, + 2.220936003141105, + 2.9995439981576055, + 2.147207997040823, + 2.0044810080435127, + 2.4983049952425063, + 2.4977169814519584, + 2.439598989440128, + 2.3635170073248446, + 2.4932859814725816, + 1.8919559952337295, + 2.3124430153984576, + 1.9754120148718357, + 2.7036870014853776, + 2.4697339977137744, + 2.7967180067207664, + 1.9283420115243644, + 1.8908740021288395, + 1.9840650202240795, + 1.9361749873496592, + 2.238597982795909, + 2.466887002810836, + 2.334960998268798, + 2.3801520001143217, + 2.116938994731754, + 2.0275719871278852, + 2.0623730088118464, + 2.5773249799385667, + 2.021252003032714, + 2.489076985511929, + 2.6165320014115423, + 2.6268349902238697, + 2.0270839740987867, + 2.0720759930554777, + 2.025566005613655, + 2.6132740022148937, + 2.1253910090308636, + 2.6363689976278692, + 2.036562014836818, + 2.6103589916601777, + 2.6646720070857555, + 2.7735519979614764, + 2.827324002282694, + 2.169055020203814, + 2.957902994239703, + 2.853912999853492, + 2.0084450079593807, + 2.0117299864068627, + 2.101685997331515, + 2.1123740007169545, + 2.657959994394332, + 2.411713998299092, + 2.501198003301397, + 2.008576993830502, + 2.514027990400791, + 2.427771978545934, + 1.903062016936019, + 2.0177210099063814, + 2.347456000279635, + 2.0250939996913075, + 2.3681489983573556, + 2.0018669893033803, + 2.5255419895984232, + 1.9412510155234486, + 1.8399760010652244, + 2.4247749825008214, + 1.8651849823072553, + 1.804113999241963, + 2.27591599104926, + 2.3815430176910013, + 2.3429169959854335, + 1.7624309984967113, + 2.256114996271208, + 2.1210040140431374, + 1.5871729992795736, + 1.612168998690322, + 1.5768750163260847, + 1.6175579803530127, + 2.1187500096857548, + 2.247942000394687, + 2.266249997774139, + 2.5098499900195748, + 2.4302520032506436, + 1.8962949980050325, + 2.645050990395248, + 2.665170992258936, + 1.9941259815823287, + 1.9228910095989704, + 1.8748700094874948, + 1.858134986832738, + 2.631497016409412, + 1.9341319857630879, + 2.3756599985063076, + 2.470151986926794, + 2.426326012937352, + 2.416872011963278, + 2.2855050046928227, + 1.981329987756908, + 2.2704699949827045, + 1.91890200949274, + 1.9775400287471712, + 2.210884995292872, + 1.7303579952567816, + 1.686978997895494, + 2.553555998019874, + 2.36196699552238, + 1.8150309915654361, + 1.717203005682677, + 2.3838589841034263, + 1.6460869810543954, + 1.7022830143105239, + 1.6638219822198153, + 1.6522039950359613, + 2.4985189957078546, + 2.5524430093355477, + 2.452598011586815, + 2.5445949868299067, + 2.444451005430892, + 2.281755005242303, + 2.3842650116421282, + 1.9791210070252419, + 1.855525013525039, + 2.397398988250643, + 1.8818009993992746, + 2.573280013166368, + 2.167158992961049, + 2.0555660012178123, + 2.834230981534347, + 2.1869849879294634, + 2.0275419810786843, + 1.9004530040547252, + 1.7546100134495646, + 1.7717999871820211, + 2.188881015172228, + 1.7864959954749793, + 2.247561002150178, + 2.479538001352921, + 2.650069975061342, + 1.9844349881168455, + 1.911981002194807, + 1.9331600051373243, + 2.2768389899283648, + 1.8029840139206499, + 2.2137269843369722, + 2.743724995525554, + 2.2746750037185848, + 2.5889420066960156, + 2.1561839967034757, + 2.436832000967115, + 1.908363978145644, + 2.0659779838752, + 1.8531259847804904, + 2.3132010246627033, + 2.371546986978501, + 2.042058011284098, + 2.6289359957445413, + 2.065943001070991, + 2.1367709850892425, + 2.5970489950850606, + 2.1644289954565465, + 2.3138239921536297, + 2.003522007726133, + 1.956524996785447, + 1.8583550117909908, + 2.656257973285392, + 2.088449022267014, + 2.205615979619324, + 2.5519330229144543, + 2.845618990249932, + 2.1383990242611617, + 2.624423010274768, + 2.6150650228373706, + 2.762725984212011, + 2.6153850194532424, + 2.259644999867305, + 2.022799017140642, + 2.0029190054629, + 2.444935991661623, + 2.063455991446972, + 2.4888940097298473, + 2.506728982552886, + 2.6644949975889176, + 2.487632998963818, + 2.006797003559768, + 3.009256994118914, + 2.692109002964571, + 2.6573500072117895, + 2.566559996921569, + 2.623015985591337, + 2.4426800082437694, + 2.373933995841071, + 2.014405996305868, + 1.802838989533484, + 2.36157001927495, + 1.8228080007247627, + 1.8648520053829998, + 1.8969119992107153, + 2.3079000238794833, + 2.3198850103653967, + 1.9488840189296752, + 2.1873179939575493, + 1.7746419762261212, + 2.1939720027148724, + 2.1813669882249087, + 2.01867101714015, + 2.4236299796029925, + 2.3588589974679053, + 1.8158259917981923, + 2.7093690005131066, + 2.534412022214383, + 2.262206020532176, + 2.4554840056225657, + 2.613098011352122, + 2.3989859910216182, + 2.5520939962007105, + 2.5922280037775636, + 1.8967590003740042, + 2.324234985280782, + 1.9248189928475767, + 2.3855000035837293, + 2.381242986302823, + 2.1227480028755963, + 2.5450559915043414, + 2.5364180037286133, + 2.6449209835845977, + 2.1661199862137437, + 2.0620289724320173, + 2.3836550244595855, + 2.614021999761462, + 2.5952540163416415, + 1.9768369966186583, + 2.0138440013397485, + 1.9598710059653968, + 1.8469330098014325, + 1.8070849764626473, + 2.3684310144744813, + 1.855088019510731, + 1.8567980150692165, + 2.0658380235545337, + 1.821045996621251, + 2.2571489971596748, + 2.427654020721093, + 1.8988269730471075, + 2.18984397361055, + 2.025300986133516, + 2.0338470058050007, + 2.041494008153677, + 2.575047983555123, + 1.9096739997621626, + 2.526544005377218, + 1.9791579979937524, + 1.9872169941663742, + 2.0138949912507087, + 1.857579976785928, + 2.334947988856584, + 2.319338993402198, + 2.379959012614563, + 2.3591030039824545, + 2.4474469828419387, + 2.3917339858599007, + 2.5055309815797955, + 2.3628739872947335, + 1.8319240189157426, + 2.4341120151802897, + 2.523441013181582, + 2.549733006162569, + 2.582347020506859, + 1.9960349891334772, + 1.9222849805373698, + 2.3850229918025434, + 1.8830040062312037, + 1.8315209890715778, + 1.991867000469938, + 2.538856992032379, + 2.5978710036724806, + 2.3750569962430745, + 1.926552999066189, + 2.4697489861864597, + 2.390098001342267, + 1.9314850214868784, + 2.23449501208961, + 2.47197799035348, + 1.9075910095125437, + 1.8608719983603805 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "config": { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "stats": { + "n": 400, + "median_ms": 1.5498150169150904, + "p10_ms": 1.3564564083935693, + "p90_ms": 1.802744407905266, + "min_ms": 1.1811970034614205, + "max_ms": 2.1287230192683637, + "mean_ms": 1.571446847738116 + }, + "speedup_vs_control": { + "ratio": 1.0169968441203485, + "ci90_low": 0.9967895359080113, + "ci90_high": 1.0302721082861257, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9924777587781537, + "p10": 0.8744916194630085, + "p90": 1.1252756334893796 + }, + "compile": { + "lower_s": 3.0910703249974176, + "compile_s": 5.675205477018608, + "first_call_s": 0.0028512069839052856, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3578378.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1506264, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5419008, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.8836469971574843, + 1.6176989884115756, + 1.710023992927745 + ], + "per_call_ms": [ + 1.843616017140448, + 1.758143975166604, + 1.6554800095036626, + 1.841580990003422, + 1.8912569794338197, + 2.1287230192683637, + 1.611382991541177, + 1.4941359986551106, + 1.481170009355992, + 1.7930660105776042, + 1.7619889986235648, + 1.4412949967663735, + 1.5892140218056738, + 1.8111109966412187, + 1.7645609914325178, + 1.5586410008836538, + 1.5169359976425767, + 1.707301998976618, + 1.5229179989546537, + 1.4853150059934705, + 1.6779130091890693, + 1.9350300135556608, + 1.5194659936241806, + 1.5547259827144444, + 1.770558999851346, + 1.4771940186619759, + 1.3874459837097675, + 1.525181985925883, + 1.625839009648189, + 1.356521010166034, + 1.4989299816079438, + 1.585816004080698, + 1.6799559816718102, + 1.400873006787151, + 1.6163770051207393, + 1.4763789949938655, + 1.4274020213633776, + 1.7996859969571233, + 1.3991300074849278, + 1.5532879915554076, + 1.6640019894111902, + 1.449705014238134, + 1.420216984115541, + 1.6242809942923486, + 1.7222379974555224, + 1.3808989897370338, + 1.3898059842176735, + 1.496636978117749, + 1.9220620160922408, + 1.343437994364649, + 1.5514159749727696, + 1.2233160086907446, + 1.355874992441386, + 1.311596017330885, + 1.265864004381001, + 1.3367990031838417, + 1.3934540038462728, + 1.4399620122276247, + 1.3308920024428517, + 1.26496099983342, + 1.7117480165325105, + 1.6242080018855631, + 1.6752420051489025, + 1.4701850013807416, + 1.3330090150702745, + 1.4631570084020495, + 1.3426160148810595, + 1.55570000060834, + 1.3662859855685383, + 1.421046006726101, + 1.3132689928170294, + 1.4016900095157325, + 1.3703610165975988, + 1.3895889860577881, + 1.4544159930665046, + 1.5372560010291636, + 1.559441996505484, + 1.4468829904217273, + 1.6609369777143002, + 1.6490239941049367, + 1.8417379760649055, + 1.8434820231050253, + 1.755865989252925, + 1.8529010121710598, + 1.7966160085052252, + 1.4943970018066466, + 1.8074639956466854, + 1.5431060164701194, + 1.5913200040813535, + 1.5180070186033845, + 1.5793409838806838, + 1.6948010015767068, + 1.4790089917369187, + 1.5125189966056496, + 1.856388000305742, + 1.615561021026224, + 1.7141069984063506, + 1.7098640091717243, + 1.6753930249251425, + 1.722358982078731, + 1.7886270070448518, + 1.7714529822114855, + 1.831013010814786, + 1.7904740234371275, + 2.0084140123799443, + 1.627338002435863, + 1.6028360114432871, + 1.6642689879518002, + 1.7631149967201054, + 1.7586550093255937, + 1.603798009455204, + 1.5248200215864927, + 1.6501459758728743, + 1.5680920041631907, + 1.5416269889101386, + 1.6168300062417984, + 1.7308169917669147, + 1.4995929959695786, + 1.6390630044043064, + 1.4186979969963431, + 1.6227449814323336, + 1.8171969859395176, + 1.688315998762846, + 1.6542639932595193, + 1.6250639746431261, + 1.742411986924708, + 1.4740929764229804, + 1.6112829907797277, + 1.750605006236583, + 1.5820409753359854, + 1.5496750129386783, + 1.4541689888574183, + 1.37572200037539, + 1.5870399947743863, + 1.555066992295906, + 1.904208998894319, + 1.4229840016923845, + 1.3726369943469763, + 1.3802949979435652, + 1.3596790086012334, + 1.990909018786624, + 1.848532003350556, + 2.0247929787728935, + 1.763412990840152, + 1.8965830095112324, + 1.643853000132367, + 1.8314179906155914, + 1.8169789982493967, + 1.7028760048560798, + 1.6221550176851451, + 1.813893992220983, + 1.7953909991774708, + 2.1073929965496063, + 1.7993010114878416, + 1.6559469804633409, + 1.7172899970319122, + 1.9478409958537668, + 1.7202349845319986, + 1.7475890053901821, + 1.860302989371121, + 1.8401090055704117, + 1.7361100181005895, + 1.7653020040597767, + 1.7477040237281471, + 1.7184989992529154, + 1.5641689824406058, + 1.4765579835511744, + 1.4695419813506305, + 1.5267159906215966, + 1.7806280229706317, + 1.8590980034787208, + 1.4725660148542374, + 1.3657810050062835, + 1.3249510084278882, + 1.3258219987619668, + 1.4835690089967102, + 1.3714469969272614, + 1.4531239867210388, + 1.5326800057664514, + 1.3193080085329711, + 1.477866986533627, + 1.6496730095241219, + 1.4460360107477754, + 1.5249010175466537, + 1.6921079950407147, + 1.364399999147281, + 1.4776670141145587, + 1.450223004212603, + 1.3340000004973263, + 1.672134007094428, + 1.6488809778820723, + 1.4923959970474243, + 1.9800180161837488, + 1.3660900003742427, + 1.3373910041991621, + 1.6168739821296185, + 1.4553719956893474, + 1.7574029916431755, + 1.588183018611744, + 1.5256320184562355, + 1.6371379897464067, + 1.5828689793124795, + 1.5589020040351897, + 1.743692992022261, + 1.6029870021156967, + 1.522929989732802, + 1.3735289976466447, + 1.3889640104025602, + 1.6314410022459924, + 1.4835699985269457, + 1.3571569870691746, + 1.519430981716141, + 1.1811970034614205, + 1.4654470141977072, + 1.5482510207220912, + 1.424150017555803, + 1.3157360081095248, + 1.3271930220071226, + 1.6405470087192953, + 1.5835700032766908, + 1.7849199939519167, + 1.8375399813521653, + 1.4196439879015088, + 1.4373480225913227, + 1.4948459865991026, + 1.5808720199856907, + 1.4554719964507967, + 1.4339729968924075, + 1.414534985087812, + 1.6418960003647953, + 1.675164996413514, + 1.363234012387693, + 1.4693379926029593, + 1.5311499882955104, + 1.731590018607676, + 1.3128650025464594, + 1.5460480062756687, + 1.6461749910376966, + 1.5364830032922328, + 1.6105030081234872, + 1.7376400064677, + 1.4947559975553304, + 1.3721949944738299, + 1.3016049924772233, + 1.4874229964334518, + 1.515721989562735, + 1.209021982504055, + 1.4646199997514486, + 1.3472189893946052, + 1.534526003524661, + 1.4165549946483225, + 1.577296992763877, + 1.686632982455194, + 1.4680330059491098, + 1.6197730146814138, + 1.4958870015107095, + 1.67740901815705, + 1.4618979766964912, + 1.448350987629965, + 1.3769819925073534, + 1.523685990832746, + 1.6405920032411814, + 1.5845579910092056, + 1.4721239858772606, + 1.59841199638322, + 1.4334300067275763, + 1.6724109882488847, + 1.6463090141769499, + 1.5034700045362115, + 1.8419599800836295, + 1.6025989898480475, + 1.5941380115691572, + 1.7133340006694198, + 1.5151449770200998, + 1.7015459889080375, + 1.7193790117744356, + 1.3734489912167192, + 1.3518560153897852, + 1.320679992204532, + 1.327406003838405, + 1.5499550208915025, + 1.9080629863310605, + 1.7474659834988415, + 1.7281350155826658, + 1.4500670076813549, + 1.4862859970889986, + 1.7852179880719632, + 1.9466930243652314, + 1.6416349972132593, + 1.4550299965776503, + 1.6400369931943715, + 1.6890099796000868, + 1.532124006189406, + 1.5389219915959984, + 1.6364610055461526, + 1.67576500098221, + 1.7352360009681433, + 1.6966050025075674, + 1.4561599818989635, + 1.5409720072057098, + 1.5569029783364385, + 1.5027070185169578, + 1.4160050195641816, + 1.4916920044925064, + 1.6779290162958205, + 1.344188000075519, + 1.5325220010709018, + 1.601071999175474, + 1.3187199947424233, + 1.5107560029719025, + 1.4163920131977648, + 1.3676059897989035, + 1.4231399982236326, + 1.400531007675454, + 1.5342340047936887, + 1.3290120114106685, + 1.4999110135249794, + 1.3341539888642728, + 1.4104089932516217, + 1.4022380055394024, + 1.4512579946313053, + 1.621998002519831, + 1.4532210188917816, + 1.53510898235254, + 1.5393570065498352, + 1.6164530243258923, + 1.4259640011005104, + 1.4765940140932798, + 1.6674780054017901, + 1.7098580137826502, + 1.3046000094618648, + 1.3706229801755399, + 1.2453359959181398, + 1.2423880107235163, + 1.193217991385609, + 1.3780820008832961, + 1.400966983055696, + 1.4189850189723074, + 1.3879349862691015, + 1.3258709805086255, + 1.758519996656105, + 1.7916950164362788, + 1.3958060008008033, + 1.4520699915010482, + 1.4018609945196658, + 1.7548729956615716, + 1.5550499956589192, + 1.3411330000963062, + 1.4248660008888692, + 1.4860800001770258, + 1.5430319763254374, + 1.4106629823800176, + 1.2764620187226683, + 1.3725629833061248, + 1.3366079947445542, + 1.5390070038847625, + 1.3873300049453974, + 1.3948930136393756, + 1.4607580087613314, + 1.6210780013352633, + 2.0986739837098867, + 1.7872690223157406, + 1.7443499818909913, + 1.8243500089738518, + 1.9861460023093969, + 1.7719820025376976, + 1.8283840036019683, + 1.7202140006702393, + 1.6568230057600886, + 1.7126200255006552, + 1.6125199908856302, + 1.5568119997624308, + 1.643548021093011, + 1.5257409831974655, + 1.650207006605342, + 1.507125998614356, + 1.5217940090224147, + 1.5208710101433098, + 1.4810150023549795, + 1.548825006466359, + 1.8022200092673302, + 1.7009979928843677, + 1.740509003866464, + 1.6915750165935606, + 1.6925150121096522, + 1.8144940258935094, + 1.534078997792676, + 1.6639030072838068, + 1.7108229803852737, + 1.498240017099306, + 1.6070459969341755, + 1.6512300062458962, + 1.465291017666459, + 1.4188249770086259, + 1.2301070091780275, + 1.8361850234214216, + 1.6136640042532235, + 1.3219240063335747, + 1.870103005785495, + 1.603727985639125 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "config": { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "stats": { + "n": 400, + "median_ms": 1.5700014919275418, + "p10_ms": 1.340503100072965, + "p90_ms": 1.8187419918831438, + "min_ms": 1.1776300088968128, + "max_ms": 2.1593729907181114, + "mean_ms": 1.5806376255932264 + }, + "speedup_vs_control": { + "ratio": 1.0039206900611746, + "ci90_low": 0.9895092789636317, + "ci90_high": 1.0199336598834796, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9917862251963093, + "p10": 0.9143112492512608, + "p90": 1.0973705953839423 + }, + "compile": { + "lower_s": 2.866035326005658, + "compile_s": 5.827341369993519, + "first_call_s": 0.0032545400026720017, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901656, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2691072, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.6213580092880875, + 1.715774997137487, + 1.5008310147095472 + ], + "per_call_ms": [ + 1.7119469994213432, + 1.805645995773375, + 2.1593729907181114, + 1.5416360110975802, + 1.7167229962069541, + 1.6977979976218194, + 1.5407989849336445, + 1.8465460161678493, + 1.7216569976881146, + 1.581332995556295, + 1.6179320227820426, + 1.4914710191078484, + 1.69321900466457, + 1.8185669905506074, + 1.882139011286199, + 1.7233469989150763, + 1.8909659993369132, + 1.686752977548167, + 1.546098996186629, + 1.6876389854587615, + 1.5005769964773208, + 1.418576022842899, + 1.9596370111685246, + 1.8445540044922382, + 1.4866989804431796, + 1.7815399914979935, + 1.3847330119460821, + 1.6753560048528016, + 1.3771899975836277, + 1.5009880007710308, + 1.6039940237533301, + 1.3486779935192317, + 1.3408550003077835, + 1.368097000522539, + 1.4725999790243804, + 1.5758509980514646, + 1.5121489996090531, + 1.5235449827741832, + 1.2799439718946815, + 1.4582810108549893, + 1.5446619945578277, + 1.5244889946188778, + 1.4454600168392062, + 1.741788990329951, + 1.7157690017484128, + 1.3805370253976434, + 1.5637380129192024, + 1.7044779960997403, + 1.7535559891257435, + 1.677071995800361, + 1.4690120005980134, + 1.6579829971306026, + 1.5154510037973523, + 1.7854110046755522, + 1.6698469989933074, + 1.4439560181926936, + 1.3806789938826114, + 1.5179140027612448, + 1.4724320208188146, + 1.3992539898026735, + 1.4476820069830865, + 1.4737729798071086, + 1.478924008551985, + 1.3656489900313318, + 1.3835710124112666, + 1.3521630025934428, + 1.207007997436449, + 1.3624920102301985, + 1.45851299748756, + 1.2934710248373449, + 1.5201960050035268, + 1.5799310058355331, + 1.5291160088963807, + 1.5827410097699612, + 1.4430549927055836, + 1.3916660100221634, + 1.7637040000408888, + 1.4038429944775999, + 1.692356978310272, + 1.4904479903634638, + 1.7835789767559618, + 1.87686100252904, + 1.8444080196786672, + 1.7705849895719439, + 1.5823709836695343, + 2.0793849835172296, + 1.6570209991186857, + 1.9749809871427715, + 1.872220978839323, + 1.7017190111801028, + 1.765102002536878, + 1.495511009125039, + 1.6548490093555301, + 1.8242020159959793, + 2.0444980182219297, + 1.7978770192712545, + 1.4928329910617322, + 1.667793985689059, + 1.7311509873252362, + 1.6152850002981722, + 1.893373002531007, + 1.5592709823977202, + 1.7946430016309023, + 1.4868549769744277, + 1.5641009958926588, + 1.9345280015841126, + 1.547224004752934, + 1.5326489810831845, + 1.4650610100943595, + 1.6247929888777435, + 1.5048639907035977, + 1.5624779916834086, + 1.4836860063951463, + 1.4591779909096658, + 1.9194099877495319, + 1.6216929943766445, + 1.5982970071490854, + 1.5381359844468534, + 1.6117240011226386, + 1.9260139961261302, + 1.562286022817716, + 1.5725299890618771, + 1.4685420028399676, + 1.535639021312818, + 1.4731750125065446, + 1.4695540012326092, + 1.4853379980195314, + 1.4246109931264073, + 1.6025640070438385, + 1.7844469984993339, + 1.536021998617798, + 1.5331890026573092, + 1.4388489944394678, + 1.6118819767143577, + 1.6337739943992347, + 1.5485610056202859, + 1.4640139997936785, + 1.7062080150935799, + 1.4419440121855587, + 1.630988990655169, + 1.580662006745115, + 1.5455180255230516, + 1.5987819933798164, + 1.6660890250932425, + 1.5323099796660244, + 1.5225440147332847, + 1.5043460007291287, + 1.6545680118724704, + 1.486174005549401, + 1.664034993154928, + 1.486391993239522, + 1.594276021933183, + 1.4040540263522416, + 1.629320002393797, + 1.6517250041943043, + 1.4857710048090667, + 1.7759540060069412, + 1.5342090046033263, + 1.4467319997493178, + 1.8264480167999864, + 1.5972460096236318, + 1.6450810071546584, + 1.3561210071202368, + 1.769478985806927, + 1.6240209806710482, + 1.3974090106785297, + 1.4901259855832905, + 1.496033015428111, + 1.4188789937179536, + 1.61727998056449, + 1.3809390075039119, + 1.419503998477012, + 1.7641960002947599, + 1.5117150032892823, + 1.298702001804486, + 1.7278190061915666, + 1.337335997959599, + 1.559336989885196, + 1.6912620048969984, + 1.5397719980683178, + 1.7697760195005685, + 1.6018270107451826, + 1.589752995641902, + 1.5584449865855277, + 1.4264649944379926, + 1.643322000745684, + 1.2785659928340465, + 1.5426260069943964, + 1.289372012251988, + 1.850587985245511, + 1.345709984889254, + 1.4218930155038834, + 1.576290000230074, + 1.5760560054332018, + 1.5293420001398772, + 1.8293419852852821, + 1.5760530077386647, + 1.886682992335409, + 1.7386749968864024, + 1.6427960072178394, + 1.544647995615378, + 1.9223630079068244, + 1.3492389989551157, + 1.8378109962213784, + 1.442947017494589, + 1.5817389939911664, + 1.5877479745540768, + 1.7545009905006737, + 1.4973120123613626, + 1.3951789878774434, + 1.3535100151784718, + 1.680815010331571, + 1.5378209936898202, + 1.3415830035228282, + 1.2265710101928562, + 1.2495990085881203, + 1.2994330027140677, + 1.2212719884701073, + 1.1776300088968128, + 1.266311010112986, + 1.7951620102394372, + 1.6488470137119293, + 1.3372120156418532, + 1.4582489966414869, + 1.261412020539865, + 1.4244829944800586, + 1.2668179988395423, + 1.8340660026296973, + 1.2874500243924558, + 1.1987769976258278, + 1.2590120022650808, + 1.322324009379372, + 1.2436230026651174, + 1.2436260003596544, + 1.2900250148959458, + 1.2373010104056448, + 1.3330339861568063, + 1.2134870048612356, + 1.2390479969326407, + 1.21748200035654, + 2.0329590188339353, + 2.063699997961521, + 1.7785450036171824, + 2.0293479901738465, + 1.665413990849629, + 1.548305997857824, + 1.6416490252595395, + 1.5035539981909096, + 1.9149430154357105, + 1.536239986307919, + 2.0732000120915473, + 1.657311018789187, + 2.054154989309609, + 1.7046399880200624, + 1.6317720001097769, + 2.01532497885637, + 1.437475992133841, + 1.727777998894453, + 1.424777990905568, + 1.8034590175375342, + 1.4933710044715554, + 1.6870200051926076, + 1.5397630049847066, + 1.3805650232825428, + 1.6430789837613702, + 1.9820339803118259, + 1.55508000170812, + 1.486250985180959, + 1.405802002409473, + 1.3840189785696566, + 1.612803025636822, + 1.4277470181696117, + 1.4536959934048355, + 1.3696220121346414, + 1.9449969986453652, + 1.6735109966248274, + 1.6173039912246168, + 1.5402160061057657, + 1.6537840128876269, + 1.6609769954811782, + 1.4975380036048591, + 1.7196550033986568, + 1.4092790079303086, + 1.4435280172619969, + 1.442009990569204, + 1.3247629976831377, + 1.316643989412114, + 1.319411996519193, + 1.2854450033046305, + 1.3085469836369157, + 1.648222008952871, + 1.3208859891165048, + 1.325425022514537, + 1.5355309878941625, + 1.786658016499132, + 1.512516988441348, + 1.3151029997970909, + 1.2814170040655881, + 1.4765450032427907, + 1.4958340034354478, + 1.6959999920800328, + 1.5671340224798769, + 1.9205179996788502, + 1.6588960133958608, + 1.6603220137767494, + 1.6792420065030456, + 1.5938800061121583, + 1.6189040034078062, + 1.507278997451067, + 1.53545499779284, + 1.7797259788494557, + 1.5774569765198976, + 1.6552739834878594, + 1.7087929882109165, + 1.526520005427301, + 1.954292005393654, + 1.5902510203886777, + 1.74219100154005, + 1.8203170038759708, + 1.8183270003646612, + 1.834191003581509, + 1.608272985322401, + 1.472308998927474, + 1.7444289987906814, + 1.7177170084323734, + 1.540383993415162, + 1.5876069955993444, + 1.408217998687178, + 1.7549270123708993, + 1.6686140152160078, + 1.5809280157554895, + 1.6701759886927903, + 1.484000007621944, + 1.6378219879698008, + 1.4481249963864684, + 1.479258993640542, + 1.6225040017161518, + 1.6470019763801247, + 1.9974470196757466, + 1.5674729947932065, + 1.7823489906731993, + 1.7236539861187339, + 1.694713020697236, + 1.386322983307764, + 1.634479995118454, + 1.7182549927383661, + 1.5435529930982739, + 1.7366899992339313, + 1.4217970019672066, + 1.5035090036690235, + 1.8045030010398477, + 1.811430003726855, + 1.4491659821942449, + 1.6378129948861897, + 1.4735099975951016, + 1.4807650004513562, + 1.6088629781734198, + 1.714211015496403, + 1.4600570139009506, + 1.7349929839838296, + 1.7162050062324852, + 1.6754420066718012, + 1.6971489822026342, + 1.6779050056356937, + 1.5865799796301872, + 1.5534789999946952, + 1.8323310068808496, + 1.586989004863426, + 1.6526830149814487, + 1.548271015053615, + 1.648265984840691, + 1.6510449931956828, + 1.8146660004276782, + 1.3638609962072223, + 1.518297998700291, + 1.5286380075849593, + 1.8043600139208138, + 1.5551639953628182, + 1.6744219756219536, + 1.4856799971312284, + 1.7004800029098988, + 1.4532360073644668, + 1.6524649981874973, + 1.6014980210456997, + 1.9189330050721765, + 1.500334998127073, + 1.6080439963843673, + 1.2919850123580545, + 1.5920799924060702, + 1.63929199334234, + 1.587612001458183, + 1.2922220048494637, + 1.6156830242834985, + 1.5182769857347012, + 1.3008920068386942, + 1.5489020152017474, + 1.7063449777197093, + 1.3566479901783168, + 1.7735410074237734, + 1.6724060114938766 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + } + }, + "vmap": { + "best": "step0_components", + "routes": [ + "control", + "step0_gather", + "step0_components", + "step0_structured" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.6537249903194606, + "p10_ms": 1.415033804369159, + "p90_ms": 1.9635460164863616, + "min_ms": 1.200252998387441, + "max_ms": 2.6344780053477734, + "mean_ms": 1.67508249032835 + }, + "median_ms_per_likelihood": 1.6537249903194606, + "compile": { + "lower_s": 3.9983445100078825, + "compile_s": 6.780635496979812, + "first_call_s": 0.0027850240003317595, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2813353.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901720, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2007040, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap4": { + "config": "control", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.493503496632911, + "p10_ms": 3.9209980895975605, + "p90_ms": 5.10110039904248, + "min_ms": 3.5157930105924606, + "max_ms": 5.977388005703688, + "mean_ms": 4.499601094430545 + }, + "median_ms_per_likelihood": 1.1233758741582278, + "compile": { + "lower_s": 3.8306348720216192, + "compile_s": 7.261267861002125, + "first_call_s": 0.005608594976365566, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10339222.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3200344, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2215936, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap16": { + "config": "control", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 13.668058993062004, + "p10_ms": 11.55362460121978, + "p90_ms": 15.671745783765802, + "min_ms": 10.465741012012586, + "max_ms": 17.893028998514637, + "mean_ms": 13.744311650298187 + }, + "median_ms_per_likelihood": 0.8542536870663753, + "compile": { + "lower_s": 4.087186181015568, + "compile_s": 7.24898572001257, + "first_call_s": 0.016030022001359612, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 40452632.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12396824, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2453504, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap1": { + "config": "step0_gather", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.270635508466512, + "p10_ms": 1.8900502152973786, + "p90_ms": 2.6790661009727046, + "min_ms": 1.661599992075935, + "max_ms": 3.794482006924227, + "mean_ms": 2.281748120149132 + }, + "median_ms_per_likelihood": 2.270635508466512, + "compile": { + "lower_s": 3.8397945670003537, + "compile_s": 6.668063738005003, + "first_call_s": 0.0030037440010346472, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3395426.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 33333248, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.7283093143541626, + "ci90_low": 0.7133537946636633, + "ci90_high": 0.7492599286280193, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap4": { + "config": "step0_gather", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 6.508833990665153, + "p10_ms": 5.556090403115377, + "p90_ms": 7.587823897483759, + "min_ms": 5.03095900057815, + "max_ms": 15.422864991705865, + "mean_ms": 6.5497905479423935 + }, + "median_ms_per_likelihood": 1.6272084976662882, + "compile": { + "lower_s": 3.782511497003725, + "compile_s": 6.969669679005165, + "first_call_s": 0.006984573003137484, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37019648, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.6903699653543798, + "ci90_low": 0.6737947384606193, + "ci90_high": 0.7137446108981536, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap16": { + "config": "step0_gather", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 30.89928401459474, + "p10_ms": 23.24220711016096, + "p90_ms": 35.344364677439444, + "min_ms": 21.295246988302097, + "max_ms": 47.504654998192564, + "mean_ms": 29.823028020909987 + }, + "median_ms_per_likelihood": 1.9312052509121713, + "compile": { + "lower_s": 3.67760805299622, + "compile_s": 7.026152010977967, + "first_call_s": 0.026701580005465075, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 45574880.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27047448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36425728, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.4423422557819182, + "ci90_low": 0.4357350918705732, + "ci90_high": 0.45520569147751505, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap1": { + "config": "step0_components", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.564456513733603, + "p10_ms": 1.3553271972341463, + "p90_ms": 1.8344659154536205, + "min_ms": 1.1685409990604967, + "max_ms": 2.4185270012822, + "mean_ms": 1.5851387329166755 + }, + "median_ms_per_likelihood": 1.564456513733603, + "compile": { + "lower_s": 3.8044222019962035, + "compile_s": 6.367151962011121, + "first_call_s": 0.002775866014417261, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3590390.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1506328, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37892096, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.057060375793263, + "ci90_low": 1.0437516095334909, + "ci90_high": 1.0739641894067193, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap4": { + "config": "step0_components", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.594657002598979, + "p10_ms": 3.925082797650248, + "p90_ms": 5.2125435933703566, + "min_ms": 3.498586011119187, + "max_ms": 6.025904993293807, + "mean_ms": 4.602050095563754 + }, + "median_ms_per_likelihood": 1.1486642506497446, + "compile": { + "lower_s": 3.617750153003726, + "compile_s": 6.569572445994709, + "first_call_s": 0.0054467139998450875, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 13447376.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6777112, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 38121472, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.977984535971053, + "ci90_low": 0.9597936314742698, + "ci90_high": 0.9892890014966471, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap16": { + "config": "step0_components", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 17.73406600113958, + "p10_ms": 15.614464387181215, + "p90_ms": 20.470675395336002, + "min_ms": 12.86517400876619, + "max_ms": 24.822161009069532, + "mean_ms": 17.908429182643886 + }, + "median_ms_per_likelihood": 1.1083791250712238, + "compile": { + "lower_s": 3.763811152020935, + "compile_s": 7.040395768999588, + "first_call_s": 0.0216017349739559, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 52885240.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27103128, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 40603648, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.7707233632819288, + "ci90_low": 0.756907930733596, + "ci90_high": 0.7843492633804212, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap1": { + "config": "step0_structured", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.600794494152069, + "p10_ms": 1.3379019888816401, + "p90_ms": 1.9014636083738878, + "min_ms": 1.1945820006076247, + "max_ms": 2.22615001257509, + "mean_ms": 1.6108055478252936 + }, + "median_ms_per_likelihood": 1.600794494152069, + "compile": { + "lower_s": 3.63483317400096, + "compile_s": 6.364023358997656, + "first_call_s": 0.002662269020220265, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2813353.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901720, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37593088, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.0330651413162366, + "ci90_low": 1.0196497889105582, + "ci90_high": 1.0497348302178948, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap4": { + "config": "step0_structured", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.398944496642798, + "p10_ms": 3.892400988843292, + "p90_ms": 5.03425631322898, + "min_ms": 3.5663660091813654, + "max_ms": 5.859011987922713, + "mean_ms": 4.433061371892109 + }, + "median_ms_per_likelihood": 1.0997361241606995, + "compile": { + "lower_s": 3.89799074199982, + "compile_s": 7.073419349995675, + "first_call_s": 0.005404736002674326, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10339222.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3200344, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37724160, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.021495838390841, + "ci90_low": 1.0052325736994414, + "ci90_high": 1.0359935133866323, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap16": { + "config": "step0_structured", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 13.621237507322803, + "p10_ms": 11.54224389756564, + "p90_ms": 15.619327791500837, + "min_ms": 10.329501004889607, + "max_ms": 17.409772000974044, + "mean_ms": 13.743358677020296 + }, + "median_ms_per_likelihood": 0.8513273442076752, + "compile": { + "lower_s": 4.067840900999727, + "compile_s": 7.24678405400482, + "first_call_s": 0.015487525990465656, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 40452632.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12396824, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36663296, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.0034373885422694, + "ci90_low": 0.9879353042678807, + "ci90_high": 1.019079937348025, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + } + } + }, + "step0_split": { + "control": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.13741350267082453, + "ray_trace": 0.456267996923998, + "general_gather": 1.2526979990070686, + "route_inputs": 0.6447470077546313, + "containment": 0.9475529950577766 + }, + "ray_trace_ms": 0.31885449425317347, + "containment_ms": 0.49128499813377857, + "route_input_materialisation_ms": 0.18847901083063334, + "general_gather_reference_ms": 0.7964300020830706, + "step0_route": "library default (structured)", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.810139492386952, + "containment_share_of_step0": 0.6064202557096464, + "step0_share_of_likelihood": 0.513996703414687, + "containment_share_of_likelihood": 0.3116980123186497 + }, + "step0_gather": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.13552099699154496, + "ray_trace": 0.44245950994081795, + "general_gather": 1.0684614826459438, + "route_inputs": 1.5490484947804362, + "containment": 1.6654270002618432 + }, + "ray_trace_ms": 0.306938512949273, + "containment_ms": 1.2229674903210253, + "route_input_materialisation_ms": 1.1065889848396182, + "general_gather_reference_ms": 0.6260019727051258, + "step0_route": "gather", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 1.5299060032702982, + "containment_share_of_step0": 0.7993742672470289, + "step0_share_of_likelihood": 0.6768645005913838, + "containment_share_of_likelihood": 0.5410680641857636 + }, + "step0_components": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.12707301357295364, + "ray_trace": 0.4473624867387116, + "general_gather": 1.0750704968813807, + "route_inputs": 0.518572996952571, + "containment": 0.8799744973657653 + }, + "ray_trace_ms": 0.32028947316575795, + "containment_ms": 0.4326120106270537, + "route_input_materialisation_ms": 0.07121051021385938, + "general_gather_reference_ms": 0.6277080101426691, + "step0_route": "components", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.7529014837928116, + "containment_share_of_step0": 0.5745931173461503, + "step0_share_of_likelihood": 0.48580087015253176, + "containment_share_of_likelihood": 0.2791378363904156 + }, + "step0_structured": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.12097350554540753, + "ray_trace": 0.4419999895617366, + "general_gather": 1.3353590038605034, + "route_inputs": 0.6385124870575964, + "containment": 0.9358694951515645 + }, + "ray_trace_ms": 0.32102648401632905, + "containment_ms": 0.4938695055898279, + "route_input_materialisation_ms": 0.19651249749585986, + "general_gather_reference_ms": 0.8933590142987669, + "step0_route": "structured", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where) and is the headline before/after number; route_input_materialisation = the route's six barycentric input components returned as outputs (captured at trace time) minus ray_trace; general_gather_reference = plane.triangles minus ray_trace, route-independent", + "step0_ms": 0.814895989606157, + "containment_share_of_step0": 0.6060521979357357, + "step0_share_of_likelihood": 0.5190415383654716, + "containment_share_of_likelihood": 0.3145662651463396 + } + }, + "uncapped_containing_counts": { + "control": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "step0_components": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + } + }, + "gates": { + "fiducial_bit_exact": { + "value": 7.743201200876812, + "expected": 7.743201200876812, + "repr": "7.743201200876812", + "pass": true + }, + "max_containing_size_patch": { + "control": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_gather": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_components": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_structured": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "grad": { + "control": { + "compile_s": 9.042991999012884, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223308, + 41.855894384352354, + 53.12915308135319, + -17.189194514945925, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_gather": { + "compile_s": 9.287426452006912, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223308, + 41.855894384352354, + 53.12915308135319, + -17.189194514945925, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_components": { + "compile_s": 9.575112228019862, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223308, + 41.855894384352354, + 53.12915308135319, + -17.189194514945925, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_structured": { + "compile_s": 9.627317381993635, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.786492377833373, + 2.8041319222503596, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223308, + 41.855894384352354, + 53.12915308135319, + -17.189194514945925, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + } + }, + "step0_route_bit_identity": { + "step0_gather": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + } + } + }, + "all_gates_pass": true, + "completeness_compile": { + "control_prior": { + "lower_s": 4.019101924001006, + "compile_s": 8.133705484011443, + "first_call_s": 0.0028201180102769285, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 901592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7528448, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.2973291230155155, + "compile_s": 2.501587796024978, + "first_call_s": 0.0029185110179241747, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2746879.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 901144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1392640, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_prior": { + "lower_s": 3.9016066390031483, + "compile_s": 7.588742417021422, + "first_call_s": 0.0029384490044321865, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4435968, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_stress": { + "lower_s": 1.102344839979196, + "compile_s": 2.327826251013903, + "first_call_s": 0.003066250996198505, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3328952.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 987136, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_prior": { + "lower_s": 4.154760889010504, + "compile_s": 7.1169156140240375, + "first_call_s": 0.0032169159967452288, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3578378.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1506200, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4993024, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_stress": { + "lower_s": 1.1733312660071533, + "compile_s": 2.1011300020036288, + "first_call_s": 0.0031684170244261622, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3523916.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1506072, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3977216, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_prior": { + "lower_s": 3.9929071810038295, + "compile_s": 7.853175390016986, + "first_call_s": 0.002990125009091571, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 901592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5156864, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_stress": { + "lower_s": 1.2951303760055453, + "compile_s": 2.410444754001219, + "first_call_s": 0.0027003739960491657, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2746879.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 901144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1523712, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + } + }, + "progress": [ + "[ 5.8 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 42.0 s] reference reference solved on 200 prior + 200 stress draws (compile 2.9 s)", + "[ 72.3 s] reference reference_b solved on 200 prior + 200 stress draws (compile 3.2 s)", + "[ 72.3 s] reference floor: {\"prior\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423151782, \"p99_position_error\": 0.0001280749711777913, \"median_position_error\": 5.9668954361473236e-05, \"ref_distinct_histogram\": {\"2\": 21, \"4\": 179}, \"abs_delta_logl_vs_reference\": {\"max\": 0.09204751533968647, \"p99\": 0.06845503627316121, \"median\": 0.004628222675307825, \"n_nonfinite_mismatch\": 0}}, \"stress\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423129578, \"p99_position_error\": 0.00014084184669768283, \"median_position_error\": 5.966895436132821e-05, \"ref_distinct_histogram\": {\"2\": 163, \"4\": 37}}}", + "[ 138.2 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 138.2 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 138.2 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 138.2 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 138.3 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}}", + "[ 138.3 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 176.2 s] timing: 20 rounds x 20 calls x 4 routes done", + "[ 176.6 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True", + "[ 235.2 s] grad gate: control=True, step0_gather=True, step0_components=True, step0_structured=True", + "[ 235.2 s] best admissible (precision-equivalent): step0_components; any precision: step0_components", + "[ 409.7 s] vmap: control_vmap1 1.654 ms/L, control_vmap4 1.123 ms/L, control_vmap16 0.854 ms/L, step0_gather_vmap1 2.271 ms/L, step0_gather_vmap4 1.627 ms/L, step0_gather_vmap16 1.931 ms/L, step0_components_vmap1 1.564 ms/L, step0_components_vmap4 1.149 ms/L, step0_components_vmap16 1.108 ms/L, step0_structured_vmap1 1.601 ms/L, step0_structured_vmap4 1.100 ms/L, step0_structured_vmap16 0.851 ms/L", + "[ 409.7 s] step-0 route bit-identity vs control: step0_gather=True, step0_components=True, step0_structured=True", + "[ 409.7 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 431.9 s] step-0 split: control trace 0.319 contain 0.491, step0_gather trace 0.307 contain 1.223, step0_components trace 0.320 contain 0.433, step0_structured trace 0.321 contain 0.494", + "[ 431.9 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 456.3 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]", + "[ 479.8 s] uncapped step0_components: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]" + ], + "wall_s": 479.8491079300002 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.png new file mode 100644 index 000000000..20450d442 Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.png differ diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_laptop_cpu_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_step0_laptop_cpu_fp64.json new file mode 100644 index 000000000..9da3ec130 --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_step0_laptop_cpu_fp64.json @@ -0,0 +1,5712 @@ +{ + "cell": "solver_config_sweep_step0", + "issue": "PyAutoLabs/PyAutoArray#579", + "phase": "4b", + "step0_routes": [ + "control", + "gather", + "nopad", + "components", + "structured" + ], + "library_step0_default": "structured", + "config_name": "laptop_cpu_fp64", + "quotable": false, + "host_note": "laptop witness: WSL2, interactive load, NOT quotable", + "quick": false, + "library_versions": { + "autolens": "2026.8.17.1", + "autoarray": "2026.8.17.1", + "autofit": "2026.8.17.1" + }, + "package_versions": { + "jax": "0.10.2", + "jaxlib": "0.10.2" + }, + "source_revisions": { + "autolens_profiling": "da4656310c16fb60d78c1ed243141e7ce91975e9", + "PyAutoNerves": "2b3bc53388a15e1d51fb70b583061bc2ee3294f0", + "PyAutoFit": "cf83504e8c7f3cc196ffef4d8a4ff86dd456bb6b", + "PyAutoArray": "c13b2d733538bec86cff3a15eccd9a0940a68463", + "PyAutoGalaxy": "0e4b89cff42882a6cf5bbed6c9686f7212d7e24c", + "PyAutoLens": "4487eb471baa35841e90d3db0911799239594bce" + }, + "autoarray_imported_from": "~/Code/PyAutoLabs-wt/pointsolver-step0-gather/PyAutoArray", + "autolens_imported_from": "~/Code/PyAutoLabs/lens/PyAutoLens", + "device": { + "backend": "cpu", + "device": "cpu:0", + "hostname": "DESKTOP-H143S82", + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "omp_num_threads": "8", + "cpu_count": 8, + "jax_compilation_cache_dir": null, + "autotune_cache_entries_at_start": 0, + "cache_fresh": false + }, + "jax_devices": [ + "cpu:0" + ], + "machine": { + "cpu_model": "Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz", + "cpu_count_os": 8, + "nproc": 8, + "nproc_all": 8, + "nproc_note": "GNU nproc honours OMP_NUM_THREADS, so `nproc` can print 1 on a multi-core host; `nproc_all` is the core count.", + "ram_total": "16392692 kB", + "kernel": "5.10.16.3-microsoft-standard-WSL2", + "platform": "Linux-5.10.16.3-microsoft-standard-WSL2-x86_64-with-glibc2.35", + "python": "3.12.10", + "jax_thread_env": { + "NPROC": "8" + }, + "blas_thread_env": { + "OMP_NUM_THREADS": "8", + "OPENBLAS_NUM_THREADS": "8", + "MKL_NUM_THREADS": "8", + "VECLIB_MAXIMUM_THREADS": "1", + "NUMEXPR_NUM_THREADS": "1" + }, + "thread_env_note": "NPROC sizes XLA's CPU intra-op pool (the JAX rows); the BLAS knobs pin OpenBLAS/MKL/OpenMP (the numpy/scipy rows) and do not touch JAX. Two disjoint families; both are recorded on every CPU timing.", + "gpu": "NVIDIA GeForce RTX 2060 with Max-Q Design, 6144 MiB, 580.97" + }, + "thread_environment": { + "NPROC": "8", + "OMP_NUM_THREADS": "8", + "OPENBLAS_NUM_THREADS": "8", + "MKL_NUM_THREADS": "8" + }, + "sched_affinity": 8, + "os_cpu_count": 8, + "xla_flags": "--xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false", + "jax_platforms": "cpu", + "jax_enable_x64": true, + "loadavg_start": [ + 1.24951171875, + 2.0166015625, + 2.5068359375 + ], + "loadavg_end": [ + 1.31396484375, + 1.54833984375, + 2.08447265625 + ], + "protocol": { + "n_rounds": 20, + "n_calls_per_round": 20, + "n_warm": 3, + "n_stream": 16, + "seed": 314, + "n_prior_draws": 200, + "n_stress_draws": 200, + "step0_rounds": 10, + "vmap_batches": [ + 1, + 4, + 16 + ], + "route_order": "round-robin over every config, start rotated each round", + "cache_trap_guard": "fresh closure + fresh solver/analysis per route; jax.clear_caches()", + "bootstrap": { + "samples": 2000, + "seed": 12345, + "interval": "90%" + }, + "admissible": "100% distinct-multiplicity agreement with the reference on the prior draws AND max position error <= 0.002\"", + "admissible_position_tol": 0.002, + "position_noise_sigma": 0.05, + "distinct_tol": 0.005, + "prior_draws": "full prior: vector_from_unit_vector(U(1e-4, 1-1e-4)); source = solved beta*", + "stress_draws": "OUTSIDE the prior: Isothermal centre U(-0.05,0.05), theta_E U(1,2), ell_comps U(-0.2,0.2), source centre U(-0.4,0.4); plain FitPositionsImagePairAll positions", + "reference": { + "name": "reference", + "block": "reference", + "extent": 12.0, + "scale": 0.05, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "reference_b": { + "name": "reference_b", + "block": "reference", + "extent": 11.0, + "scale": 0.07, + "precision": 0.0001, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": null + }, + "max_containing_size_patch": "ArrayTriangles.__init__ / for_limits_and_scale __defaults__ + module constant, tracing only, restored by value", + "pytrees": "autofit.jax.register_model(model) for both models before any trace" + }, + "configs": [ + { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + { + "name": "step0_nopad", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "nopad" + }, + { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + } + ], + "static": { + "control": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "step0_gather": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "step0_nopad": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "nopad" + }, + "step0_components": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "step0_structured": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "reference": { + "extent_half_width": [ + 12.0, + 12.0 + ], + "limits": [ + -12.0, + 12.0, + -12.0, + 12.0 + ], + "scale": 0.05, + "pixel_scale_precision": 0.0001, + "n_steps": 9, + "n_steps_formula": "ceil(log2(0.05 / 0.0001))", + "last_step_triangle_side": 0.0001953125, + "step0_triangles": 535277, + "step0_rows": 268677, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "reference_b": { + "extent_half_width": [ + 11.0, + 11.0 + ], + "limits": [ + -11.0, + 11.0, + -11.0, + 11.0 + ], + "scale": 0.07, + "pixel_scale_precision": 0.0001, + "n_steps": 10, + "n_steps_formula": "ceil(log2(0.07 / 0.0001))", + "last_step_triangle_side": 0.00013671875, + "step0_triangles": 229585, + "step0_rows": 115473, + "max_containing_size": 60, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + } + }, + "reference_floor": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423151782, + "p99_position_error": 0.0001280749711777913, + "median_position_error": 5.9668954361473236e-05, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.09204751533968647, + "p99": 0.06845503627316121, + "median": 0.004628222675307825, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.00015786921423129578, + "p99_position_error": 0.00014084184669768283, + "median_position_error": 5.966895436132821e-05, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "reference_max_finite_positions": { + "prior": 4, + "stress": 4 + }, + "reference_compile": { + "reference_prior": { + "lower_s": 7.091287199999897, + "compile_s": 6.911603600000035, + "first_call_s": 0.019721900000149617, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 48502648.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 17361496, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 440393728, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 1.5862882000001264, + "compile_s": 1.9338870000001407, + "first_call_s": 0.021159200000056444, + "traced_rows_per_step": [ + 268677, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 47671892.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 17361048, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7065600, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 5.504514400000062, + "compile_s": 7.305678700000044, + "first_call_s": 0.00996900000018286, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [], + [ + 60, + 2 + ] + ], + "flops": 23082492.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 984, + "temp_size_in_bytes": 7566936, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 49766400, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 1.4302029000000402, + "compile_s": 2.0732711000000563, + "first_call_s": 0.009526199999982055, + "traced_rows_per_step": [ + 115473, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880, + 2880 + ], + "output_shapes": [ + [ + 60, + 2 + ] + ], + "flops": 22251710.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 960, + "temp_size_in_bytes": 7566488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1617920, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + } + }, + "default_vs_reference": { + "prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + }, + "agrees_on_every_prior_draw": true, + "agrees_on_every_stress_draw": true, + "stress_mismatch_examples": [] + }, + "admissibility": { + "control": true, + "step0_gather": true, + "step0_nopad": true, + "step0_components": true, + "step0_structured": true + }, + "precision_equivalent": { + "control": true, + "step0_gather": true, + "step0_nopad": true, + "step0_components": true, + "step0_structured": true + }, + "reference_image_extent": { + "prior": { + "max_abs_y": 1.77939453125, + "max_abs_x": 1.7773254429359933, + "max_abs_coord": 1.77939453125, + "p99_abs_coord": 1.7590830914129167, + "max_radius": 1.8116226317743076 + }, + "stress": { + "max_abs_y": 2.2498046875, + "max_abs_x": 2.300267215077964, + "max_abs_coord": 2.300267215077964, + "p99_abs_coord": 2.2027852305644777, + "max_radius": 2.5191249773380773 + } + }, + "extent_working": "prior: theta_E <= 1.6 + 4*0.05 = 1.8; |e| <= 0.0526 + 4*0.01 ~ 0.09 -> q ~ 0.83; SIE images lie within ~theta_E/sqrt(q) + |beta| ~ 1.98 + 0.1 ~ 2.1 arcsec of the centre, so boxes of +-6 / +-4 / +-3 / +-2.5 bracket it; reference_image_extent is the measured value", + "best_admissible": "step0_components", + "best_admissible_any_precision": "step0_components", + "table": [ + { + "config": "control", + "block": "control", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.6314000001784734, + "speedup": 1.0, + "speedup_ci90": [ + 0.9927352031311591, + 1.0069516162502639 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 3.4614047000000028, + "flops": 2801341.0, + "temp_bytes": 901656 + }, + { + "config": "step0_gather", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 2.2212000001218257, + "speedup": 0.7344678552534649, + "speedup_ci90": [ + 0.7305465775683629, + 0.7393326429881116 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 3.3329564000000573, + "flops": 3383414.0, + "temp_bytes": 1692120 + }, + { + "config": "step0_nopad", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 2.249199999823759, + "speedup": 0.725324559979684, + "speedup_ci90": [ + 0.7220247144024469, + 0.7307215192002263 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 3.493998399999782, + "flops": 3173867.0, + "temp_bytes": 1692120 + }, + { + "config": "step0_components", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.5553499999896303, + "speedup": 1.0488957470597293, + "speedup_ci90": [ + 1.0438247013366706, + 1.058413486712005 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 3.5461411000001135, + "flops": 3578378.0, + "temp_bytes": 1506264 + }, + { + "config": "step0_structured", + "block": "step0_route", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 15, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.613299999917217, + "speedup": 1.0112192402294584, + "speedup_ci90": [ + 1.0041774461239126, + 1.019301899084189 + ], + "admissible": true, + "precision_equivalent": true, + "last_step_triangle_side": 0.0015625, + "prior_multiplicity_agreement": 1.0, + "prior_raw_count_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "prior_p99_err": 0.0007893460711577849, + "prior_abs_dlogl_ref_max": 0.8682473458375171, + "prior_abs_dlogl_control_max": 0.0, + "stress_multiplicity_agreement": 1.0, + "stress_max_err": 0.0007893460711579142, + "compile_s": 3.645019500000217, + "flops": 2801341.0, + "temp_bytes": 901656 + } + ], + "rows": { + "control": { + "config": { + "name": "control", + "block": "control", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": null + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 1.6314000001784734, + "p10_ms": 1.5372999998362502, + "p90_ms": 1.7334300000584335, + "min_ms": 1.4624000000367232, + "max_ms": 2.4349999998776184, + "mean_ms": 1.6443707499865923 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.9927352031311591, + "ci90_high": 1.0069516162502639, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 2.5147695999999087, + "compile_s": 3.4614047000000028, + "first_call_s": 0.0028734999996231636, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901656, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3244032, + "max_containing_size_proof": null + }, + "warm_ms": [ + 3.47009999995862, + 1.8967999999404128, + 1.8930000001091685 + ], + "per_call_ms": [ + 1.9017999998141022, + 1.700799999980518, + 1.687700000275072, + 1.6297000001941342, + 1.727500000015425, + 1.6652999997859297, + 1.633299999866722, + 1.644399999804591, + 1.6284999996969418, + 1.6009000000849483, + 1.59929999972519, + 1.6679000000294764, + 1.6398999996454222, + 1.6594999997323612, + 1.6298000000460888, + 1.7324999998891144, + 1.5881999997873208, + 1.608700000360841, + 1.724800000374671, + 1.7675999997663894, + 1.6626999999971304, + 1.7118000000664324, + 1.6491000001224165, + 1.5610999998898478, + 1.5838999997868086, + 1.5918999997666106, + 1.5078999999786902, + 1.5792999997756851, + 1.643800000238116, + 1.6654999999445863, + 1.6290999997181643, + 1.66700000045239, + 1.5915999997559993, + 1.6045000002122833, + 1.7086000002564106, + 1.6086999999060936, + 1.6528000001017062, + 1.6307999999298772, + 1.72629999997298, + 1.6548000003240304, + 1.569900000049529, + 1.6298000000460888, + 1.6177000002244313, + 1.5180999998847255, + 1.5140999998948246, + 1.5799999996488623, + 1.5514000001530803, + 1.666900000145688, + 1.5535000002273591, + 1.5350999997281178, + 1.5455000002475572, + 1.6048000002228946, + 1.5424999996866973, + 1.537499999813008, + 1.600600000074337, + 1.619699999992008, + 1.624900000024354, + 1.5886999999565887, + 1.5455000002475572, + 1.52909999997064, + 1.6767000001891574, + 1.6657999999551976, + 1.579799999944953, + 1.7149999998764542, + 1.544000000194501, + 1.5975000001162698, + 1.5756000002511428, + 1.577500000166765, + 1.549099999920145, + 1.5814000003047113, + 1.6568999999435619, + 1.5889999999672, + 1.6152999996847939, + 1.561900000069727, + 1.5920999999252672, + 1.5456999999514665, + 1.6055999999480264, + 1.674399999956222, + 1.5455000002475572, + 1.51400000004287, + 1.7283000001953042, + 1.7472999998062733, + 1.683200000115903, + 1.629999999749998, + 1.6232000002673885, + 1.6429000002062821, + 1.7502999999123858, + 1.6316000001097564, + 1.6024999999899592, + 1.573000000007596, + 1.5701999996053928, + 1.6669999999976426, + 1.6591000003245426, + 1.609299999927316, + 1.6648000000714092, + 1.5945000000101572, + 1.6114999998535495, + 1.6031999998631363, + 1.5564999998787243, + 1.5649000001758395, + 1.8057999996017315, + 1.6107999999803724, + 1.6592000001764973, + 1.6236000001299544, + 1.8037999998341547, + 1.6553999998905056, + 1.8230999999104824, + 1.675599999998667, + 1.6466000001855718, + 1.857099999597267, + 1.6916999998102256, + 1.582700000199111, + 1.670799999828887, + 1.550999999835767, + 1.6234000004260452, + 1.534699999865552, + 1.565500000197062, + 1.5733000000182074, + 1.6979000001811073, + 1.5024999997876876, + 1.8592000001262932, + 1.7225999999936903, + 1.7345999999633932, + 1.700400000117952, + 1.700799999980518, + 1.7305999999734922, + 1.748599999700673, + 1.8569999997453124, + 1.725099999930535, + 1.6989999999168504, + 1.7308000001321489, + 1.7317000001639826, + 1.7496999998911633, + 1.7333000000689935, + 1.67669999973441, + 1.714199999696575, + 1.6669999999976426, + 1.714699999865843, + 1.788200000191864, + 1.8872999999075546, + 1.6100999996524479, + 1.679599999988568, + 2.106400000229769, + 1.915499999995518, + 1.6579000002820976, + 2.395999999862397, + 1.729799999793613, + 1.633299999866722, + 1.6892999997253355, + 1.659999999901629, + 1.7153000003418128, + 1.7118000000664324, + 1.6011000002436049, + 1.6322000001309789, + 1.660500000070897, + 1.6419000003224937, + 1.7069999998966523, + 1.5924000003906258, + 1.6130999997585604, + 1.6031999998631363, + 1.6654999999445863, + 1.6986000000542845, + 1.6040000000430155, + 1.581500000156666, + 1.5569000001960376, + 1.7146000000138883, + 1.7775999999685155, + 1.6269999996438855, + 1.6350000000784348, + 1.6544000000067172, + 1.5194000002338726, + 1.6381999998884567, + 1.6213999997489736, + 1.5943999997034553, + 1.5515999998569896, + 1.5576000000692147, + 1.61980000029871, + 1.614600000266364, + 1.583699999628152, + 1.5717000001131964, + 1.7635999997764884, + 1.6654999999445863, + 2.4349999998776184, + 1.6467999998894811, + 1.7164000000775559, + 1.8476000000191561, + 1.601800000116782, + 1.6871000002538494, + 1.5651000003344961, + 1.6727000001992565, + 1.7891999996209051, + 2.177800000026764, + 1.681199999893579, + 1.7307000002801942, + 1.664399999754096, + 1.6273999999611988, + 1.7013000001497858, + 1.6933999995671911, + 1.6666999999870313, + 1.675999999861233, + 1.5755999997963954, + 1.6003000000637257, + 1.622399999632762, + 1.490799999828596, + 1.5688999997109931, + 1.582200000029843, + 1.5113999997993233, + 1.501899999766465, + 1.5078000001267355, + 1.5229999999064603, + 1.4912999999978638, + 1.507200000105513, + 1.5150000003814057, + 1.6715000001568114, + 1.4952999999877647, + 1.6491000001224165, + 1.545799999803421, + 1.5257999998539162, + 1.5337999998337182, + 1.743399999668327, + 1.7238000000361353, + 1.62529999988692, + 1.566499999626103, + 1.593699999830278, + 1.7144999997071864, + 1.527099999748316, + 1.5717000001131964, + 1.6159000001607637, + 1.5314999996007828, + 1.5591999999742256, + 1.5465000001313456, + 1.5831000000616768, + 1.5915999997559993, + 1.6336999997292878, + 1.5576999999211694, + 1.5883999999459775, + 1.6264000000774104, + 1.644899999973859, + 1.5975999999682244, + 1.630499999919266, + 1.6666000001350767, + 1.613199999610515, + 1.6814000000522356, + 1.6153000001395412, + 1.6161999997166276, + 1.5564999998787243, + 1.6129000000546512, + 1.6488000001118053, + 1.6638000001876208, + 1.7119000003731344, + 1.6394999997828563, + 1.6694999999344873, + 1.6147999999702733, + 1.617800000076386, + 1.6544999998586718, + 1.725200000237237, + 1.7776999998204701, + 1.6967000001386623, + 1.6958000001068285, + 1.6749999999774445, + 1.7636000002312358, + 1.7544000002089888, + 1.696400000128051, + 1.65919999972175, + 1.7265000001316366, + 1.6590000000178406, + 1.6810000001896697, + 1.756999999997788, + 1.6090000003714522, + 1.685899999756657, + 1.6946000000643835, + 1.706800000192743, + 1.7106000000239874, + 1.6777999999249005, + 1.6402000001107808, + 1.7000000002553861, + 1.7404000000169617, + 1.660399999764195, + 1.6679000000294764, + 1.7268999999942025, + 1.7361000000164495, + 1.7250000000785803, + 1.6621000004306552, + 1.7614000003050023, + 1.6544999998586718, + 1.7149999998764542, + 1.6155999996954051, + 1.7279999997299456, + 1.5764999998282292, + 1.597699999820179, + 1.6200000000026193, + 1.6562000000703847, + 1.6788000002634362, + 1.6815999997561448, + 1.6889999997147243, + 1.7097999998441082, + 1.5196999997897365, + 1.6352000002370914, + 1.5999000002011599, + 1.6293000003315683, + 1.7131000004155794, + 1.566599999932805, + 1.517499999863503, + 1.5460999998140323, + 1.5001000001575449, + 1.6057999996519357, + 1.5913999995973427, + 1.5117000002646819, + 1.5958999997565115, + 1.534199999696284, + 1.89989999989848, + 1.5293000001292967, + 1.5644000000065716, + 1.5315999999074847, + 1.600999999936903, + 1.5069999999468564, + 1.4756000000488712, + 1.5155999999478809, + 1.49039999996603, + 1.5144000003601832, + 1.687200000105804, + 1.6586000001552748, + 1.6845000000103028, + 1.6399000001001696, + 1.5758999998070067, + 1.5678999998272047, + 1.66159999980664, + 1.6388999997616338, + 1.6239000001405657, + 1.6312000002471905, + 1.6510999998899933, + 1.545900000110123, + 1.5932000001157576, + 1.5536999999312684, + 1.5315999999074847, + 1.6029000003072724, + 1.6798000001472246, + 1.6319999999723223, + 1.638399999592366, + 1.5842999996493745, + 1.6312000002471905, + 1.6924999999901047, + 1.5479000003324472, + 1.4624000000367232, + 1.5570000000479922, + 1.6638000001876208, + 1.6330999997080653, + 1.573500000176864, + 1.6083999998954823, + 1.5781000001879875, + 1.5854999996918195, + 1.5748999999232183, + 1.4816999996583036, + 1.5257000000019616, + 1.6401000002588262, + 1.588600000104634, + 1.5678999998272047, + 1.5764999998282292, + 1.5591999999742256, + 1.547399999708432, + 1.7224999996869883, + 1.691099999789003, + 1.667999999881431, + 1.6263000002254557, + 1.5778000001773762, + 1.8671000002541405, + 1.7846999999164836, + 1.6829999999572465, + 1.799000000119122, + 1.764199999797711, + 1.5481000000363565, + 1.540999999633641, + 1.6946999999163381, + 1.553799999783223, + 1.5459999999620777, + 1.535500000045431, + 1.5241000000969507, + 1.7437999999856402, + 1.6041000003497174, + 1.5726000001450302, + 1.7123000002357003, + 1.8239999999423162, + 1.7072999999072636, + 1.6759000000092783, + 1.619000000118831, + 1.709499999833497, + 1.7293999999310472, + 1.6737999999349995, + 1.7023000000335742, + 1.9666000002871442, + 1.7035999999279738, + 1.609699999789882, + 1.593699999830278, + 1.5930000004118483, + 1.686000000063359, + 1.600999999936903, + 1.6273999999611988, + 1.683200000115903, + 1.647599999614613, + 1.691599999958271 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_gather": { + "config": { + "name": "step0_gather", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "gather" + }, + "stats": { + "n": 400, + "median_ms": 2.2212000001218257, + "p10_ms": 2.1205500001087785, + "p90_ms": 2.3378099999263213, + "min_ms": 1.9596000001911307, + "max_ms": 3.0781000000388303, + "mean_ms": 2.2332354999878135 + }, + "speedup_vs_control": { + "ratio": 0.7344678552534649, + "ci90_low": 0.7305465775683629, + "ci90_high": 0.7393326429881116, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.7297572216373517, + "p10": 0.7112074482553258, + "p90": 0.7653154923242464 + }, + "compile": { + "lower_s": 2.535207200000059, + "compile_s": 3.3329564000000573, + "first_call_s": 0.0032188999998652434, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2162688, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.559699999892473, + 2.4045999998634215, + 2.324199999748089 + ], + "per_call_ms": [ + 2.376899999944726, + 2.295499999945605, + 2.369799999996758, + 2.273499999773776, + 2.1117000001140696, + 2.264500000364933, + 2.242500000193104, + 2.2717000001648557, + 2.244100000098115, + 2.261499999804073, + 2.3375999999188934, + 2.3870999998507614, + 2.280400000017835, + 2.2899999999026477, + 2.2943999997551145, + 2.330700000129582, + 2.306200000020908, + 2.2692999996252183, + 2.2865000000820146, + 2.302599999893573, + 2.290700000230572, + 2.3514999998042185, + 2.394600000116043, + 2.237199999854056, + 2.2702000001117995, + 2.328200000192737, + 2.2963999999774387, + 2.255899999909161, + 2.2493999999824155, + 2.1541000000979693, + 2.290999999786436, + 2.329699999791046, + 2.282900000409427, + 2.327400000012858, + 2.1948000003249035, + 2.3507999999310414, + 2.23679999999149, + 2.2840999999971245, + 2.217700000073819, + 2.313899999990099, + 2.105799999753799, + 2.2410999999920023, + 2.1471000000019558, + 2.1501000001080683, + 2.1943000001556356, + 2.1054000003459805, + 2.2461999997176463, + 2.26829999974143, + 2.1836000000803324, + 2.381299999797193, + 2.2733000000698667, + 2.4536999999327236, + 2.2618000002694316, + 2.213700000083918, + 2.3436000001311186, + 2.2711000001436332, + 2.2745000001123117, + 2.343399999972462, + 2.227599999969243, + 2.3085000002538436, + 2.207300000009127, + 2.17930000007982, + 2.1830999999110645, + 2.2601999999096734, + 2.174100000047474, + 2.2066999999879044, + 2.1904000000176893, + 2.185599999847909, + 2.104599999711354, + 2.167399999962072, + 2.1255999999993946, + 2.184500000112166, + 2.3163999999269436, + 2.203699999881792, + 2.1395999997366744, + 2.189799999996467, + 2.1163999999771477, + 2.1143999997548235, + 2.34390000014173, + 2.175500000248576, + 2.207599999564991, + 2.1273000002111075, + 2.106699999785633, + 2.0912999998472515, + 2.1304000001691747, + 1.9596000001911307, + 2.1206000001257053, + 2.08199999997305, + 2.106699999785633, + 2.1317000000635744, + 2.123799999935727, + 2.1535999999287014, + 2.1759000001111417, + 2.0501999997577514, + 2.089999999952852, + 2.1980000001349254, + 2.192099999774655, + 2.2733000000698667, + 2.221000000190543, + 2.1916000000601343, + 2.1032999998169544, + 2.1083999999973457, + 2.1870999999009655, + 2.1275999997669715, + 2.04200000007404, + 2.1249000001262175, + 2.1283999999468506, + 2.107899999828078, + 2.1242000002530403, + 2.1230000002105953, + 2.1839000000909436, + 2.1735000000262517, + 2.29910000007294, + 2.2140000000945292, + 2.231099999789876, + 2.180899999984831, + 2.0841000000473286, + 2.1704000000681845, + 2.0632999999179447, + 2.087099999698694, + 2.1457000002556015, + 2.25430000000415, + 2.189900000303169, + 2.1285000002535526, + 2.1135999995749444, + 2.0879999997305276, + 2.063599999928556, + 2.0761999999194813, + 2.2934000003260735, + 2.1217000003161957, + 2.1409000000858214, + 2.1131999997123785, + 2.146599999832688, + 2.1797999997943407, + 2.199300000029325, + 2.4698000001990295, + 2.185299999837298, + 2.201400000103604, + 2.208500000051572, + 2.2004000002198154, + 2.845500000148604, + 2.3924000001898094, + 2.2758000000067113, + 2.249099999971804, + 2.267099999698985, + 2.235999999811611, + 2.211800000168296, + 2.8133000000707398, + 2.2755999998480547, + 2.5777999999263557, + 2.2457999998550804, + 2.1633000001202163, + 2.210900000136462, + 2.276300000175979, + 2.4117999996633444, + 2.337400000214984, + 2.2631999995610386, + 2.101099999890721, + 2.0933999999215303, + 2.274299999953655, + 2.221000000190543, + 2.26280000015322, + 2.133500000127242, + 2.32209999967381, + 2.1924999996372208, + 2.22170000006372, + 2.2598000000471075, + 2.2575999996661267, + 2.2445999998126354, + 2.2058999998080253, + 2.2164000001794193, + 2.189799999996467, + 2.2030000000086147, + 2.2074999997130362, + 2.222799999799463, + 2.2238999999899534, + 2.2157999997034494, + 2.70379999983561, + 2.2481999999399704, + 2.204500000061671, + 2.3120000000744767, + 2.1931999999651453, + 2.248100000088016, + 2.180200000111654, + 2.128600000105507, + 2.150099999653321, + 2.223200000116776, + 2.1834999997736304, + 2.1669000002475514, + 2.2132999997666047, + 2.244100000098115, + 2.258400000300753, + 2.2240000002966553, + 2.272000000175467, + 2.2196999998413958, + 2.152899999600777, + 2.227599999969243, + 2.251099999739381, + 2.2475000000667933, + 2.2207000001799315, + 2.1264000001792738, + 2.1243999999569496, + 2.1200999999564374, + 2.246000000013737, + 2.1584000000984815, + 2.232299999832321, + 2.1435999997265753, + 2.2605999997722392, + 2.2174999999151623, + 2.1716000001106295, + 2.216800000041985, + 2.2292000003290013, + 2.1485999996002647, + 2.205599999797414, + 2.131900000222231, + 2.320499999768799, + 2.133500000127242, + 2.1433000001707114, + 2.0865000001322187, + 2.2544999997080595, + 2.3214000002553803, + 2.29120000039984, + 2.229700000043522, + 2.137100000254577, + 2.2042999999030144, + 2.137899999979709, + 2.274299999953655, + 2.1652000000358385, + 2.399599999989732, + 2.1696000003430527, + 2.188600000408769, + 2.1982999996907893, + 2.1787000000585977, + 2.2933000000193715, + 2.1864000000277883, + 2.2964999998293933, + 2.2251000000323984, + 2.230399999916699, + 2.1997999997438455, + 2.2353999997903884, + 2.364599999964412, + 2.3396999999931722, + 2.253400000427064, + 2.2589999998672283, + 2.28400000014517, + 2.1964999996271217, + 2.399299999979121, + 2.356200000122044, + 2.383300000019517, + 2.4356999997507955, + 2.36620000032417, + 2.3175999999693886, + 2.2446000002673827, + 2.226399999926798, + 2.319299999726354, + 2.202399999987392, + 2.271899999868765, + 2.1209000001363165, + 2.183699999932287, + 2.1693000003324414, + 2.360200000111945, + 2.3836000000301283, + 2.3444000003109977, + 2.377700000124605, + 2.260699999624194, + 2.2584999996979604, + 2.2201999995559163, + 2.271500000006199, + 2.375199999733013, + 2.347399999962363, + 2.2937000003366848, + 2.24400000024616, + 2.266800000143121, + 2.1891999999752443, + 2.244299999802024, + 2.4023000000852335, + 2.2578000002795307, + 2.7536000002328365, + 2.28030000016588, + 2.2547999997186707, + 2.319100000022445, + 2.2822000000815024, + 2.2607000000789412, + 2.2669999998470303, + 2.3249000000760134, + 2.1457999996528088, + 2.207199999702425, + 2.6003000002674526, + 2.323799999885523, + 2.184700000270823, + 2.2321999999803666, + 2.3360000000138825, + 2.311900000222522, + 2.264700000068842, + 2.280000000155269, + 2.2423000000344473, + 2.3146000003180234, + 2.2069999999985157, + 2.218200000243087, + 2.175399999941874, + 2.246000000013737, + 2.0881000000372296, + 2.1434999998746207, + 2.1402000002126442, + 2.1686999998564715, + 2.1722999999838066, + 2.1393999995780177, + 2.136999999947875, + 2.1582999997917796, + 2.06930000013017, + 2.0863999998255167, + 2.1973999996589555, + 2.2650000000794535, + 2.1603000000141037, + 2.092000000175176, + 2.1382999998422747, + 2.154700000119192, + 2.1529000000555243, + 2.2174999999151623, + 2.1632000002682616, + 2.2275000001172884, + 2.2641000000476197, + 2.182899999752408, + 2.2060000001147273, + 2.25799999998344, + 2.0988999999644875, + 2.1887000002607238, + 2.198600000156148, + 2.065099999981612, + 2.2345999996105093, + 2.2404999999707798, + 2.1882999999434105, + 2.223299999968731, + 2.119799999945826, + 2.209599999787315, + 2.1757999998044397, + 2.1618999999191146, + 2.2290000001703447, + 2.223599999979342, + 2.207300000009127, + 2.21689999989394, + 2.160899999580579, + 2.131699999608827, + 2.3341000000982604, + 2.233899999737332, + 2.7847000001202105, + 2.2853000000395696, + 2.1523000000343018, + 2.1301000001585635, + 2.1001000000069325, + 2.262699999846518, + 2.30699999974604, + 2.210600000125851, + 2.1806999998261745, + 2.1886999998059764, + 2.118200000040815, + 2.216800000041985, + 2.1698999998989166, + 2.150599999822589, + 2.3030999996080936, + 2.0670000003519817, + 2.1050000000286673, + 2.3092999999789754, + 2.1510999999918567, + 2.1969999997963896, + 2.1990999998706684, + 2.1357000000534754, + 2.1228999999038933, + 2.1298000001479522, + 2.2498000002997287, + 2.2522000003846188, + 2.1830999999110645, + 2.314999999725842, + 2.2214000000531087, + 3.0781000000388303, + 2.2752999998374435, + 2.2761000000173226, + 2.2951999999349937, + 2.2724999998899875, + 2.2552999998879386, + 2.310200000010809, + 2.249200000278506, + 2.198499999849446, + 2.233499999874766, + 2.2146999999677064, + 2.7366999997866515, + 2.3976999996193626, + 2.3494999995818944, + 2.2656999999526306, + 2.2396999997909006, + 2.239599999938946, + 2.2886000001562934, + 2.297900000030495, + 2.2343999999066, + 2.2315000001071894, + 2.2278999999798543, + 2.1657000002051063, + 2.190799999880255, + 2.274699999816221, + 2.28160000006028 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_nopad": { + "config": { + "name": "step0_nopad", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "nopad" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "nopad" + }, + "stats": { + "n": 400, + "median_ms": 2.249199999823759, + "p10_ms": 2.142979999734962, + "p90_ms": 2.367040000308407, + "min_ms": 2.033199999914359, + "max_ms": 3.0933000002733024, + "mean_ms": 2.2564005000015186 + }, + "speedup_vs_control": { + "ratio": 0.725324559979684, + "ci90_low": 0.7220247144024469, + "ci90_high": 0.7307215192002263, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.7281653136469417, + "p10": 0.6900362901376941, + "p90": 0.7598515631045025 + }, + "compile": { + "lower_s": 2.620164299999942, + "compile_s": 3.493998399999782, + "first_call_s": 0.003382800000053976, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3173867.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 6463488, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.4974000002657704, + 2.4033999998209765, + 2.342499999940628 + ], + "per_call_ms": [ + 2.484300000105577, + 2.34630000022662, + 2.4248999998235377, + 2.2986999997556268, + 2.315900000212423, + 2.328200000192737, + 2.281099999891012, + 2.408100000138802, + 2.2495000002891175, + 2.2641999998995743, + 2.306200000020908, + 2.249199999823759, + 2.197599999817612, + 2.1704000000681845, + 2.2604999999202846, + 2.261099999941507, + 2.2700999998050975, + 2.289600000040082, + 2.23199999982171, + 2.226399999926798, + 2.25010000031034, + 2.250699999876815, + 2.2828999999546795, + 2.1875000002182787, + 2.2084000001996174, + 2.3237000000335684, + 2.317399999810732, + 2.228800000011688, + 2.250500000172906, + 2.170099999602826, + 2.290400000219961, + 2.235599999949045, + 2.331000000140193, + 2.24709999974948, + 2.383400000326219, + 2.2858000002088374, + 2.3334999996222905, + 2.362600000196835, + 2.2586000000046624, + 2.3196000001917128, + 2.443700000185345, + 2.4078999999801454, + 2.235200000086479, + 2.196200000071258, + 2.2318000001178007, + 2.215699999851495, + 2.3948000002746994, + 2.3984999997992418, + 2.2835999998278567, + 2.237399999557965, + 2.3194999998850108, + 2.2384999997484556, + 2.1775000000161526, + 2.3403000000143948, + 2.2549999998773274, + 2.216800000041985, + 2.3205000002235465, + 2.323200000319048, + 2.283899999838468, + 2.2863999997753126, + 2.2982000000411063, + 2.223700000286044, + 2.179500000238477, + 2.298000000337197, + 2.157400000214693, + 2.2674000001643435, + 2.2623000004386995, + 2.227200000106677, + 2.1509000002879475, + 2.200399999765068, + 2.1332000001166307, + 2.22170000006372, + 2.226799999789364, + 2.1880000003875466, + 2.17689999999493, + 2.2266999999374093, + 2.2479000003841065, + 2.2039000000404485, + 2.50659999983327, + 2.2632999998677406, + 2.196399999775167, + 2.28640000023006, + 2.086000000417698, + 2.112000000124681, + 3.0933000002733024, + 2.225599999746919, + 2.1481000003404915, + 2.254399999856105, + 2.26349999957165, + 2.324199999748089, + 2.1523000000343018, + 2.1821999998792307, + 2.096700000038254, + 2.2276999998211977, + 2.104700000018056, + 2.0673999997598003, + 2.1023000003879133, + 2.229800000350224, + 2.2018999998181243, + 2.273200000217912, + 2.14910000022428, + 2.3137000002861896, + 2.255899999909161, + 2.427099999749771, + 2.2008000000823813, + 2.15939999998227, + 2.1617999996124126, + 2.2551999995812366, + 2.180700000280922, + 2.194900000176858, + 2.3012999999991735, + 2.3280000000340806, + 2.2278999999798543, + 2.2273999998105865, + 2.2816999999122345, + 2.269099999921309, + 2.255099999729282, + 2.279099999668688, + 2.2302000002127897, + 2.2834000001239474, + 2.1600000000034925, + 2.2226000000955537, + 2.5149000002784305, + 2.3502999997617735, + 2.2657999998045852, + 2.1814999995513062, + 2.265499999793974, + 2.257600000120874, + 2.2422999995797, + 2.1905000003243913, + 2.2659000001112872, + 2.3197000000436674, + 2.286800000092626, + 2.3099999998521525, + 2.2414000000026135, + 2.3390999999719497, + 2.310999999735941, + 2.3691999999755353, + 2.288700000008248, + 2.282299999933457, + 2.387300000009418, + 2.3668000003453926, + 2.129399999830639, + 2.3584000000482774, + 2.2343999999066, + 2.2905000000719156, + 2.3349999996753468, + 2.234500000213302, + 2.2733999999218213, + 2.175300000089919, + 2.2522000003846188, + 2.4883999999474327, + 2.267899999878864, + 2.1887000002607238, + 2.2954000000936503, + 2.2693000000799657, + 2.2727999999005988, + 2.380899999934627, + 2.391999999872496, + 2.1966999997857783, + 2.3637999997845327, + 2.343800000289775, + 2.314000000296801, + 2.255200000035984, + 2.162199999929726, + 2.262399999835907, + 2.4139000001923705, + 2.304300000105286, + 2.162599999792292, + 2.233499999874766, + 2.2443000002567715, + 2.275600000302802, + 2.38679999984015, + 2.25799999998344, + 2.280700000028446, + 2.2785999999541673, + 2.4690000000191503, + 2.510700000129873, + 2.269499999783875, + 2.251599999908649, + 2.3132999999688764, + 2.3394999998345156, + 2.2979999998824496, + 2.2596999997404055, + 2.2008000000823813, + 2.2942000000512053, + 2.2837999999865133, + 2.260999999634805, + 2.134300000307121, + 2.1806999998261745, + 2.231599999959144, + 2.189299999827199, + 2.2455999996964238, + 2.256400000078429, + 2.3525000001427543, + 2.274400000260357, + 2.226799999789364, + 2.267399999709596, + 2.198600000156148, + 2.3285000002033485, + 2.3496000003433437, + 2.2017999999661697, + 2.1825000003445894, + 2.21079999982976, + 2.128899999661371, + 2.1633000001202163, + 2.175399999941874, + 2.220899999883841, + 2.232400000139023, + 2.084900000227208, + 2.238100000340637, + 2.2471000002042274, + 2.2186999999576074, + 2.289099999870814, + 2.210499999819149, + 2.2125999998934276, + 2.288300000145682, + 2.2396999997909006, + 2.175599999645783, + 2.2568000003957422, + 2.777700000024197, + 2.2942000000512053, + 2.4177999998755695, + 2.4224999997386476, + 2.1375999999690976, + 2.2422999995797, + 2.3343999996541243, + 2.2171000000525964, + 2.237300000160758, + 2.409899999747722, + 2.344600000014907, + 2.315799999905721, + 2.2899999999026477, + 2.202600000146049, + 2.3390999999719497, + 2.256799999940995, + 2.3120999999264313, + 2.3486999998567626, + 2.2579000001314853, + 2.410900000086258, + 2.1901999998590327, + 2.2470000003522728, + 2.249199999823759, + 2.1953999998913787, + 2.0952999998371524, + 2.2525999997924373, + 2.137500000117143, + 2.1391999998741085, + 2.17270000030112, + 2.17030000021623, + 2.136600000085309, + 2.124199999798293, + 2.177400000164198, + 2.117900000030204, + 2.1049000001767126, + 2.0546000000649656, + 2.2137999999358726, + 2.1802999999636086, + 2.153400000224792, + 2.1148000000721368, + 2.3654999999962456, + 2.442299999984243, + 2.264299999751529, + 2.267099999698985, + 2.224800000021787, + 2.4238000000877946, + 2.3264999999810243, + 2.389400000083697, + 2.2410000001400476, + 2.2045999999136257, + 2.3224999999911233, + 2.2063000001253386, + 2.3572000000058324, + 2.3756000000503263, + 2.222099999926286, + 2.2653999999420193, + 2.391999999872496, + 2.2445999998126354, + 2.198600000156148, + 2.2383000000445463, + 2.1693000003324414, + 2.230100000360835, + 2.272599999741942, + 2.226799999789364, + 2.195400000346126, + 2.2993000002315966, + 2.291900000273017, + 2.183699999932287, + 2.3524000002907997, + 2.1511999998438114, + 2.207999999882304, + 2.2625000001426088, + 2.2638000000370084, + 2.1990999998706684, + 2.423599999929138, + 2.2762000003240246, + 2.337699999770848, + 2.3805999999240157, + 2.2405999998227344, + 2.295499999945605, + 2.2202000000106636, + 2.154199999949924, + 2.1176999998715473, + 2.1400999999059422, + 2.2693000000799657, + 2.033199999914359, + 2.0969000001969107, + 2.136899999641173, + 2.217000000200642, + 2.226000000064232, + 2.191300000049523, + 2.2214999999050633, + 2.3613999996996426, + 2.2773999999117223, + 2.3912000001473643, + 2.3200999999062333, + 2.324999999927968, + 2.2146999999677064, + 2.274800000122923, + 2.268599999752041, + 2.1133000000190805, + 2.1778999998787185, + 2.177400000164198, + 2.2421999997277453, + 2.1035999998275656, + 2.1922999999333115, + 2.11459999991348, + 2.1205000002737506, + 2.064000000245869, + 2.108700000007957, + 2.1332000001166307, + 2.180500000122265, + 2.1018999996158527, + 2.2478000000774045, + 2.1573000003627385, + 2.139100000022154, + 2.0523000002867775, + 2.1707000000787957, + 2.1615999999085034, + 2.1615999999085034, + 2.1868000003451016, + 2.1298000001479522, + 2.1873999999115767, + 2.084799999920506, + 2.1162000002732384, + 2.2205999998732295, + 2.2592999998778396, + 2.2408999998333456, + 2.2146999999677064, + 2.17449999991004, + 2.143299999715964, + 2.321899999969901, + 2.177299999857496, + 2.3422999997819716, + 2.3020999997243052, + 2.284300000155781, + 2.234000000044034, + 2.3125000002437446, + 2.2404999999707798, + 2.263599999878352, + 2.3597999997946317, + 2.4056999995991646, + 2.3387999999613385, + 2.4590000002717716, + 2.29910000007294, + 2.391999999872496, + 2.2493999999824155, + 2.3224000001391687, + 2.3755000001983717, + 2.3446999998668616, + 2.248299999791925, + 2.35179999981483, + 2.37169999991238, + 2.270800000133022, + 2.227200000106677, + 2.285900000060792, + 2.211800000168296, + 2.205400000093505, + 2.210399999967194, + 2.312999999958265, + 2.2923999999875377, + 2.3347999999714375, + 2.208899999914138, + 2.257499999814172, + 2.1652000000358385, + 2.1051000003353693, + 2.164600000014616, + 2.190100000007078, + 2.2287000001597335, + 2.191000000038912, + 2.1721000002798974, + 2.237700000023324, + 2.263899999888963, + 2.228500000001077, + 2.1781999998893298, + 2.196200000071258, + 2.3054999996929837, + 2.2259000002122775, + 2.1641000003000954, + 2.94690000009723 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "config": { + "name": "step0_components", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "components" + }, + "stats": { + "n": 400, + "median_ms": 1.5553499999896303, + "p10_ms": 1.4607999999498134, + "p90_ms": 1.6951399999470596, + "min_ms": 1.3519000003725523, + "max_ms": 2.227200000106677, + "mean_ms": 1.5703824999934568 + }, + "speedup_vs_control": { + "ratio": 1.0488957470597293, + "ci90_low": 1.0438247013366706, + "ci90_high": 1.058413486712005, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0490490248554991, + "p10": 0.9933596100218389, + "p90": 1.0916629529652018 + }, + "compile": { + "lower_s": 2.506862000000183, + "compile_s": 3.5461411000001135, + "first_call_s": 0.002373900000293361, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 3578378.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1506264, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2162688, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.9029000000045926, + 1.7560999999659543, + 1.5510999996877217 + ], + "per_call_ms": [ + 1.7115000000558211, + 1.6200000000026193, + 1.5843000001041219, + 1.656500000080996, + 1.5975000001162698, + 1.7262000001210254, + 1.5538000002379704, + 1.6196000001400535, + 1.6380999995817547, + 1.469999999699212, + 1.5011000000413333, + 1.5753000002405315, + 1.5816999998605752, + 1.5301000003091758, + 1.4691000001221255, + 1.420499999767344, + 1.4741999998477695, + 1.638100000036502, + 1.5100999999049236, + 1.3894999997319246, + 1.831699999911507, + 1.769100000274193, + 1.6645999999127525, + 1.6617999999652966, + 1.64889999996376, + 1.6104999999697611, + 1.7069999998966523, + 1.692299999831448, + 1.6371000001527136, + 1.6472000002067944, + 1.5091000000211352, + 1.4922000000296975, + 1.484100000197941, + 1.5925000002425804, + 1.6055000000960717, + 1.5748999999232183, + 1.5043999997033097, + 1.498399999945832, + 1.4912000001459091, + 1.4814999999543943, + 1.8409999997857085, + 1.6640999997434847, + 1.6860999999153137, + 1.602099999672646, + 1.6980999998850166, + 1.5402999997604638, + 1.596700000391138, + 1.4611999999942782, + 1.4670999998998013, + 1.5570999998999469, + 1.6923000002861954, + 1.5662999999221938, + 1.4297000002443383, + 1.6029999997044797, + 1.4688000001115142, + 1.5453000000889006, + 1.5911000000414788, + 1.4935000003788446, + 1.4638000002378249, + 1.6112000002976856, + 1.6774999999142892, + 1.6404999996666447, + 1.6594999997323612, + 1.5582999999423919, + 1.542299999982788, + 1.8104000000676024, + 1.556599999730679, + 1.6150999999808846, + 1.5327000000979751, + 1.4850000002297747, + 1.4471999998022511, + 1.624200000151177, + 1.5059000002111134, + 1.4477999998234736, + 1.5106999999261461, + 1.4712999995936116, + 1.4771000001019274, + 1.5106999999261461, + 1.4405000001715962, + 1.4574999995602411, + 1.5977999996721337, + 1.679599999988568, + 1.5756000002511428, + 1.5988000000106695, + 1.5985000000000582, + 1.5201999999590043, + 1.4618000000155007, + 1.497199999903387, + 1.6110999999909836, + 1.4619000003222027, + 1.5897000002951245, + 1.5480000001844019, + 1.5198000000964385, + 1.507200000105513, + 1.4697999999953026, + 1.643300000068848, + 1.513899999736168, + 1.6673000000082538, + 1.720000000204891, + 1.8810999999914202, + 1.8586999999570253, + 1.703200000065408, + 1.579799999944953, + 1.9186000004083326, + 1.586300000326446, + 1.6150999999808846, + 1.5662999999221938, + 1.62769999997181, + 1.4323000000331376, + 1.644500000111293, + 1.5662999999221938, + 1.5534999997726118, + 1.5469999998458661, + 1.6514999997525592, + 1.4999999998508429, + 1.4171000002534129, + 1.4804000002186513, + 1.4941999997972744, + 1.5141999997467792, + 1.5456999999514665, + 1.7534999997224077, + 2.227200000106677, + 1.7121999999289983, + 1.6300000002047454, + 1.7155000000457221, + 1.855999999861524, + 1.600999999936903, + 1.607500000318396, + 1.6725999998925545, + 1.5392000000247208, + 1.6024000001380045, + 1.6469999995933904, + 1.5235000000757282, + 1.6378999998778454, + 1.583400000072288, + 1.6000000000531145, + 1.5548999999737134, + 1.5605000003233727, + 1.5455999996447645, + 1.4751000003343506, + 1.6292000000248663, + 1.731899999867892, + 1.6660000001138542, + 1.6310999999404885, + 1.5443000002051122, + 1.5378000002783665, + 1.7339999999421707, + 1.5885999996498867, + 1.6582000002927089, + 1.5035000001262233, + 1.5612000001965498, + 1.4656000003014924, + 1.5714000001025852, + 1.645999999709602, + 1.6273999999611988, + 1.5794999999343418, + 1.507599999968079, + 1.632099999824277, + 1.564599999710481, + 1.4966000003369118, + 1.6416000003118825, + 1.6583000001446635, + 1.523200000065117, + 1.5890999998191546, + 1.5604000000166707, + 1.6144000001077075, + 1.4873999998599174, + 1.6608999999334628, + 1.5253999999913503, + 1.4724000002388493, + 1.5439999997397535, + 1.617800000076386, + 1.542299999982788, + 1.4555000002474117, + 1.5381000002889778, + 1.533499999823107, + 1.6644000002088433, + 1.5146000000640925, + 1.5215999997053586, + 1.5343999998549407, + 1.8321000002288201, + 1.875099999779195, + 1.6926000002968067, + 1.5465999999833002, + 1.551600000311737, + 1.5167999999903259, + 1.5026999999463442, + 1.6279999999824213, + 1.46679999988919, + 1.696400000128051, + 1.50610000036977, + 1.4367999997375591, + 1.5026999999463442, + 1.460899999983667, + 1.4553999999407097, + 1.4482999999927415, + 1.489300000230287, + 1.388199999837525, + 1.3523000002351182, + 1.3944000002084067, + 1.6933999995671911, + 1.7710000001898152, + 1.7548000000715547, + 1.619699999992008, + 1.5346000000135973, + 1.5293999999812513, + 1.5484000000469678, + 1.5558000000055472, + 1.53699999964374, + 1.5942999998515006, + 1.5119999998205458, + 1.5320999996220053, + 1.5630000002602173, + 1.595400000041991, + 1.434899999821937, + 1.6178999999283405, + 1.4874000003146648, + 1.529499999833206, + 1.5296999999918626, + 1.491600000008475, + 1.776600000084727, + 1.6424999998889689, + 1.7346999998153478, + 1.6107000001284177, + 1.6997999996419821, + 1.5570999998999469, + 1.5513000003011257, + 1.451800000268122, + 1.7392999998264713, + 1.5346000000135973, + 1.5493999999307562, + 1.5425000001414446, + 1.5800999999555643, + 1.5474000001631794, + 1.60230000028605, + 1.530199999706383, + 1.509499999883701, + 1.579799999944953, + 1.606199999969249, + 1.5425999999933993, + 1.5284999999494175, + 1.6223000002355548, + 1.5361000000666536, + 1.5798999997969077, + 1.5441999998984102, + 1.617800000076386, + 1.6184000000976084, + 1.544000000194501, + 1.5146000000640925, + 1.5381000002889778, + 1.5201999999590043, + 1.4625000003434252, + 1.4413000003514753, + 1.4679000000796805, + 1.466900000195892, + 1.4475000002676097, + 1.4897999999448075, + 1.567100000102073, + 1.390599999922415, + 1.5072999999574677, + 1.7418000002180634, + 1.6854999998940912, + 1.518000000032771, + 1.5602999997099687, + 1.5569000001960376, + 1.523300000371819, + 1.5570999998999469, + 1.4732999998159357, + 1.5106999999261461, + 1.4586000002054789, + 1.5491999997720995, + 1.4884000001984532, + 1.5413000000989996, + 1.4949000001251989, + 1.3571999998021056, + 1.4255000000957807, + 1.499099999819009, + 1.3918999998168147, + 1.3963999999759835, + 1.4986999999564432, + 1.749799999743118, + 1.665599999796541, + 1.6528000001017062, + 1.627599999665108, + 1.6150999999808846, + 1.6937000000325497, + 1.6233000001193432, + 1.581500000156666, + 1.556199999868113, + 1.5726999999969848, + 1.537499999813008, + 1.433199999610224, + 1.499200000125711, + 1.626899999791931, + 1.5732000001662527, + 1.4734999999745924, + 1.5937000002850255, + 1.4339999997901032, + 1.5364999999292195, + 1.5616999999110703, + 1.7746999997143575, + 1.7236999997294333, + 1.6833999998198124, + 1.543899999887799, + 1.5496999999413674, + 1.5663999997741485, + 1.597800000126881, + 1.5367999999398307, + 1.5944000001582026, + 1.5441000000464555, + 1.5171000000009371, + 1.5359999997599516, + 1.539600000342034, + 1.5253999999913503, + 1.437400000213529, + 1.472399999784102, + 1.5418000002682675, + 1.4612999998462328, + 1.426600000286271, + 1.59929999972519, + 1.6301000000567, + 1.707099999748607, + 1.5878999997767096, + 1.4147000001685228, + 1.3519000003725523, + 1.5315999999074847, + 1.5578000002278714, + 1.4765999999326596, + 1.463199999761855, + 1.547399999708432, + 1.5581000002384826, + 1.4610999996875762, + 1.4838000001873297, + 1.5384999996967963, + 1.5580999997837353, + 1.4555000002474117, + 1.4233000001695473, + 1.4067000001887209, + 1.515099999778613, + 1.5205999998215702, + 1.8022999997810984, + 1.6769999997450213, + 1.6035999997257022, + 1.6227999999500753, + 1.6440999997939798, + 1.581399999849964, + 1.570700000229408, + 1.577500000166765, + 1.5690000000176951, + 1.7014000000017404, + 1.674399999956222, + 1.4618000000155007, + 1.4598999996451312, + 1.5834999999242427, + 1.4786000001549837, + 1.4822000002823188, + 1.5321999999287073, + 1.461700000163546, + 1.4779000002818066, + 1.7646999999669788, + 1.708400000097754, + 1.6536000002815854, + 1.5419999999721767, + 1.546299999972689, + 1.473700000133249, + 1.4664999998785788, + 1.5621999996255909, + 1.5135999997255567, + 1.6949999999269494, + 1.758599999902799, + 1.5625000000909495, + 2.0798000000468164, + 1.626899999791931, + 1.6343000002052577, + 1.6043000000536267, + 1.5630999996574246, + 1.507200000105513, + 1.5747999996165163, + 1.4307000001281267, + 1.4800999997532926, + 1.640899999983958, + 1.6866999999365362, + 1.6526999997950043, + 1.6214999996009283, + 1.5458999996553757, + 1.5570999998999469, + 1.6018999999687367, + 1.6451000001325156, + 1.650799999879382, + 1.504299999851355, + 1.5105999996194441, + 1.6791000002740475, + 1.5304999997169944, + 1.4550000000781438, + 1.5201999999590043, + 1.433800000086194, + 1.4280000000326254, + 1.507200000105513, + 1.534800000172254, + 1.5647999998691375 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "config": { + "name": "step0_structured", + "block": "step0_route", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "static": { + "extent_half_width": [ + 9.9, + 9.9 + ], + "limits": [ + -9.9, + 9.9, + -9.9, + 9.9 + ], + "scale": 0.2, + "pixel_scale_precision": 0.001, + "n_steps": 8, + "n_steps_formula": "ceil(log2(0.2 / 0.001))", + "last_step_triangle_side": 0.0015625, + "step0_triangles": 23283, + "step0_rows": 11859, + "max_containing_size": 15, + "neighbor_degree": 1, + "step0_route": "structured" + }, + "stats": { + "n": 400, + "median_ms": 1.613299999917217, + "p10_ms": 1.5251900001203467, + "p90_ms": 1.7179100001158076, + "min_ms": 1.4363999998749932, + "max_ms": 2.4974000002657704, + "mean_ms": 1.6218447500000366 + }, + "speedup_vs_control": { + "ratio": 1.0112192402294584, + "ci90_low": 1.0041774461239126, + "ci90_high": 1.019301899084189, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0164174552888547, + "p10": 0.9682389868583244, + "p90": 1.0426169579091724 + }, + "compile": { + "lower_s": 2.653325700000096, + "compile_s": 3.645019500000217, + "first_call_s": 0.0030770000003030873, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901656, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3244032, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.9126000001961074, + 1.7886999999063846, + 1.79340000022421 + ], + "per_call_ms": [ + 1.5876000002208457, + 1.638499999899068, + 1.5889999999672, + 1.57809999973324, + 1.545200000236946, + 1.5410000000883883, + 1.4363999998749932, + 1.61740000021382, + 1.5902999998615996, + 1.5349999998761632, + 1.566599999932805, + 1.5418000002682675, + 1.6261999999187537, + 1.6672000001562992, + 1.5584000002490939, + 1.5846000001147331, + 1.595500000348693, + 1.6062999998212035, + 1.566999999795371, + 1.624099999844475, + 1.6857000000527478, + 1.6893000001800829, + 1.6101000001071952, + 1.534300000002986, + 1.6781999997874664, + 1.6024999999899592, + 1.6272000002572895, + 1.547100000152568, + 1.5376999999716645, + 1.6544999998586718, + 1.5878999997767096, + 1.5872000003582798, + 1.6076000001703505, + 1.605400000244117, + 1.703200000065408, + 1.5951000000313797, + 1.6264000000774104, + 1.6472000002067944, + 1.6012999999475142, + 1.5604000000166707, + 1.600600000074337, + 1.5937000002850255, + 1.55270000004748, + 1.482399999986228, + 1.4510999999401974, + 1.4908999996805505, + 1.576999999997497, + 1.5816999998605752, + 1.541900000120222, + 1.5392999998766754, + 1.5951000000313797, + 1.5571999997519015, + 1.6055999999480264, + 1.5616999999110703, + 1.5303999998650397, + 1.4618999998674553, + 1.5229000000545057, + 1.4702999997098232, + 1.520299999810959, + 1.5451999997821986, + 1.5693000000283064, + 1.592499999787833, + 1.4745999997103354, + 1.4685999999528576, + 1.4739000002919056, + 1.558999999815569, + 1.5014000000519445, + 1.5684999998484273, + 1.5367999999398307, + 1.5472999998564774, + 1.5467000002900022, + 1.4644999996562547, + 1.502500000242435, + 1.5622000000803382, + 1.5084999999999127, + 1.4718000002176268, + 1.5229999999064603, + 1.6925999998420593, + 1.6355000002477027, + 1.551500000005035, + 1.7028999996000493, + 1.729799999793613, + 1.6011000002436049, + 1.6485999999531487, + 1.6411999999945692, + 1.5149000000747037, + 1.7296999999416585, + 2.4974000002657704, + 1.5945999998621119, + 1.5687999998590385, + 1.6496999996888917, + 1.6227999999500753, + 1.613800000086485, + 1.6187000001082197, + 1.5766999999868858, + 1.6751999996813538, + 1.5121999999792024, + 1.5478000000257452, + 1.5983999996933562, + 1.6193999999813968, + 1.7017000000123517, + 1.634100000046601, + 1.708400000097754, + 1.6156000001501525, + 1.5241999999489053, + 1.5526000001955254, + 1.465700000153447, + 1.499700000294979, + 1.455800000258023, + 1.5292999996745493, + 1.5391000001727662, + 1.5494999997827108, + 1.5096999995876104, + 1.5524999998888234, + 1.6012000000955595, + 1.505600000200502, + 1.5303999998650397, + 1.5410000000883883, + 1.545900000110123, + 1.576199999817618, + 1.6346999996130762, + 1.9987000000583066, + 1.5880999999353662, + 1.5856999998504762, + 1.693499999873893, + 1.583900000241556, + 1.7643999999563675, + 1.6835000001265144, + 1.6817999999148014, + 1.6932000003180292, + 1.702800000202842, + 1.6324000002896355, + 1.6692999997758307, + 1.717600000120001, + 1.6674999997121631, + 1.6719000000193773, + 1.6465000003336172, + 1.730299999962881, + 1.6143000002557528, + 1.5953000001900364, + 1.7468999999437074, + 1.6827999997985899, + 1.678000000083557, + 1.6375000000152795, + 1.5253000001393957, + 1.6135000000758737, + 1.6287000003103458, + 1.5846999999666878, + 1.6130999997585604, + 1.6315000002578017, + 1.6374000001633249, + 1.5986000003067602, + 1.7261000002690707, + 1.6442999999526364, + 1.6847000001689594, + 1.7581000001882785, + 1.6332000000147673, + 1.6699999996490078, + 1.5708000000813627, + 1.6289999998662097, + 1.640899999983958, + 1.6097000002446293, + 1.56779999997525, + 1.5022000002318237, + 1.6374000001633249, + 1.5558999998575018, + 1.634499999909167, + 1.633299999866722, + 1.6848999998728686, + 1.583400000072288, + 1.6402999999627355, + 1.6286999998555984, + 1.640899999983958, + 1.7898999999488296, + 1.7173999999613443, + 1.6402999999627355, + 1.6775999997662439, + 1.7164999999295105, + 1.6574999999647844, + 1.6719000000193773, + 1.8242000001009728, + 1.7277000001740817, + 1.6675000001669105, + 1.6338000000359898, + 1.721099999940634, + 1.7838000003393972, + 1.6696999996383965, + 1.6058999999586376, + 1.5618000002177723, + 1.5886999999565887, + 1.6252000000349653, + 1.680800000031013, + 1.6095000000859727, + 1.5439999997397535, + 1.5845999996599858, + 1.678000000083557, + 1.6279999999824213, + 1.6362999999728345, + 1.5886999999565887, + 1.6774000000623346, + 1.6355000002477027, + 1.8055999998978223, + 1.7025000001922308, + 1.6534000001229288, + 1.7207000000780681, + 1.6270999999505875, + 1.5818999995644845, + 1.7336999999315594, + 1.6568999999435619, + 1.6243000000031316, + 1.6749999999774445, + 1.8004000003202236, + 1.6694000000825326, + 1.6020000002754387, + 1.6105999998217158, + 1.69000000005326, + 1.6290999997181643, + 1.790099999652739, + 1.5972000001056585, + 1.6439000000900705, + 1.649599999836937, + 1.706699999886041, + 1.5644000000065716, + 1.61500000012893, + 1.64889999996376, + 1.6784999997980776, + 1.6011999996408122, + 1.993400000174006, + 1.7149000000244996, + 1.6672000001562992, + 1.6698999997970532, + 1.6716999998607207, + 1.5831999999136315, + 1.556700000037381, + 1.5942999998515006, + 1.6304000000673113, + 1.5503999998145446, + 1.5431000001626671, + 1.5773000000081083, + 1.6584999998485728, + 1.6129000000546512, + 1.5642999996998697, + 1.5349999998761632, + 1.5809000001354434, + 1.5844999998080311, + 1.5844000004108238, + 1.626200000373501, + 1.5278000000762404, + 1.6378000000258908, + 1.621299999897019, + 1.6004000003704277, + 1.5760000001137087, + 1.594199999999546, + 1.6181999999389518, + 2.0144000000072992, + 1.5963000000738248, + 1.6537999999854947, + 1.6066999996837694, + 1.6445999999632477, + 1.6533000002709741, + 1.6512000001966953, + 1.748599999700673, + 1.5883000000940228, + 1.5484999998989224, + 1.5668000000914617, + 1.4878000001772307, + 1.544599999760976, + 1.6051999996307131, + 1.614899999822228, + 1.6765999998824554, + 1.574599999912607, + 1.731899999867892, + 1.606899999842426, + 1.489199999923585, + 1.6275000002679008, + 1.7293999999310472, + 1.5745000000606524, + 1.7265000001316366, + 1.70269999989614, + 1.8006999998760875, + 1.8378999998276413, + 1.7333000000689935, + 1.6908000002331391, + 1.7949000002772664, + 1.6708000002836343, + 1.5711999999439286, + 1.6212000000450644, + 1.6296000003421796, + 1.6049999999268039, + 1.6384000000471133, + 1.6802000000097905, + 1.7078000000765314, + 1.6605999999228516, + 1.6952999999375606, + 1.7477999999755411, + 1.640899999983958, + 1.682000000073458, + 1.561299999593757, + 1.6796999998405227, + 1.5680000001339067, + 1.6404000002694374, + 1.7343999998047366, + 1.6217000002143322, + 1.6033999995670456, + 1.5507999996771105, + 1.561399999900459, + 1.5446000002157234, + 1.5029000001050008, + 1.4416999997592939, + 1.5278000000762404, + 2.210900000136462, + 1.6149999996741826, + 1.703899999938585, + 1.6500000001542503, + 1.638499999899068, + 1.646900000196183, + 1.5997999998944579, + 1.6617999999652966, + 1.6634000003250549, + 1.817999999730091, + 1.7369000001963286, + 1.6362000001208798, + 1.6324000002896355, + 1.572199999827717, + 1.572300000134419, + 1.5190000003713067, + 1.5307000003303983, + 1.489199999923585, + 1.5844999998080311, + 1.6480000003866735, + 1.5536000000793138, + 1.6302999997606094, + 1.4637999997830775, + 1.6307000000779226, + 1.5730999998595507, + 1.5211999998427927, + 1.5564999998787243, + 1.538699999855453, + 1.5300000000024738, + 1.6405999999733467, + 1.6437999997833685, + 1.6971999998531828, + 1.6031000000111817, + 1.6184000000976084, + 1.5272000000550179, + 1.4694999999846914, + 1.5501000002586807, + 1.5985000000000582, + 1.630499999919266, + 1.507200000105513, + 1.5214000000014494, + 1.5850999998292536, + 1.5906000003269583, + 1.5183999998953368, + 1.5496000000894128, + 1.5576000000692147, + 1.508400000147958, + 1.5542000001005363, + 1.586200000019744, + 1.5738000001874752, + 1.6916999998102256, + 1.7069000000446977, + 1.6120000000228174, + 1.532999999653839, + 1.5195000000858272, + 1.5587000002597051, + 1.6067999999904714, + 1.7256000000998029, + 1.583299999765586, + 1.5451000003849913, + 1.6005000002223824, + 1.5285999998013722, + 1.6543000001547625, + 1.6484000002492394, + 1.6943000000537722, + 1.6751999996813538, + 1.7049999996743281, + 1.6619000002719986, + 1.6163000000233296, + 1.64889999996376, + 1.7573000000083994, + 1.7327999998997257, + 1.771900000221649, + 1.950099999703525, + 1.6390000000683358, + 1.6816000002108922, + 1.6533999996681814, + 1.7229999998562562, + 1.657599999816739, + 1.6528999999536609, + 1.5946999997140665, + 1.5347000003202993, + 1.6024999999899592, + 1.6453999996883795, + 1.6734000000724336, + 1.6077999998742598, + 1.6657999999551976, + 1.6630000000077416, + 1.6123999998853833, + 1.6076000001703505 + ], + "deterministic": true, + "fiducial_log_likelihood": 7.743201200876812, + "stream_log_likelihood": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "admissible": true, + "completeness_prior": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0008513474499103632, + "p99_position_error": 0.0007893460711577849, + "median_position_error": 0.00040657539052049436, + "ref_distinct_histogram": { + "2": 21, + "4": 179 + }, + "abs_delta_logl_vs_reference": { + "max": 0.8682473458375171, + "p99": 0.5684387609120645, + "median": 0.030920850414809298, + "n_nonfinite_mismatch": 0 + }, + "abs_delta_logl_vs_control": { + "max": 0.0, + "p99": 0.0, + "median": 0.0, + "n_nonfinite_mismatch": 0 + } + }, + "completeness_stress": { + "n_draws": 200, + "multiplicity_agreement": 1.0, + "raw_count_agreement": 1.0, + "n_multiplicity_mismatch": 0, + "mismatch_examples": [], + "max_position_error": 0.0007893460711579142, + "p99_position_error": 0.0007893460711576755, + "median_position_error": 0.0004065753905207063, + "ref_distinct_histogram": { + "2": 163, + "4": 37 + } + } + } + }, + "vmap": { + "best": "step0_components", + "routes": [ + "control", + "step0_gather", + "step0_nopad", + "step0_components", + "step0_structured" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.8210499999895546, + "p10_ms": 1.6839799998251692, + "p90_ms": 2.109640000071522, + "min_ms": 1.603000000159227, + "max_ms": 3.166899999996531, + "mean_ms": 1.8732737500056373 + }, + "median_ms_per_likelihood": 1.8210499999895546, + "compile": { + "lower_s": 3.959113299999899, + "compile_s": 4.35098489999973, + "first_call_s": 0.0028359999996609986, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2813353.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901720, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2162688, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap4": { + "config": "control", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.099949999954333, + "p10_ms": 3.8994300000013027, + "p90_ms": 4.86259000008431, + "min_ms": 3.7290000000211876, + "max_ms": 8.055199999944307, + "mean_ms": 4.251975750005386 + }, + "median_ms_per_likelihood": 1.0249874999885833, + "compile": { + "lower_s": 4.227951299999859, + "compile_s": 4.498397300000306, + "first_call_s": 0.0056098000000019965, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10339222.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3200344, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1859584, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "control_vmap16": { + "config": "control", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 12.509050000062416, + "p10_ms": 11.91514999991341, + "p90_ms": 14.27112000019406, + "min_ms": 11.500900000100955, + "max_ms": 45.21270000032018, + "mean_ms": 13.32520800000907 + }, + "median_ms_per_likelihood": 0.781815625003901, + "compile": { + "lower_s": 3.6904914000001554, + "compile_s": 4.744496000000254, + "first_call_s": 0.015247100000124192, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 40452632.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12396824, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 13971456, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap1": { + "config": "step0_gather", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.41369999980634, + "p10_ms": 2.291129999957775, + "p90_ms": 2.8907999998409655, + "min_ms": 2.163799999834737, + "max_ms": 5.1782999998977175, + "mean_ms": 2.5773157500032084 + }, + "median_ms_per_likelihood": 2.41369999980634, + "compile": { + "lower_s": 3.814376799999991, + "compile_s": 3.9242475000000923, + "first_call_s": 0.0028922999999849708, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3395426.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 32096256, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.754464100814378, + "ci90_low": 0.747729414063601, + "ci90_high": 0.7603227059524384, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap4": { + "config": "step0_gather", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 6.688250000024709, + "p10_ms": 6.398300000000745, + "p90_ms": 7.956209999656494, + "min_ms": 6.1811000000489, + "max_ms": 13.616100000035658, + "mean_ms": 7.0869129999948655 + }, + "median_ms_per_likelihood": 1.6720625000061773, + "compile": { + "lower_s": 3.4136656999999104, + "compile_s": 4.269349199999851, + "first_call_s": 0.007538800000020274, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11829332.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37920768, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.6130078869568552, + "ci90_low": 0.6092011445630574, + "ci90_high": 0.6177930437104073, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_gather_vmap16": { + "config": "step0_gather", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 24.00995000016337, + "p10_ms": 22.903530000303363, + "p90_ms": 30.240289999937893, + "min_ms": 22.1996999998737, + "max_ms": 54.59350000000995, + "mean_ms": 25.71583125000302 + }, + "median_ms_per_likelihood": 1.5006218750102107, + "compile": { + "lower_s": 3.568205200000193, + "compile_s": 4.660480399999869, + "first_call_s": 0.02767180000000735, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 45574880.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27047448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37695488, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.5209944210619889, + "ci90_low": 0.5174219345057998, + "ci90_high": 0.5242746071465546, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_nopad_vmap1": { + "config": "step0_nopad", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.4482999999690946, + "p10_ms": 2.2733899998002016, + "p90_ms": 2.822719999949186, + "min_ms": 2.1062000000711123, + "max_ms": 5.513800000244373, + "mean_ms": 2.5611862499931703 + }, + "median_ms_per_likelihood": 2.4482999999690946, + "compile": { + "lower_s": 3.431691999999657, + "compile_s": 3.9559767999999167, + "first_call_s": 0.002943699999832461, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3185879.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 34414592, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.7438018216773035, + "ci90_low": 0.7368495090576406, + "ci90_high": 0.7512094251698754, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_nopad_vmap4": { + "config": "step0_nopad", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 6.742399999893678, + "p10_ms": 6.350389999988693, + "p90_ms": 7.57320000029722, + "min_ms": 6.022800000209827, + "max_ms": 11.261900000135938, + "mean_ms": 6.899136500005625 + }, + "median_ms_per_likelihood": 1.6855999999734195, + "compile": { + "lower_s": 3.4046909999997297, + "compile_s": 4.824248500000067, + "first_call_s": 0.00871789999973771, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11619785.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6763032, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 40685568, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.6080846582847333, + "ci90_low": 0.6033949130174732, + "ci90_high": 0.6130739114885783, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_nopad_vmap16": { + "config": "step0_nopad", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 23.9974500000244, + "p10_ms": 22.67705000017486, + "p90_ms": 28.985770000008415, + "min_ms": 21.776800000225194, + "max_ms": 62.582200000179, + "mean_ms": 25.177011249992347 + }, + "median_ms_per_likelihood": 1.499840625001525, + "compile": { + "lower_s": 3.476272699999754, + "compile_s": 4.710011300000133, + "first_call_s": 0.02720099999987724, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 45365328.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27047448, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37502976, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.5212658011601107, + "ci90_low": 0.5181579180910487, + "ci90_high": 0.5251259475817565, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap1": { + "config": "step0_components", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.7880000000332075, + "p10_ms": 1.5960399997766217, + "p90_ms": 2.077229999940755, + "min_ms": 1.45169999996142, + "max_ms": 5.426000000170461, + "mean_ms": 1.8940795000014532 + }, + "median_ms_per_likelihood": 1.7880000000332075, + "compile": { + "lower_s": 3.5325733999998192, + "compile_s": 4.061815699999897, + "first_call_s": 0.002672199999778968, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3590390.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 1506328, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36700160, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 1.018484340019985, + "ci90_low": 1.006270626504205, + "ci90_high": 1.0294113818117003, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap4": { + "config": "step0_components", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.723099999864644, + "p10_ms": 4.360090000045602, + "p90_ms": 5.576799999971627, + "min_ms": 4.095300000244606, + "max_ms": 11.587699999836332, + "mean_ms": 5.0109570000074655 + }, + "median_ms_per_likelihood": 1.180774999966161, + "compile": { + "lower_s": 3.5619708999997783, + "compile_s": 4.719133000000056, + "first_call_s": 0.005295699999805947, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 13447376.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 6777112, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37777408, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.8680633482398914, + "ci90_low": 0.8632756947522906, + "ci90_high": 0.8769551691278973, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_components_vmap16": { + "config": "step0_components", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 16.013749999956417, + "p10_ms": 15.0927900001534, + "p90_ms": 17.716930000142384, + "min_ms": 14.20670000015889, + "max_ms": 48.531399999774294, + "mean_ms": 16.608099249997395 + }, + "median_ms_per_likelihood": 1.000859374997276, + "compile": { + "lower_s": 3.4487746999998308, + "compile_s": 4.67463190000035, + "first_call_s": 0.017275200000312907, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 52885240.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 27103128, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36622336, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.78114432909821, + "ci90_low": 0.7748089092464076, + "ci90_high": 0.7873557720572114, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap1": { + "config": "step0_structured", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.864049999994677, + "p10_ms": 1.7074200000479323, + "p90_ms": 2.8370599999561823, + "min_ms": 1.6095999999379274, + "max_ms": 7.8016000002207875, + "mean_ms": 2.110763750007436 + }, + "median_ms_per_likelihood": 1.864049999994677, + "compile": { + "lower_s": 3.4049659000002066, + "compile_s": 4.014056299999993, + "first_call_s": 0.002459499999986292, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2813353.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 901720, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 39325696, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9769319492474745, + "ci90_low": 0.9646268430651849, + "ci90_high": 0.9884193230456836, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap4": { + "config": "step0_structured", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.203049999887298, + "p10_ms": 3.8933100000576815, + "p90_ms": 5.51123999994161, + "min_ms": 3.690200000164623, + "max_ms": 8.208799999920302, + "mean_ms": 4.48269625000421 + }, + "median_ms_per_likelihood": 1.0507624999718246, + "compile": { + "lower_s": 3.603877900000043, + "compile_s": 4.44666559999996, + "first_call_s": 0.00520360000018627, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10339222.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3200344, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 36081664, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9754701942789809, + "ci90_low": 0.9687252553227009, + "ci90_high": 0.9843631946642564, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "step0_structured_vmap16": { + "config": "step0_structured", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 12.545050000198898, + "p10_ms": 11.950090000073033, + "p90_ms": 15.324890000101732, + "min_ms": 11.353900000358408, + "max_ms": 24.37480000025971, + "mean_ms": 13.168549750009788 + }, + "median_ms_per_likelihood": 0.7840656250124312, + "compile": { + "lower_s": 4.123745400000189, + "compile_s": 4.569978100000299, + "first_call_s": 0.012225599999965198, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 40452632.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12396824, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 40210432, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725, + 7.051561357429164, + 9.219327498422563, + 0.8907045816755463, + -34.37790701671691, + -24.578291065194456, + -0.4990240338966814, + 0.702590691739907, + 7.669569297550711, + -0.4639011650528264, + -5.412376751794213, + 5.343244353416, + -20.481275097418568 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9971303422357096, + "ci90_low": 0.991929141684525, + "ci90_high": 1.000884115340274, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + } + } + }, + "step0_split": { + "control": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.25949999985641625, + "ray_trace": 0.550799999928131, + "ray_trace_materialised": 1.318000000082975, + "containment": 1.119549999884839 + }, + "ray_trace_ms": 0.29130000007171475, + "containment_ms": 0.568749999956708, + "triangle_materialisation_ms": 0.767200000154844, + "step0_route": "library default (structured)", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where); ray_trace_materialised = image_plane.py's prefix", + "step0_ms": 0.8600500000284228, + "containment_share_of_step0": 0.6612987616277102, + "step0_share_of_likelihood": 0.5271852396311967, + "containment_share_of_likelihood": 0.34862694611651796 + }, + "step0_gather": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.23589999977957632, + "ray_trace": 0.5472999998801242, + "ray_trace_materialised": 1.3076999998702377, + "containment": 1.7861500000435626 + }, + "ray_trace_ms": 0.3114000001005479, + "containment_ms": 1.2388500001634384, + "triangle_materialisation_ms": 0.7603999999901134, + "step0_route": "gather", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where); ray_trace_materialised = image_plane.py's prefix", + "step0_ms": 1.5502500002639863, + "containment_share_of_step0": 0.7991291726834248, + "step0_share_of_likelihood": 0.6979335495133081, + "containment_share_of_likelihood": 0.557739060010576 + }, + "step0_nopad": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.2503499999875203, + "ray_trace": 0.5529500001557608, + "ray_trace_materialised": 1.3191000000460917, + "containment": 1.7641500000991073 + }, + "ray_trace_ms": 0.3026000001682405, + "containment_ms": 1.2111999999433465, + "triangle_materialisation_ms": 0.766149999890331, + "step0_route": "nopad", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where); ray_trace_materialised = image_plane.py's prefix", + "step0_ms": 1.513800000111587, + "containment_share_of_step0": 0.8001056941828941, + "step0_share_of_likelihood": 0.6730393029655897, + "containment_share_of_likelihood": 0.5385025787116543 + }, + "step0_components": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.25655000013102836, + "ray_trace": 0.5496499998116633, + "ray_trace_materialised": 1.3075000001663284, + "containment": 1.0304000002179237 + }, + "ray_trace_ms": 0.29309999968063494, + "containment_ms": 0.48075000040626037, + "triangle_materialisation_ms": 0.7578500003546651, + "step0_route": "components", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where); ray_trace_materialised = image_plane.py's prefix", + "step0_ms": 0.7738500000868953, + "containment_share_of_step0": 0.6212444276698031, + "step0_share_of_likelihood": 0.4975407465149675, + "containment_share_of_likelihood": 0.3090944163110976 + }, + "step0_structured": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.22819999981038563, + "ray_trace": 0.5520499998965533, + "ray_trace_materialised": 1.319599999987986, + "containment": 1.15195000012136 + }, + "ray_trace_ms": 0.3238500000861677, + "containment_ms": 0.5999000002248067, + "triangle_materialisation_ms": 0.7675500000914326, + "step0_route": "structured", + "method": "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; containment = containing_indices minus ray_trace (includes the vertices[indices] gather + Point.mask + jnp.where); ray_trace_materialised = image_plane.py's prefix", + "step0_ms": 0.9237500003109744, + "containment_share_of_step0": 0.6494181326363782, + "step0_share_of_likelihood": 0.5725841445226397, + "containment_share_of_likelihood": 0.3718465259130907 + } + }, + "uncapped_containing_counts": { + "control": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "step0_components": { + "n_draws": 200, + "max_per_step": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "p99_per_step": [ + 15.0, + 11.019999999999982, + 9.019999999999982, + 7.019999999999982, + 5.019999999999982, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 9.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "max_over_steps": 17, + "draws_exceeding_cap": [ + 12 + ], + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + } + }, + "gates": { + "fiducial_bit_exact": { + "value": 7.743201200876812, + "expected": 7.743201200876812, + "repr": "7.743201200876812", + "pass": true + }, + "max_containing_size_patch": { + "control": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_gather": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_nopad": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_components": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "step0_structured": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "grad": { + "control": { + "compile_s": 5.648861500000294, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.3919459816191, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624788, + 41.85589438434542, + 53.1291530813268, + -17.18919451496142, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_gather": { + "compile_s": 5.618470399999751, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.3919459816191, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624788, + 41.85589438434542, + 53.1291530813268, + -17.18919451496142, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_nopad": { + "compile_s": 5.868889200000012, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.3919459816191, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624788, + 41.85589438434542, + 53.1291530813268, + -17.18919451496142, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_components": { + "compile_s": 6.105015900000126, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.3919459816191, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624788, + 41.85589438434542, + 53.1291530813268, + -17.18919451496142, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + }, + "step0_structured": { + "compile_s": 5.95346040000004, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783334, + 2.804131922250644, + 1781.7386158499905 + ], + [ + 249.25847095708434, + 214.72130119062592, + 374.3919459816191, + 813.0025446226265, + 3314.449436325265 + ], + [ + -30.04618316624788, + 41.85589438434542, + 53.1291530813268, + -17.18919451496142, + 1304.418583766583 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 0.0 + } + }, + "step0_route_bit_identity": { + "step0_gather": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_nopad": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_components": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + }, + "step0_structured": { + "checks": { + "stream_log_likelihood": true, + "fiducial_log_likelihood": true, + "prior_log_likelihood": true, + "prior_positions": true, + "stress_positions": true, + "image_counts": true, + "grad": true, + "vmap": true + }, + "pass": true, + "image_count_histogram": { + "prior": { + "2": 21, + "4": 179 + }, + "stress": { + "2": 163, + "4": 37 + } + } + } + } + }, + "all_gates_pass": true, + "completeness_compile": { + "control_prior": { + "lower_s": 3.695778700000119, + "compile_s": 4.802585800000088, + "first_call_s": 0.0029301999998097017, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 901592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 8843264, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.7866205999998783, + "compile_s": 1.5895182999997814, + "first_call_s": 0.002370600000176637, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2746879.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 901144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1400832, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_prior": { + "lower_s": 3.377621099999942, + "compile_s": 4.317162199999984, + "first_call_s": 0.0032763999997769133, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3383414.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4325376, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_gather_stress": { + "lower_s": 1.0083435999999892, + "compile_s": 1.47187729999996, + "first_call_s": 0.0031084000002010725, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3328952.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1351680, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_nopad_prior": { + "lower_s": 3.448235100000147, + "compile_s": 4.380214700000124, + "first_call_s": 0.002937599999768281, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3173867.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1692120, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4055040, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_nopad_stress": { + "lower_s": 1.0918421999999737, + "compile_s": 1.475912899999912, + "first_call_s": 0.003976700000293931, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3119405.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1692184, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2162688, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_prior": { + "lower_s": 4.340388999999959, + "compile_s": 4.5443592000001445, + "first_call_s": 0.002577000000201224, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 3578378.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 1506200, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 3514368, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_components_stress": { + "lower_s": 1.0252224000000751, + "compile_s": 1.4664577999997164, + "first_call_s": 0.0024602000003142166, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 3523916.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 1506072, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4325376, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_prior": { + "lower_s": 3.7101361999998517, + "compile_s": 4.605778099999952, + "first_call_s": 0.002664300000105868, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720, + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [], + [ + 15, + 2 + ] + ], + "flops": 2801341.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 264, + "temp_size_in_bytes": 901592, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5136384, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "step0_structured_stress": { + "lower_s": 1.0649515000000065, + "compile_s": 1.5464139999999134, + "first_call_s": 0.0023129000001063105, + "traced_rows_per_step": [ + 11859, + 720, + 720, + 720, + 720, + 720, + 720, + 720 + ], + "output_shapes": [ + [ + 15, + 2 + ] + ], + "flops": 2746879.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 240, + "temp_size_in_bytes": 901144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 540672, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + } + }, + "progress": [ + "[ 3.8 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_nopad(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 29.4 s] reference reference solved on 200 prior + 200 stress draws (compile 1.9 s)", + "[ 49.6 s] reference reference_b solved on 200 prior + 200 stress draws (compile 2.1 s)", + "[ 49.7 s] reference floor: {\"prior\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423151782, \"p99_position_error\": 0.0001280749711777913, \"median_position_error\": 5.9668954361473236e-05, \"ref_distinct_histogram\": {\"2\": 21, \"4\": 179}, \"abs_delta_logl_vs_reference\": {\"max\": 0.09204751533968647, \"p99\": 0.06845503627316121, \"median\": 0.004628222675307825, \"n_nonfinite_mismatch\": 0}}, \"stress\": {\"n_draws\": 200, \"multiplicity_agreement\": 1.0, \"raw_count_agreement\": 1.0, \"n_multiplicity_mismatch\": 0, \"max_position_error\": 0.00015786921423129578, \"p99_position_error\": 0.00014084184669768283, \"median_position_error\": 5.966895436132821e-05, \"ref_distinct_histogram\": {\"2\": 163, \"4\": 37}}}", + "[ 109.7 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.7 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.8 s] completeness step0_nopad prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.8 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.8 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.8 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}}", + "[ 109.8 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 144.5 s] timing: 20 rounds x 20 calls x 5 routes done", + "[ 145.4 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True", + "[ 197.6 s] grad gate: control=True, step0_gather=True, step0_nopad=True, step0_components=True, step0_structured=True", + "[ 197.6 s] best admissible (precision-equivalent): step0_components; any precision: step0_components", + "[ 376.8 s] vmap: control_vmap1 1.821 ms/L, control_vmap4 1.025 ms/L, control_vmap16 0.782 ms/L, step0_gather_vmap1 2.414 ms/L, step0_gather_vmap4 1.672 ms/L, step0_gather_vmap16 1.501 ms/L, step0_nopad_vmap1 2.448 ms/L, step0_nopad_vmap4 1.686 ms/L, step0_nopad_vmap16 1.500 ms/L, step0_components_vmap1 1.788 ms/L, step0_components_vmap4 1.181 ms/L, step0_components_vmap16 1.001 ms/L, step0_structured_vmap1 1.864 ms/L, step0_structured_vmap4 1.051 ms/L, step0_structured_vmap16 0.784 ms/L", + "[ 376.8 s] step-0 route bit-identity vs control: step0_gather=True, step0_nopad=True, step0_components=True, step0_structured=True", + "[ 376.8 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 397.3 s] step-0 split: control trace 0.291 contain 0.569, step0_gather trace 0.311 contain 1.239, step0_nopad trace 0.303 contain 1.211, step0_components trace 0.293 contain 0.481, step0_structured trace 0.324 contain 0.600", + "[ 397.3 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 414.6 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]", + "[ 431.7 s] uncapped step0_components: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12]" + ], + "wall_s": 433.3467830999998 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_step0_laptop_cpu_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_step0_laptop_cpu_fp64.png new file mode 100644 index 000000000..c5a668dea Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_step0_laptop_cpu_fp64.png differ diff --git a/results/notes/point_source_cpu_2026_09_27_ral_job_357321_step0_route_ab_8490h_cpu.out b/results/notes/point_source_cpu_2026_09_27_ral_job_357321_step0_route_ab_8490h_cpu.out new file mode 100644 index 000000000..45739d7a0 --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_27_ral_job_357321_step0_route_ab_8490h_cpu.out @@ -0,0 +1,80 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather +========================================== +Sun 27 Sep 15:39:57 BST 2026 +euclid-ral-compute-10-4 +Model name: Intel(R) Xeon(R) Platinum 8490H +partition: ral +cpus-per-task: 8 +sched_affinity: 8 +loadavg: 198.81 197.31 198.43 209/3235 148556 +Cell: point_source_image/likelihood_breakdown/solver_config_sweep --step0-route +Thread env: OMP=1 MKL=1 OPENBLAS=1 NPROC=8 +XLA_FLAGS: --xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false +PYTHONPATH: /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather:/mnt/ral/jnightin/PyAuto:/mnt/ral/jnightin/PyAuto/PyAutoNerves:/mnt/ral/jnightin/PyAuto/PyAutoFit:/mnt/ral/jnightin/PyAuto/PyAutoArray:/mnt/ral/jnightin/PyAuto/PyAutoGalaxy:/mnt/ral/jnightin/PyAuto/PyAutoLens +=== source revisions === +PyAutoNerves (mirror) eb27da2464e2f07e0ad67e7fb18ee84be76c479a +PyAutoFit (mirror) 5468c6cefa0ae8bb08a449497cbd3c620f3720e2 +PyAutoArray (mirror) 14d63360f341912b209f2045d7e388e264692f1d +PyAutoGalaxy (mirror) 879a9308b709b3705eb95904de6b349a5c034d61 +PyAutoLens (mirror) def4decf68a245a9c3dd1eb276ee0578897b220c +PyAutoArray (branch clone, IMPORTED): c13b2d733538bec86cff3a15eccd9a0940a68463 +AP_ROOT rev: 311e690fd6c843fe38e5a228628b4417890694f2 +=== import provenance === +autoarray 2026.8.17.1 /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather/autoarray/__init__.py +autofit 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoFit/autofit/__init__.py +autogalaxy 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoGalaxy/autogalaxy/__init__.py +autolens 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoLens/autolens/__init__.py +_STEP0_CONTAINMENT structured +jax 0.10.2 jaxlib 0.10.2 numpy 2.2.6 [CpuDevice(id=0)] +========================================== +RUN hpc_ral_cpu_fp64 -> /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image +Sun 27 Sep 15:40:00 BST 2026 +loadavg: 199.87 197.55 198.50 212/3235 148598 +[ 5.8 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473) +[ 42.0 s] reference reference solved on 200 prior + 200 stress draws (compile 2.9 s) +[ 72.3 s] reference reference_b solved on 200 prior + 200 stress draws (compile 3.2 s) +[ 72.3 s] reference floor: {"prior": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423151782, "p99_position_error": 0.0001280749711777913, "median_position_error": 5.9668954361473236e-05, "ref_distinct_histogram": {"2": 21, "4": 179}, "abs_delta_logl_vs_reference": {"max": 0.09204751533968647, "p99": 0.06845503627316121, "median": 0.004628222675307825, "n_nonfinite_mismatch": 0}}, "stress": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423129578, "p99_position_error": 0.00014084184669768283, "median_position_error": 5.966895436132821e-05, "ref_distinct_histogram": {"2": 163, "4": 37}}} +[ 138.2 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 138.2 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 138.2 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 138.2 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 138.3 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}} +[ 138.3 s] timing: compiling every route (fresh closure + clear_caches) +[ 176.2 s] timing: 20 rounds x 20 calls x 4 routes done +[ 176.6 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True +[ 235.2 s] grad gate: control=True, step0_gather=True, step0_components=True, step0_structured=True +[ 235.2 s] best admissible (precision-equivalent): step0_components; any precision: step0_components +[ 409.7 s] vmap: control_vmap1 1.654 ms/L, control_vmap4 1.123 ms/L, control_vmap16 0.854 ms/L, step0_gather_vmap1 2.271 ms/L, step0_gather_vmap4 1.627 ms/L, step0_gather_vmap16 1.931 ms/L, step0_components_vmap1 1.564 ms/L, step0_components_vmap4 1.149 ms/L, step0_components_vmap16 1.108 ms/L, step0_structured_vmap1 1.601 ms/L, step0_structured_vmap4 1.100 ms/L, step0_structured_vmap16 0.851 ms/L +[ 409.7 s] step-0 route bit-identity vs control: step0_gather=True, step0_components=True, step0_structured=True +[ 409.7 s] step-0 split: ray trace vs ray trace + containment per geometry +[ 431.9 s] step-0 split: control trace 0.319 contain 0.491, step0_gather trace 0.307 contain 1.223, step0_components trace 0.320 contain 0.433, step0_structured trace 0.321 contain 0.494 +[ 431.9 s] uncapped containing counts (NumPy path) on the prior draws +[ 456.3 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12] +[ 479.8 s] uncapped step0_components: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12] + +====================================================================================================================================================== +POINTSOLVER CONFIG SWEEP (hpc_ral_cpu_fp64, rounds=20, calls=20, prior draws=200, stress draws=200) +====================================================================================================================================================== + config block ext scale prec mcs nd n rows med_ms speedup [90% CI] admp mult raw maxerr p99err dlogL_ref s_mult s_maxerr + control control 9.90 0.20 0.0010 15 1 8 11859 1.576 1.000 [0.989, 1.011] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_gather step0_route 9.90 0.20 0.0010 15 1 8 11859 2.260 0.697 [0.683, 0.713] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_components step0_route 9.90 0.20 0.0010 15 1 8 11859 1.550 1.017 [0.997, 1.030] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_structured step0_route 9.90 0.20 0.0010 15 1 8 11859 1.570 1.004 [0.990, 1.020] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 +------------------------------------------------------------------------------------------------------------------------------------------------------ + default agrees with reference on every prior draw: True + default agrees with reference on every stress draw: True + reference floor: {"prior": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423151782, "p99_position_error": 0.0001280749711777913, "median_position_error": 5.9668954361473236e-05, "ref_distinct_histogram": {"2": 21, "4": 179}, "abs_delta_logl_vs_reference": {"max": 0.09204751533968647, "p99": 0.06845503627316121, "median": 0.004628222675307825, "n_nonfinite_mismatch": 0}}, "stress": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423129578, "p99_position_error": 0.00014084184669768283, "median_position_error": 5.966895436132821e-05, "ref_distinct_histogram": {"2": 163, "4": 37}}} + best admissible (precision-equivalent): step0_components; any precision: step0_components + reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}} + fiducial gate: {'value': 7.743201200876812, 'expected': 7.743201200876812, 'repr': '7.743201200876812', 'pass': True} + all_gates_pass: True + wall: 480 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.png +=== source_revisions check (JSON vs imported HEADs) === +autoarray_imported_from /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather +OK /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.json all_gates_pass True +========================================== +loadavg: 189.92 196.72 198.44 189/3233 149081 +Finished. +Sun 27 Sep 15:48:04 BST 2026 diff --git a/results/notes/point_source_cpu_2026_09_27_ral_job_357322_step0_route_ab_a100.out b/results/notes/point_source_cpu_2026_09_27_ral_job_357322_step0_route_ab_a100.out new file mode 100644 index 000000000..00a875ded --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_27_ral_job_357322_step0_route_ab_a100.out @@ -0,0 +1,85 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather +========================================== +Sun 27 Sep 11:59:32 BST 2026 +euclid-ral-gpu-1 +Model name: AMD EPYC 7702 64-Core Processor +name, driver_version, memory.total [MiB], utilization.gpu [%] +NVIDIA A100 80GB PCIe, 610.57.04, 81920 MiB, 0 % +gpus: 0 +partition: gpu +cpus-per-task: 8 +sched_affinity: 8 +loadavg: 0.00 0.00 0.00 1/1240 155862 +Cell: point_source_image/likelihood_breakdown/solver_config_sweep --step0-route +Thread env: OMP=1 MKL=1 OPENBLAS=1 NPROC=8 +XLA_FLAGS: --xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false +PYTHONPATH: /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather:/mnt/ral/jnightin/PyAuto:/mnt/ral/jnightin/PyAuto/PyAutoNerves:/mnt/ral/jnightin/PyAuto/PyAutoFit:/mnt/ral/jnightin/PyAuto/PyAutoArray:/mnt/ral/jnightin/PyAuto/PyAutoGalaxy:/mnt/ral/jnightin/PyAuto/PyAutoLens +=== source revisions === +PyAutoNerves (mirror) eb27da2464e2f07e0ad67e7fb18ee84be76c479a +PyAutoFit (mirror) 5468c6cefa0ae8bb08a449497cbd3c620f3720e2 +PyAutoArray (mirror) 14d63360f341912b209f2045d7e388e264692f1d +PyAutoGalaxy (mirror) 879a9308b709b3705eb95904de6b349a5c034d61 +PyAutoLens (mirror) def4decf68a245a9c3dd1eb276ee0578897b220c +PyAutoArray (branch clone, IMPORTED): c13b2d733538bec86cff3a15eccd9a0940a68463 +AP_ROOT rev: f7edb9f673cc0406ec1131eedf84cab47b1ade60 +=== import provenance === +autoarray 2026.8.17.1 /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather/autoarray/__init__.py +autofit 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoFit/autofit/__init__.py +autogalaxy 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoGalaxy/autogalaxy/__init__.py +autolens 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoLens/autolens/__init__.py +_STEP0_CONTAINMENT structured +jax 0.10.2 jaxlib 0.10.2 numpy 2.2.6 [CudaDevice(id=0)] +========================================== +RUN hpc_ral_a100_fp64 -> /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image +Sun 27 Sep 11:59:48 BST 2026 +loadavg: 0.22 0.05 0.02 1/1242 155902 +[ 5.7 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473) +[ 32.1 s] reference reference solved on 200 prior + 200 stress draws (compile 4.2 s) +[ 56.7 s] reference reference_b solved on 200 prior + 200 stress draws (compile 4.9 s) +[ 56.7 s] reference floor: {"prior": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.0001578692142314068, "p99_position_error": 0.0001280749711778143, "median_position_error": 5.966895436149997e-05, "ref_distinct_histogram": {"2": 21, "4": 179}, "abs_delta_logl_vs_reference": {"max": 0.09204751533957278, "p99": 0.06845503627316349, "median": 0.004628222675297167, "n_nonfinite_mismatch": 0}}, "stress": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423129578, "p99_position_error": 0.00014084184669768283, "median_position_error": 5.966895436134919e-05, "ref_distinct_histogram": {"2": 163, "4": 37}}} +[ 119.8 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035 +[ 119.9 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035 +[ 119.9 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035 +[ 119.9 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035 +[ 119.9 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359935, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.759083091412917, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}} +[ 119.9 s] timing: compiling every route (fresh closure + clear_caches) +[ 155.0 s] timing: 20 rounds x 20 calls x 4 routes done +[ 155.7 s] fiducial gate: 7.743201200876806 == 7.743201200876812: False +[ 240.1 s] grad gate: control=True, step0_gather=True, step0_components=True, step0_structured=True +[ 240.1 s] best admissible (precision-equivalent): step0_gather; any precision: step0_gather +[ 366.8 s] vmap: control_vmap1 0.834 ms/L, control_vmap4 0.231 ms/L, control_vmap16 0.070 ms/L, step0_gather_vmap1 0.830 ms/L, step0_gather_vmap4 0.228 ms/L, step0_gather_vmap16 0.069 ms/L, step0_components_vmap1 0.831 ms/L, step0_components_vmap4 0.229 ms/L, step0_components_vmap16 0.068 ms/L, step0_structured_vmap1 0.838 ms/L, step0_structured_vmap4 0.231 ms/L, step0_structured_vmap16 0.071 ms/L +[ 366.8 s] step-0 route bit-identity vs control: step0_gather=True, step0_components=True, step0_structured=True +[ 366.8 s] step-0 split: ray trace vs ray trace + containment per geometry +[ 387.0 s] step-0 split: control trace -0.017 contain 0.087, step0_gather trace -0.016 contain 0.085, step0_components trace -0.017 contain 0.083, step0_structured trace -0.015 contain 0.090 +[ 387.0 s] uncapped containing counts (NumPy path) on the prior draws +[ 410.2 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12] +[ 432.4 s] uncapped step0_gather: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12] + +====================================================================================================================================================== +POINTSOLVER CONFIG SWEEP (hpc_ral_a100_fp64, rounds=20, calls=20, prior draws=200, stress draws=200) +====================================================================================================================================================== + config block ext scale prec mcs nd n rows med_ms speedup [90% CI] admp mult raw maxerr p99err dlogL_ref s_mult s_maxerr + control control 9.90 0.20 0.0010 15 1 8 11859 0.838 1.000 [0.996, 1.004] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_gather step0_route 9.90 0.20 0.0010 15 1 8 11859 0.837 1.000 [0.996, 1.004] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_components step0_route 9.90 0.20 0.0010 15 1 8 11859 0.839 0.999 [0.996, 1.003] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_structured step0_route 9.90 0.20 0.0010 15 1 8 11859 0.838 0.999 [0.995, 1.003] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 +------------------------------------------------------------------------------------------------------------------------------------------------------ + default agrees with reference on every prior draw: True + default agrees with reference on every stress draw: True + reference floor: {"prior": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.0001578692142314068, "p99_position_error": 0.0001280749711778143, "median_position_error": 5.966895436149997e-05, "ref_distinct_histogram": {"2": 21, "4": 179}, "abs_delta_logl_vs_reference": {"max": 0.09204751533957278, "p99": 0.06845503627316349, "median": 0.004628222675297167, "n_nonfinite_mismatch": 0}}, "stress": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423129578, "p99_position_error": 0.00014084184669768283, "median_position_error": 5.966895436134919e-05, "ref_distinct_histogram": {"2": 163, "4": 37}}} + best admissible (precision-equivalent): step0_gather; any precision: step0_gather + reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359935, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.759083091412917, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}} + fiducial gate: {'value': 7.743201200876806, 'expected': 7.743201200876812, 'repr': '7.743201200876806', 'pass': False} + all_gates_pass: False + wall: 432 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.png +=== source_revisions check (JSON vs imported HEADs) === +autoarray_imported_from /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather +OK /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.json all_gates_pass False +========================================== +loadavg: 0.98 0.90 0.47 1/1240 159370 +name, memory.used [MiB] +NVIDIA A100 80GB PCIe, 0 MiB +Finished. +Sun 27 Sep 12:07:03 BST 2026 diff --git a/results/notes/point_source_cpu_2026_09_27_ral_job_357335_step0_route_ab_epyc7702_cpu.out b/results/notes/point_source_cpu_2026_09_27_ral_job_357335_step0_route_ab_epyc7702_cpu.out new file mode 100644 index 000000000..1858dbc68 --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_27_ral_job_357335_step0_route_ab_epyc7702_cpu.out @@ -0,0 +1,80 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather +========================================== +Sun 27 Sep 12:04:16 BST 2026 +euclid-ral-gpu-2 +Model name: AMD EPYC 7702 64-Core Processor +partition: gpu +cpus-per-task: 8 +sched_affinity: 8 +loadavg: 0.00 0.00 0.00 1/1243 139471 +Cell: point_source_image/likelihood_breakdown/solver_config_sweep --step0-route +Thread env: OMP=1 MKL=1 OPENBLAS=1 NPROC=8 +XLA_FLAGS: --xla_disable_hlo_passes=constant_folding --xla_gpu_autotune_level=0 --xla_gpu_enable_triton_gemm=false +PYTHONPATH: /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather:/mnt/ral/jnightin/PyAuto:/mnt/ral/jnightin/PyAuto/PyAutoNerves:/mnt/ral/jnightin/PyAuto/PyAutoFit:/mnt/ral/jnightin/PyAuto/PyAutoArray:/mnt/ral/jnightin/PyAuto/PyAutoGalaxy:/mnt/ral/jnightin/PyAuto/PyAutoLens +=== source revisions === +PyAutoNerves (mirror) eb27da2464e2f07e0ad67e7fb18ee84be76c479a +PyAutoFit (mirror) 5468c6cefa0ae8bb08a449497cbd3c620f3720e2 +PyAutoArray (mirror) 14d63360f341912b209f2045d7e388e264692f1d +PyAutoGalaxy (mirror) 879a9308b709b3705eb95904de6b349a5c034d61 +PyAutoLens (mirror) def4decf68a245a9c3dd1eb276ee0578897b220c +PyAutoArray (branch clone, IMPORTED): c13b2d733538bec86cff3a15eccd9a0940a68463 +AP_ROOT rev: 311e690fd6c843fe38e5a228628b4417890694f2 +=== import provenance === +autoarray 2026.8.17.1 /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather/autoarray/__init__.py +autofit 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoFit/autofit/__init__.py +autogalaxy 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoGalaxy/autogalaxy/__init__.py +autolens 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoLens/autolens/__init__.py +_STEP0_CONTAINMENT structured +jax 0.10.2 jaxlib 0.10.2 numpy 2.2.6 [CpuDevice(id=0)] +========================================== +RUN hpc_ral_cpu_epyc7702_fp64 -> /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image +Sun 27 Sep 12:04:30 BST 2026 +loadavg: 0.29 0.07 0.02 1/1244 139515 +[ 5.4 s] configs: control(n=8,rows=11859), step0_gather(n=8,rows=11859), step0_components(n=8,rows=11859), step0_structured(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473) +[ 38.5 s] reference reference solved on 200 prior + 200 stress draws (compile 2.1 s) +[ 63.8 s] reference reference_b solved on 200 prior + 200 stress draws (compile 2.3 s) +[ 63.8 s] reference floor: {"prior": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423151782, "p99_position_error": 0.0001280749711777913, "median_position_error": 5.9668954361473236e-05, "ref_distinct_histogram": {"2": 21, "4": 179}, "abs_delta_logl_vs_reference": {"max": 0.09204751533968647, "p99": 0.06845503627316121, "median": 0.004628222675307825, "n_nonfinite_mismatch": 0}}, "stress": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423129578, "p99_position_error": 0.00014084184669768283, "median_position_error": 5.966895436132821e-05, "ref_distinct_histogram": {"2": 163, "4": 37}}} +[ 116.4 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 116.4 s] completeness step0_gather prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 116.4 s] completeness step0_components prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 116.5 s] completeness step0_structured prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 116.5 s] reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}} +[ 116.5 s] timing: compiling every route (fresh closure + clear_caches) +[ 147.4 s] timing: 20 rounds x 20 calls x 4 routes done +[ 148.1 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True +[ 193.3 s] grad gate: control=True, step0_gather=True, step0_components=True, step0_structured=True +[ 193.3 s] best admissible (precision-equivalent): step0_structured; any precision: step0_structured +[ 349.9 s] vmap: control_vmap1 1.998 ms/L, control_vmap4 1.442 ms/L, control_vmap16 1.139 ms/L, step0_gather_vmap1 3.255 ms/L, step0_gather_vmap4 2.494 ms/L, step0_gather_vmap16 2.121 ms/L, step0_components_vmap1 2.020 ms/L, step0_components_vmap4 1.380 ms/L, step0_components_vmap16 1.166 ms/L, step0_structured_vmap1 2.023 ms/L, step0_structured_vmap4 1.446 ms/L, step0_structured_vmap16 1.133 ms/L +[ 350.0 s] step-0 route bit-identity vs control: step0_gather=True, step0_components=True, step0_structured=True +[ 350.0 s] step-0 split: ray trace vs ray trace + containment per geometry +[ 370.6 s] step-0 split: control trace 0.495 contain 0.641, step0_gather trace 0.489 contain 1.906, step0_components trace 0.492 contain 0.594, step0_structured trace 0.481 contain 0.647 +[ 370.6 s] uncapped containing counts (NumPy path) on the prior draws +[ 394.2 s] uncapped control: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12] +[ 416.8 s] uncapped step0_structured: max per step [17, 13, 11, 9, 7, 5, 5, 5]; draws exceeding cap 15: [12] + +====================================================================================================================================================== +POINTSOLVER CONFIG SWEEP (hpc_ral_cpu_epyc7702_fp64, rounds=20, calls=20, prior draws=200, stress draws=200) +====================================================================================================================================================== + config block ext scale prec mcs nd n rows med_ms speedup [90% CI] admp mult raw maxerr p99err dlogL_ref s_mult s_maxerr + control control 9.90 0.20 0.0010 15 1 8 11859 1.981 1.000 [0.989, 1.011] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_gather step0_route 9.90 0.20 0.0010 15 1 8 11859 3.184 0.622 [0.616, 0.628] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_components step0_route 9.90 0.20 0.0010 15 1 8 11859 1.979 1.001 [0.992, 1.010] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + step0_structured step0_route 9.90 0.20 0.0010 15 1 8 11859 1.971 1.005 [0.995, 1.014] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 +------------------------------------------------------------------------------------------------------------------------------------------------------ + default agrees with reference on every prior draw: True + default agrees with reference on every stress draw: True + reference floor: {"prior": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423151782, "p99_position_error": 0.0001280749711777913, "median_position_error": 5.9668954361473236e-05, "ref_distinct_histogram": {"2": 21, "4": 179}, "abs_delta_logl_vs_reference": {"max": 0.09204751533968647, "p99": 0.06845503627316121, "median": 0.004628222675307825, "n_nonfinite_mismatch": 0}}, "stress": {"n_draws": 200, "multiplicity_agreement": 1.0, "raw_count_agreement": 1.0, "n_multiplicity_mismatch": 0, "max_position_error": 0.00015786921423129578, "p99_position_error": 0.00014084184669768283, "median_position_error": 5.966895436132821e-05, "ref_distinct_histogram": {"2": 163, "4": 37}}} + best admissible (precision-equivalent): step0_structured; any precision: step0_structured + reference image extent: {'prior': {'max_abs_y': 1.77939453125, 'max_abs_x': 1.7773254429359933, 'max_abs_coord': 1.77939453125, 'p99_abs_coord': 1.7590830914129167, 'max_radius': 1.8116226317743076}, 'stress': {'max_abs_y': 2.2498046875, 'max_abs_x': 2.300267215077964, 'max_abs_coord': 2.300267215077964, 'p99_abs_coord': 2.2027852305644777, 'max_radius': 2.5191249773380773}} + fiducial gate: {'value': 7.743201200876812, 'expected': 7.743201200876812, 'repr': '7.743201200876812', 'pass': True} + all_gates_pass: True + wall: 417 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.png +=== source_revisions check (JSON vs imported HEADs) === +autoarray_imported_from /mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather +OK /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-step0-gather/results/breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json all_gates_pass True +========================================== +loadavg: 1.48 1.33 0.66 1/1239 139598 +Finished. +Sun 27 Sep 12:11:29 BST 2026 diff --git a/results/notes/point_source_cpu_campaign.md b/results/notes/point_source_cpu_campaign.md index 92e883b4a..40d49bb6e 100644 --- a/results/notes/point_source_cpu_campaign.md +++ b/results/notes/point_source_cpu_campaign.md @@ -1292,3 +1292,185 @@ submit [`submit_breakdown_point_source_image_image_plane_p4_ral_cpu_fp64`](../.. - The completeness draws are the workspace prior plus one stress set. The per-package extents (task 4) must be checked on each package's own lenses, which the sanity-check warning (task 3) makes visible. + +## Phase 4b — step-0 containment without the triangle gather (2026-09-27) + +Issue: [PyAutoArray #579](https://github.com/PyAutoLabs/PyAutoArray/issues/579). Library branch +`feature/pointsolver-step0-gather` (PyAutoArray `c13b2d73`, unpushed at measurement time); profiling +branch `feature/point-source-cpu-p4b`. **The solver geometry does not change** (±9.9″ / 0.2 / 1e-3, +MCS 15); only the arithmetic path of the step-0 `Point` containment test does, and the result must be +bit-identical. + +### What changed in the library + +`ArrayTriangles.containing_indices` has four step-0 routes behind the trace-time switch +`autoarray.structures.triangles.array._STEP0_CONTAINMENT`. They apply only to the static initial +lattice (a `Step0Layout` carried as pytree aux data) and only to exactly `Point` (`type(shape) is +Point`; `Circle` etc. override `mask` and keep the general path): + +- `gather` — the pre-#579 general path: pad, `(N, 3, 2)` gather, no-op NaN `where`. **The "before".** +- `nopad` — the same gather without pad / `where` (laptop only; no faster, dropped on RAL). +- `components` — six `(N,)` 1-D gathers, one per vertex component; no `(N, 3, 2)` array. +- `structured` — **the branch default**: strided slices of the traced vertex table reshaped to its + lattice rows, one sign test per parity class, interleaved back to triangle order. No gather at all. + +Every route feeds `_barycentric_contains` the same six values in the same operation order, so the +mask and the kept indices are bit-identical. `control` in the tables is the branch's library default, +i.e. `structured`. + +### Instrument fixes (commit `7725a6b`) + +- `solver_config_sweep.py` step-0 split: phase 4a's `triangle_materialisation_ms` came from a prefix + returning `plane.triangles`, which is the general gather **whatever the route**, so it read + ≈ 0.8–1.0 ms on every route. It is now two numbers: + - `route_input_materialisation_ms` — route-aware: the six barycentric input components the + *active* route feeds the sign test, captured at trace time by swapping `_barycentric_contains`, + returned as jit outputs, minus ray trace. An upper bound: returning them forces XLA to write + arrays the fused containment may never write. On the EPYC run it reads 1.79 ms for `gather`, + 0.06 ms for `components` and 0.41 ms for `structured`, whose 24 strided slices are fused into the + sign test in the real call (its containment is no slower than `components`'). + - `general_gather_reference_ms` — the old prefix, kept as a route-independent reference. + - **Containment (`containing_indices` minus ray trace) stays the headline before/after number.** +- `image_plane.py`: each step's ray-trace prefix is now `jnp.sum(plane.vertices)`, so the gather is + counted in containment. The job-356365 per-step trace / containment split is marked not quotable in + the docstring; the JSON records the prefix method. + +### Environment and provenance + +- Protocol as phase 4a: fresh closure + `jax.clear_caches()` per route, 20 rounds × 20 calls, + round-robin with rotated start, 3 warm calls, 16-instance stream, bootstrap 90 % CI (2000 + samples), 200 prior + 200 stress completeness draws against the fine reference, vmap 1 / 4 / 16, + no persistent compile cache (cold `compile_s`). Routes: `control,gather,components,structured`. +- **Library code on RAL:** a `git clone --shared` of the mirror's PyAutoArray with the branch fetched + from a bundle, detached at `c13b2d73` (`/mnt/ral/jnightin/autolens_profiling_wt/PyAutoArray_pointsolver-step0-gather`), + first on `PYTHONPATH`; everything else from the shared mirror. Each job refuses to run unless + `autoarray` imports from the clone and the rest from the mirror, and asserts the JSON + `source_revisions` against the imported HEADs (and that PyAutoArray descends from `c13b2d73`). +- The mirror was pulled to the 2026.9.27.1 release commits during the session: PyAutoLens `def4decf`, + PyAutoGalaxy `879a9308`, PyAutoFit `5468c6ce`, PyAutoNerves `eb27da24`. Their diffs from the + laptop run's `4487eb47` / `0e4b89cf` / `cf83504e` / `2b3bc533` are README / docs / Colab-tag / Nerves + board-script only; **the point-source code path is identical**. +- RAL venv versus the dependency floors: jax / jaxlib 0.10.2 (= laptop), jax-cuda12 0.10.2, + nufftax 0.6.1 (floor 0.6.1), numpy 2.2.6, scipy 1.17.1 (cap 1.17.1). No floor violations. +- autolens_profiling on RAL: a worktree of the RAL checkout at `311e690` (`f7edb9f` + the fallback + submit). + +### Quotable row: RAL CPU, Xeon Platinum 8490H — job 357321 + +This ran on `euclid-ral-compute-10-4`, the phase-4a host, from the `ral` partition. It was submitted +at 11:59, pending until the queue cleared, and finished at 15:48 with a wall time of 480 s. The job +had 8 CPUs (`sched_affinity` 8), fp64, NPROC 8 and BLAS 1, and it passes `all_gates_pass: true`, with +provenance asserted: PyAutoArray `c13b2d73` from the branch clone, profiling `311e690`. JSON +[`solver_config_sweep_step0_hpc_ral_cpu_fp64.json`](../breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_fp64.json) +(`quotable: true`); log [`point_source_cpu_2026_09_27_ral_job_357321_step0_route_ab_8490h_cpu.out`](point_source_cpu_2026_09_27_ral_job_357321_step0_route_ab_8490h_cpu.out). + +**The node was heavily loaded.** Its loadavg was 199.9 at the start and 189.9 at the end (236 +cores). Phase 4a's job 356367 ran on the same node at 0.00 → 1.23. The routes are interleaved round +by round, so the ratios between routes stand. The absolute ms, and the gather spread (p10–p90 +1.85–2.66 ms), are inflated by contention and are **not comparable to phase 4a's 1.824 ms control**. + +| route | median ms | × gather | vs control [90 % CI] | containment ms | route inputs ms | ray trace ms | vmap-1 / 4 / 16 ms/L | compile s | XLA temp KB | FLOPs M | +|---|---:|---:|---:|---:|---:|---:|---|---:|---:|---:| +| gather (before) | 2.260 | 1.000 | 0.697 [0.683, 0.713] | 1.223 | 1.107 | 0.307 | 2.271 / 1.627 / 1.931 | 5.37 | 1692 | 3.38 | +| components | 1.550 | **1.458** | 1.017 [0.997, 1.030] | 0.433 | 0.071 | 0.320 | 1.564 / 1.149 / 1.108 | 5.68 | 1506 | 3.58 | +| **structured** (default) | 1.570 | **1.440** | 1.005 [0.990, 1.020] | 0.494 | 0.197 | 0.321 | 1.601 / 1.100 / 0.851 | 5.83 | **902** | **2.80** | +| control (= structured) | 1.576 | 1.434 | 1.000 [0.989, 1.011] | 0.491 | 0.188 | 0.319 | 1.654 / 1.123 / 0.854 | 5.81 | 902 | 2.80 | + +- The "× gather" column is a ratio of the medians. The bootstrap CI is against the control, which is + `structured`. Paired-round ratio against the control: gather 0.672 (p10–p90 0.61–0.80), components + 0.992 (0.87–1.13), structured 0.992 (0.91–1.10). +- Containment falls **1.223 → 0.494 ms (−60 %)**, and the whole likelihood goes from 2.26 to 1.57 ms + (**1.44×**). On the scalar call `structured` and `components` are statistically tied: components' + CI against the control, [0.997, 1.030], overlaps structured's. +- vmap × gather: structured 1.42 / 1.48 / **2.27**, components 1.45 / 1.41 / 1.74. The gather row's + vmap-16 (1.931 ms/L, slower than its vmap-4) is the contention-inflated cell. Even so, structured + is best at vmap-16 (0.851 against components' 1.108 ms/L). +- Compile is +5.7 % for components and +8.6 % for structured over gather, one cold compile each on a + loaded node. That is inside the +20 % gate. `structured` is again the only route that cuts XLA temp + memory (−47 %) and FLOPs. + +### Supplementary: RAL CPU, AMD EPYC 7702 — job 357335 + +The known fallback: CPU-only on an idle `gpu`-partition node, no `--gres`, `euclid-ral-gpu-2` +(8 CPUs, `sched_affinity` 8, fp64, NPROC 8, BLAS 1, phase-1 XLA_FLAGS; loadavg 0.29 → 1.48; wall +417 s). **A different CPU from phase 4a's 8490H: the within-node ×gather ratios are valid, the +absolute ms are not comparable to phase 4a.** JSON +[`solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json`](../breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_cpu_epyc7702_fp64.json) +(`quotable: "supplementary"`, `host_note` added post-run); +log [`point_source_cpu_2026_09_27_ral_job_357335_step0_route_ab_epyc7702_cpu.out`](point_source_cpu_2026_09_27_ral_job_357335_step0_route_ab_epyc7702_cpu.out). + +| route | median ms | × gather [90 % CI] | containment ms | route inputs ms | ray trace ms | vmap-1 / 4 / 16 ms/L | compile s | XLA temp KB | FLOPs M | +|---|---:|---:|---:|---:|---:|---|---:|---:|---:| +| gather (before) | 3.184 | 1.000 [0.993, 1.008] | 1.906 | 1.793 | 0.489 | 3.255 / 2.494 / 2.121 | 4.00 | 1692 | 3.38 | +| components | 1.979 | **1.608** [1.598, 1.621] | 0.594 | 0.056 | 0.492 | 2.020 / 1.380 / 1.166 | 4.12 | 1506 | 3.58 | +| **structured** (default) | 1.971 | **1.615** [1.603, 1.628] | 0.647 | 0.406 | 0.481 | 2.023 / 1.446 / 1.133 | 4.19 | **902** | **2.80** | +| control (= structured) | 1.981 | 1.607 [1.593, 1.624] | 0.641 | 0.375 | 0.495 | 1.998 / 1.442 / 1.139 | 4.06 | 902 | 2.80 | + +- Containment falls **1.906 → 0.65 ms (−66 %)**; the whole likelihood 3.18 → 1.97 ms. `structured` + and `components` are statistically tied on the scalar call (paired-round ratio vs control: + components 1.006, structured 1.007, both p10–p90 0.96–1.05). +- vmap ×gather: structured 1.61 / 1.72 / **1.87**, components 1.61 / 1.81 / 1.82. +- Compile: +2.9 % (components) / +4.8 % (structured) over gather, one cold compile each — inside the + +20 % gate. Memory: `structured` is the only route that cuts XLA temp memory (1692 → 902 KB, −47 %) + and FLOPs (3.38 → 2.80 M); `components` keeps 1506 KB and adds FLOPs. +- The general-gather reference prefix reads 0.97–1.01 ms on every route, as it must. + +### A100 no-regression row — job 357322 + +`euclid-ral-gpu-1`, NVIDIA A100 80 GB PCIe (driver 610.57.04), host CPU EPYC 7702, `JAX_PLATFORMS=cuda` +and `JAX_PLATFORM_NAME=cuda`, the job asserted the `gpu` backend; wall 432 s. JSON +[`solver_config_sweep_step0_hpc_ral_a100_fp64.json`](../breakdown/point_source_image/solver_config_sweep_step0_hpc_ral_a100_fp64.json); +log [`point_source_cpu_2026_09_27_ral_job_357322_step0_route_ab_a100.out`](point_source_cpu_2026_09_27_ral_job_357322_step0_route_ab_a100.out). + +| route | median ms | × gather [90 % CI] | containment ms | vmap-1 / 4 / 16 ms/L | compile s | XLA temp KB | +|---|---:|---:|---:|---|---:|---:| +| gather | 0.837 | 1.000 [0.996, 1.004] | 0.085 | 0.830 / 0.228 / 0.069 | 5.55 | 390 | +| components | 0.839 | 0.999 [0.995, 1.002] | 0.083 | 0.831 / 0.229 / 0.068 | 5.65 | 390 | +| structured | 0.838 | 0.999 [0.995, 1.003] | 0.090 | 0.838 / 0.231 / 0.071 | 5.73 | 390 | + +**No regression, and no gain: ~1.00×**, as expected for the launch-bound A100 (phase 3). vmap-16 +structured is 0.97× gather (0.071 vs 0.069 ms/L, a 2 µs difference). Compile +3.2 % (structured). +`all_gates_pass` is false **only** because `gates.fiducial_bit_exact` expects the CPU value `…812`: +the A100 fiducial `7.743201200876806` equals the phase-2/3 A100 rows bit for bit, and every route is +bit-identical to the control. The harness now expects the backend's own fiducial (`FIDUCIAL_SOLVED_LOG_L_BY_BACKEND`: CPU `…812`, GPU `…806`), so a re-run of this row reports `all_gates_pass: true`; the committed JSON predates that fix. + +### Laptop witness (not quotable) + +`solver_config_sweep_step0_laptop_cpu_fp64.json` (WSL2, commit `9f3fc61`; old instrument, so no +route-inputs column): gather 2.221 ms, components 1.555 (1.43×), structured 1.613 (1.38×), nopad 2.249 +(0.99×). vmap-16 ms/L 1.50 / 1.00 / 0.78 (structured 1.91×, components 1.50×). Containment +1.239 → 0.481 (components) / 0.600 (structured). + +### Gates (every run) + +- `gates.step0_route_bit_identity` passes for every route on the 8490H, EPYC, laptop and A100: stream, fiducial + and prior log L, prior and stress positions, image counts, `jax.grad` and the vmap values are + bit-identical to the control. +- Fiducial `7.743201200876812` bit-exact on all three CPUs: 8490H, EPYC and laptop (A100: `…806`, its established value). +- Completeness: every route 200/200 prior + 200/200 stress, max position error 8.51e-4″ (unchanged + from phase 4a). +- `jax.grad` finite and non-zero on every route; the MCS patch is restored. +- Compile ≤ +9 % (8490H, loaded node; ≤ +5 % on EPYC; gate +20 %). XLA temp memory ≤ gather's on every route (structured −47 % on CPU). + +### Verdict + +Removing the gather cuts the step-0 containment by 60–66 % on CPU, with bit-identical output. On +the quotable 8490H row the likelihood is 1.44× faster (2.27× under vmap-16, on a loaded node); on the +EPYC CPU it is 1.61× (1.87× under vmap-16); on the laptop it is +1.38–1.43×. It does not regress the A100. **Keep `structured` as the default:** it ties `components` +on the scalar CPU call (the laptop's 4 % edge for `components` is within WSL2 noise and does not +reproduce on RAL), wins under vmap-16 on both CPUs (1.87× / 1.91× vs 1.82× / 1.50×), and is the only +route that also cuts XLA temp memory and FLOPs. `components` stays the fallback for a lattice whose +vertex table does not follow the closed-form layout (`Step0Layout.grid is None`). The quotable 8490H +row (job 357321, on a loaded node) confirms it: **1.44×** on the scalar call, −60 % containment, and +structured the best route at vmap-16 (2.27× gather). PyAutoArray PR #580 merged on 2026-09-27 as +`4383ea81`. + +### Reproduce (RAL) + +```bash +# RAL worktree of feature/point-source-cpu-p4b + the PyAutoArray branch clone (see the submits' LIBRARY block) +hpc/sync submit --cpu submit_breakdown_point_source_image_solver_config_sweep_step0_ral_cpu_fp64 # quotable, 8490H +hpc/sync submit --cpu submit_breakdown_point_source_image_solver_config_sweep_step0_gpu_node_cpu_fp64 # EPYC fallback +hpc/sync submit --gpu submit_breakdown_point_source_image_solver_config_sweep_step0_a100_fp64 # A100 +``` diff --git a/scripts/point_source_image/likelihood_breakdown/image_plane.py b/scripts/point_source_image/likelihood_breakdown/image_plane.py index 5c2d7cdd6..a026ff02d 100644 --- a/scripts/point_source_image/likelihood_breakdown/image_plane.py +++ b/scripts/point_source_image/likelihood_breakdown/image_plane.py @@ -15,6 +15,12 @@ is retained as measurement noise. The fused end-to-end likelihood is the authoritative runtime control. +Each step's ray-trace prefix is ``jnp.sum`` of the traced vertices, so the +``vertices[indices]`` triangle gather is counted in containment. Rows committed +before PyAutoArray#579 (e.g. RAL job 356365) returned the materialised triangles +at that prefix, which put the gather in the ray-trace row; their per-step +ray-trace / containment split is not quotable. + The primary path uses ``PointSolved`` and ``FitPositionsImagePairAllSolved``. A separately labelled free-centre ``PointFlux`` / ``FitPositionsImagePairAll`` full-likelihood control confirms @@ -189,7 +195,11 @@ def _solver_prefix(params, *, stop_step: int, stop_stage: str): plane_redshift=fit.plane_redshift, ) if step_number == stop_step and stop_stage == "ray_trace": - return plane_triangles.triangles + # A scalar reduction forces every deflection of this step but writes no + # (N, 3, 2) output. Returning ``plane_triangles.triangles`` here (job 356365 + # and earlier) counted the ``vertices[indices]`` gather as ray trace; the + # gather now lands in the containment row, where the solver pays for it. + return jnp.sum(plane_triangles.vertices) indexes = plane_triangles.containing_indices(shape=shape) if step_number == stop_step and stop_stage == "containment": @@ -418,6 +428,10 @@ def magnification_filter_prefix(params): "prefix_rows": "successive differences of cumulative JIT prefixes", "negative_rows": "retained; XLA fusion and timing noise can move work across boundaries", "authoritative_runtime": "fused_full_solved_s", + "ray_trace_prefix": ( + "jnp.sum(plane_triangles.vertices): deflections only; the vertices[indices] " + "gather is counted in containment (PyAutoArray#579 fix)" + ), }, } diff --git a/scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py b/scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py index 50ce03600..3e1efe95c 100644 --- a/scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py +++ b/scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py @@ -79,7 +79,11 @@ ``compile_s``, FLOPs (``cost_analysis``), XLA ``memory_analysis`` and ``vmap`` batches 1 / 4 / 16 for the control and the best admissible configuration. For each distinct step-0 geometry the step-0 ray trace and ray trace + containment are timed -as their own jitted prefixes, so the containment share is recorded. +as their own jitted prefixes, so the containment share is recorded. Two further +prefixes size the materialisation: ``route_inputs`` returns the six barycentric +input components the ACTIVE step-0 route feeds the sign test (route-aware), and +``general_gather`` returns ``plane.triangles`` (the general ``(N, 3, 2)`` gather, +route-independent reference). Containment is the headline before/after number. Finally, the NumPy solver (dynamic shapes, no ``MAX_CONTAINING_SIZE`` cap) counts how many triangles contain β* at every step on the prior draws, for the control and the best admissible geometries: the margin the production cap of 15 actually has. @@ -88,13 +92,28 @@ ----- - The control's solved log L on the prior-median vector equals the fiducial - ``7.743201200876812`` bit-exactly. + ``7.743201200876812`` bit-exactly on CPU (``7.743201200876806`` on the A100). - ``jax.grad`` of the likelihood is finite and non-zero for every admissible configuration. ``autofit.jax.register_model(model)`` is load-bearing: without it the gradient is silently all-zero. - The ``MAX_CONTAINING_SIZE`` patch is proved per route from the traced shapes (the padded solution has ``MAX_CONTAINING_SIZE`` rows). +Step-0 containment routes (phase 4b) +------------------------------------ + +``--step0-route`` (a comma list of ``control,gather,nopad,components,structured``) +replaces the geometry sweep with a library-route A/B at the production geometry +(PyAutoArray#579): each named route is a config ``step0_`` beside +``control`` that sets ``autoarray.structures.triangles.array._STEP0_CONTAINMENT`` +for the duration of **tracing** (the switch is read at trace time; see +:func:`step0_containment`). ``control`` is the production default, unpatched. +Every route is timed, completeness-checked, grad-checked and ``vmap``-ed at +1 / 4 / 16, gets its own step-0 prefix split, and must be bit-identical to the +control on the stream / fiducial log L, the prior + stress positions, the +gradients and the ``vmap`` values (``gates["step0_route_bit_identity"]``). Output +``solver_config_sweep_step0_``. + Output ------ @@ -167,6 +186,16 @@ def _profiling_root() -> Path: _cell_parser.add_argument("--step0-rounds", type=int, default=None) _cell_parser.add_argument("--seed", type=int, default=314) _cell_parser.add_argument("--list-configs", action="store_true") +STEP0_ROUTE_CHOICES = ("control", "gather", "nopad", "components", "structured") +_cell_parser.add_argument( + "--step0-route", + default=None, + help=( + "comma list of step-0 containment library routes " + f"({','.join(STEP0_ROUTE_CHOICES)}): replaces the geometry sweep with a route A/B " + "at the production geometry (phase 4b, PyAutoArray#579)" + ), +) _cell_parser.add_argument( "--quick", action="store_true", @@ -199,7 +228,12 @@ def _profiling_root() -> Path: from autofit.jax import register_model as register_model_pytrees # noqa: E402 from autolens.point.solver import shape_solver as _shape_solver # noqa: E402 -FIDUCIAL_SOLVED_LOG_L = 7.743201200876812 +# The fiducial is bit-exact per backend: the CPU value, and the value every RAL A100 fp64 row +# has reproduced (static_lattice_ab / vertex_dedup_ab / this sweep's step-0 A100 row). +FIDUCIAL_SOLVED_LOG_L_BY_BACKEND = {"cpu": 7.743201200876812, "gpu": 7.743201200876806} +FIDUCIAL_SOLVED_LOG_L = FIDUCIAL_SOLVED_LOG_L_BY_BACKEND.get( + jax.default_backend(), FIDUCIAL_SOLVED_LOG_L_BY_BACKEND["cpu"] +) PRODUCTION_PRECISION = 0.001 PRODUCTION_MCS = int(_triangles_array.MAX_CONTAINING_SIZE) ADMISSIBLE_POSITION_TOL = 0.002 @@ -223,6 +257,7 @@ def _cfg( precision=PRODUCTION_PRECISION, mcs=None, neighbor_degree=1, + step0_route=None, ): return { "name": name, @@ -232,6 +267,7 @@ def _cfg( "precision": precision, "max_containing_size": PRODUCTION_MCS if mcs is None else mcs, "neighbor_degree": neighbor_degree, + "step0_route": step0_route, } @@ -282,6 +318,24 @@ def _cfg( if unknown: raise SystemExit(f"--configs: unknown {unknown}; see --list-configs") CONFIGS = [c for c in CONFIGS if c["name"] == "control" or c["name"] in wanted] +STEP0_ROUTES = None +if _args.step0_route: + if not hasattr(_triangles_array, "_STEP0_CONTAINMENT"): + raise SystemExit( + "--step0-route: the imported PyAutoArray has no _STEP0_CONTAINMENT switch " + f"({_triangles_array.__file__})" + ) + STEP0_ROUTES = [r.strip() for r in _args.step0_route.split(",") if r.strip()] + unknown = [r for r in STEP0_ROUTES if r not in STEP0_ROUTE_CHOICES] + if unknown: + raise SystemExit(f"--step0-route: unknown {unknown}; choose from {STEP0_ROUTE_CHOICES}") + CONFIGS = [c for c in CONFIGS if c["name"] == "control"] + [ + _cfg(f"step0_{r}", "step0_route", step0_route=r) + for r in dict.fromkeys(STEP0_ROUTES) + if r != "control" + ] +STEP0_MODE = STEP0_ROUTES is not None +LIBRARY_STEP0_DEFAULT = getattr(_triangles_array, "_STEP0_CONTAINMENT", None) CONFIG_NAMES = [c["name"] for c in CONFIGS] _GRID = al.Grid2D.uniform(shape_native=GRID_SHAPE, pixel_scales=GRID_PIXEL_SCALE) @@ -335,6 +389,7 @@ def static_description(cfg) -> dict: "step0_rows": int(vertices.shape[0]), "max_containing_size": cfg["max_containing_size"], "neighbor_degree": cfg["neighbor_degree"], + "step0_route": cfg.get("step0_route") or f"library default ({LIBRARY_STEP0_DEFAULT})", } @@ -356,8 +411,10 @@ def max_containing_size(mcs: int): init = _triangles_array.ArrayTriangles.__init__ fls = _triangles_array.ArrayTriangles.for_limits_and_scale.__func__ saved = (init.__defaults__, fls.__defaults__, _triangles_array.MAX_CONTAINING_SIZE) - init.__defaults__ = (int(mcs),) - fls.__defaults__ = (int(mcs),) + # max_containing_size is the FIRST defaulted parameter of both; keep any later defaults + # (e.g. ArrayTriangles.__init__'s step0_layout=None, PyAutoArray#579) in place. + init.__defaults__ = (int(mcs),) + tuple(saved[0][1:]) + fls.__defaults__ = (int(mcs),) + tuple(saved[1][1:]) _triangles_array.MAX_CONTAINING_SIZE = int(mcs) try: yield @@ -365,6 +422,28 @@ def max_containing_size(mcs: int): init.__defaults__, fls.__defaults__, _triangles_array.MAX_CONTAINING_SIZE = saved +_ORIGINAL_INIT_DEFAULTS = _triangles_array.ArrayTriangles.__init__.__defaults__ + + +@contextlib.contextmanager +def step0_containment(route): + """Set the library's step-0 containment route for the duration of tracing. + + ``route`` None (the control) leaves the library default untouched. The switch is + read at trace time, so patching the lowering is enough; ``compile_route`` already + uses a fresh closure and ``jax.clear_caches()`` per route. + """ + if route is None: + yield + return + saved = _triangles_array._STEP0_CONTAINMENT + _triangles_array._STEP0_CONTAINMENT = route + try: + yield + finally: + _triangles_array._STEP0_CONTAINMENT = saved + + @contextlib.contextmanager def trace_recorder(): """Record the ray-traced row count of every solver step while tracing.""" @@ -619,7 +698,11 @@ def compile_route( jax.clear_caches() fn = factory() rss0 = _rss_bytes() - with max_containing_size(cfg["max_containing_size"]), trace_recorder() as record: + with ( + max_containing_size(cfg["max_containing_size"]), + step0_containment(cfg.get("step0_route")), + trace_recorder() as record, + ): t0 = time.perf_counter() lowered = jax.jit(fn).lower(example) lower_s = time.perf_counter() - t0 @@ -1048,8 +1131,11 @@ def _image_extent(pos_list): "patch_restored": { "module_constant": int(_triangles_array.MAX_CONTAINING_SIZE), "init_default": _triangles_array.ArrayTriangles.__init__.__defaults__, + "step0_containment": LIBRARY_STEP0_DEFAULT, "pass": int(_triangles_array.MAX_CONTAINING_SIZE) == PRODUCTION_MCS - and _triangles_array.ArrayTriangles.__init__.__defaults__ == (PRODUCTION_MCS,), + and _triangles_array.ArrayTriangles.__init__.__defaults__ == _ORIGINAL_INIT_DEFAULTS + and _ORIGINAL_INIT_DEFAULTS[0] == PRODUCTION_MCS + and getattr(_triangles_array, "_STEP0_CONTAINMENT", None) == LIBRARY_STEP0_DEFAULT, }, } note( @@ -1059,7 +1145,7 @@ def _image_extent(pos_list): grad_gate = {} for cfg in CONFIGS: name = cfg["name"] - if not (admissibility[name] or name == "control"): + if not (admissibility[name] or name == "control" or STEP0_MODE): continue def gfactory(cfg=cfg): @@ -1105,8 +1191,10 @@ def _fastest(names): note(f"best admissible (precision-equivalent): {best}; any precision: {best_any_precision}") vmap_block = None -if best is not None: - vroutes = [(n, b) for n in ("control", best) for b in VMAP_BATCHES] +vvals = {} +if best is not None or STEP0_MODE: + vmap_names = CONFIG_NAMES if STEP0_MODE else ["control", best] + vroutes = [(n, b) for n in vmap_names for b in VMAP_BATCHES] vexec, vcompile, vargs = {}, {}, {} for n, b in vroutes: cfg = next(c for c in CONFIGS if c["name"] == n) @@ -1135,7 +1223,7 @@ def vfactory(cfg=cfg): dt, out = _timed_call(vexec[key], vargs[key][k]) vtimes[key].append(dt) vvals[key].setdefault(k, np.asarray(out, dtype=float).tolist()) - vmap_block = {"best": best, "batches": list(VMAP_BATCHES), "rows": {}} + vmap_block = {"best": best, "routes": vmap_names, "batches": list(VMAP_BATCHES), "rows": {}} for i, (n, b) in enumerate(vroutes): st = _stats_ms(vtimes[(n, b)]) vmap_block["rows"][f"{n}_vmap{b}"] = { @@ -1146,12 +1234,15 @@ def vfactory(cfg=cfg): "compile": vcompile[(n, b)], "values_first_batch": vvals[(n, b)].get(0), } - for b in VMAP_BATCHES: - vmap_block["rows"][f"{best}_vmap{b}"]["speedup_vs_control_same_batch"] = _median_ratio( - vtimes[("control", b)], vtimes[(best, b)], BOOTSTRAP_SEED + 100 + b - ) - # vmap vs scalar consistency (control, first batch) - for n in ("control", best): + for j, n in enumerate(vmap_names): + if n == "control": + continue + for b in VMAP_BATCHES: + vmap_block["rows"][f"{n}_vmap{b}"]["speedup_vs_control_same_batch"] = _median_ratio( + vtimes[("control", b)], vtimes[(n, b)], BOOTSTRAP_SEED + 100 + 17 * j + b + ) + # vmap vs scalar consistency (first batch) + for n in vmap_names: for b in VMAP_BATCHES: first = vvals[(n, b)].get(0) scalar = [values[n].get(k) for k in range(b)] @@ -1165,9 +1256,100 @@ def vfactory(cfg=cfg): ) ) +# --- 5b. step-0 route bit-identity gate (phase 4b) ------------------------------ + + +def _same(a, b) -> bool: + return bool(np.array_equal(np.asarray(a, float), np.asarray(b, float), equal_nan=True)) + + +if STEP0_MODE: + identity = {} + for name in CONFIG_NAMES: + if name == "control": + continue + counts = { + s: [ + (int(finite_positions(a).shape[0]), int(finite_positions(b).shape[0])) + for a, b in zip(raw_positions[s]["control"], raw_positions[s][name]) + ] + for s in raw_positions + if name in raw_positions[s] + } + checks = { + "stream_log_likelihood": [values[name].get(k) for k in sorted(values["control"])] + == [values["control"][k] for k in sorted(values["control"])], + "fiducial_log_likelihood": values[name].get(0) == values["control"].get(0), + "prior_log_likelihood": _same(config_logl[name], config_logl["control"]), + "prior_positions": all( + _same(a, b) + for a, b in zip(raw_positions["prior"]["control"], raw_positions["prior"][name]) + ), + "stress_positions": all( + _same(a, b) + for a, b in zip( + raw_positions["stress"].get("control", []), + raw_positions["stress"].get(name, []), + ) + ), + "image_counts": all(a == b for c in counts.values() for a, b in c), + "grad": name in grad_gate + and _same(grad_gate[name]["gradients"], grad_gate["control"]["gradients"]), + "vmap": all( + vvals.get((name, b)) == vvals.get(("control", b)) and vvals.get((name, b)) + for b in VMAP_BATCHES + ), + } + identity[name] = { + "checks": checks, + "pass": all(checks.values()), + "image_count_histogram": { + s: { + str(k): int(v) + for k, v in zip(*np.unique([b for _, b in c], return_counts=True)) + } + for s, c in counts.items() + }, + } + gates["step0_route_bit_identity"] = identity + note( + "step-0 route bit-identity vs control: " + + ", ".join(f"{n}={v['pass']}" for n, v in identity.items()) + ) + # --- 6. step-0 ray trace vs containment split per geometry --------------------- note("step-0 split: ray trace vs ray trace + containment per geometry") +from autoarray.structures.triangles import shape as _triangles_shape # noqa: E402 + + +@contextlib.contextmanager +def capture_barycentric_inputs(): + """Capture, at trace time, what the ACTIVE step-0 route feeds the sign test. + + Every containment route -- the general ``Point.mask(self.triangles)`` path and the + PyAutoArray#579 routes -- ends in ``_barycentric_contains(x0, y0, x1, y1, x2, y2, px, + py)``. While this is active that helper is swapped (in both modules that bind it) for + one that records its six vertex-component arguments and returns an all-False mask of + the right shape, so the downstream ``jnp.where`` still traces. The step-0 prefix + returns the recorded components: the route's own input materialisation (the + ``(N, 3, 2)`` gather for ``gather``, six 1-D gathers for ``components``, strided + slices for ``structured``), not a fixed ``plane.triangles`` gather. + """ + captured = [] + + def recording(x0, y0, x1, y1, x2, y2, px, py): + captured.extend((x0, y0, x1, y1, x2, y2)) + return jnp.zeros(jnp.shape(x0), dtype=bool) + + saved = (_triangles_array._barycentric_contains, _triangles_shape._barycentric_contains) + _triangles_array._barycentric_contains = recording + _triangles_shape._barycentric_contains = recording + try: + yield captured + finally: + _triangles_array._barycentric_contains, _triangles_shape._barycentric_contains = saved + def step0_factory(cfg, stage): def factory(): @@ -1188,10 +1370,18 @@ def fn(vector): # A scalar reduction forces every step-0 deflection but writes no # (N, 3, 2) output, so containment is measured against it. return jnp.sum(plane.vertices) - if stage == "ray_trace_materialised": - # image_plane.py's ray-trace prefix (job 356365): returns the - # gathered (N, 3, 2) triangles, i.e. includes their materialisation. + if stage == "general_gather": + # The general path's (N, 3, 2) gather (image_plane.py's pre-#579 + # ray-trace prefix, job 356365). Route-INDEPENDENT: every route reads the + # same ~0.9 ms here, so it is a reference, not the route's cost. return plane.triangles + if stage == "route_inputs": + # What THIS route materialises for the sign test (route-aware). + with capture_barycentric_inputs() as captured: + plane.containing_indices(shape=shape) + if len(captured) % 6 or not captured: + raise RuntimeError(f"route_inputs: captured {len(captured)} components") + return tuple(captured) return plane.containing_indices(shape=shape) return fn @@ -1201,10 +1391,10 @@ def fn(vector): geoms = {} for cfg in CONFIGS: - key = (cfg["extent"], cfg["scale"]) + key = (cfg["extent"], cfg["scale"], cfg.get("step0_route")) geoms.setdefault(key, cfg) s0_exec = {} -stages = ("source_centre", "ray_trace", "ray_trace_materialised", "containment") +stages = ("source_centre", "ray_trace", "general_gather", "route_inputs", "containment") for key, cfg in geoms.items(): for stage in stages: s0_exec[(key, stage)], _ = compile_route( @@ -1236,11 +1426,21 @@ def fn(vector): "prefix_median_ms": med, "ray_trace_ms": trace, "containment_ms": contain, - "triangle_materialisation_ms": med["ray_trace_materialised"] - med["ray_trace"], + # Route-aware: the route's own barycentric inputs written out as jit outputs, + # minus ray trace. An upper bound on what the fused containment pays for them + # (XLA may fuse the inputs into the sign test and never write them). + "route_input_materialisation_ms": med["route_inputs"] - med["ray_trace"], + # Route-independent reference: the general (N, 3, 2) gather, whatever the route. + # Phase 4a's "triangle_materialisation_ms" (job 356367) is this quantity. + "general_gather_reference_ms": med["general_gather"] - med["ray_trace"], + "step0_route": descriptions[cfg["name"]]["step0_route"], "method": ( "prefix medians; ray_trace = jnp.sum(plane.vertices) minus source_centre; " "containment = containing_indices minus ray_trace (includes the vertices[indices] " - "gather + Point.mask + jnp.where); ray_trace_materialised = image_plane.py's prefix" + "gather + Point.mask + jnp.where) and is the headline before/after number; " + "route_input_materialisation = the route's six barycentric input components " + "returned as outputs (captured at trace time) minus ray_trace; " + "general_gather_reference = plane.triangles minus ray_trace, route-independent" ), "step0_ms": trace + contain, "containment_share_of_step0": contain / (trace + contain) if trace + contain > 0 else None, @@ -1368,12 +1568,15 @@ def containing_counts(cfg, draws): and gates["patch_restored"]["pass"] and all(g["pass"] for g in gates["max_containing_size_patch"].values() if g) and all(g["pass"] for g in grad_gate.values()) + and all(g["pass"] for g in gates.get("step0_route_bit_identity", {}).values()) ) summary = { - "cell": "solver_config_sweep", - "issue": "PyAutoLabs/autolens_profiling#314", - "phase": "4a", + "cell": "solver_config_sweep_step0" if STEP0_MODE else "solver_config_sweep", + "issue": "PyAutoLabs/PyAutoArray#579" if STEP0_MODE else "PyAutoLabs/autolens_profiling#314", + "phase": "4b" if STEP0_MODE else "4a", + "step0_routes": STEP0_ROUTES, + "library_step0_default": LIBRARY_STEP0_DEFAULT, "config_name": config_name, "quotable": not config_name.startswith(("laptop", "local")), "host_note": ( @@ -1468,8 +1671,10 @@ def containing_counts(cfg, draws): dict_path, chart_path = resolve_output_paths( _cli, default_dir=_ROOT / "results" / "breakdown" / "point_source_image", - default_basename="solver_config_sweep_local", - cell="solver_config_sweep", + default_basename="solver_config_sweep_step0_local" + if STEP0_MODE + else "solver_config_sweep_local", + cell="solver_config_sweep_step0" if STEP0_MODE else "solver_config_sweep", ) dict_path.write_text(json.dumps(_scrub(summary), indent=2, default=str))