diff --git a/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_mcs_ral_cpu_fp64 b/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_mcs_ral_cpu_fp64 new file mode 100644 index 000000000..c62958958 --- /dev/null +++ b/hpc/batch_cpu/submit_breakdown_point_source_image_solver_config_sweep_mcs_ral_cpu_fp64 @@ -0,0 +1,139 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 4c: the MAX_CONTAINING_SIZE +# headroom A/B (PyAutoArray#583) on RAL CPU. +# +# WHAT THIS MEASURES. scripts/point_source_image/likelihood_breakdown/ +# solver_config_sweep.py --mcs-headroom: the production FitPositionsImagePairAllSolved +# likelihood at the production geometry (+-9.9" / 0.2 / 1e-3) with the library's +# MAX_CONTAINING_SIZE (15, the control) against 18 / 20 / 24, each patched for +# tracing only (ArrayTriangles __defaults__ + module constant; fresh closure + +# jax.clear_caches() per route), interleaved 20 rounds x 20 calls, bootstrap 90 % +# CI, vmap 1/4/16, compile_s, XLA memory, FLOPs, the 200 prior + 200 stress +# completeness draws, the NumPy uncapped containing counts for EVERY refinement +# step on the prior / stress / stream draws, and +# gates.mcs_no_unexplained_change (a row may differ from the control only on a +# draw whose uncapped count exceeds the control's cap at some step). +# +# LIBRARY. Unchanged: every library is the shared mirror (/mnt/ral/jnightin/PyAuto, +# via activate.sh). The job refuses to run unless every library imports from the +# mirror and PyAutoArray includes #580 (4383ea81, the phase-4b step-0 route), and +# asserts the JSON source_revisions against the mirror HEADs 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-4b. +# XLA_FLAGS are the phase-1 row's, byte for byte. +# +# NODE. Pinned to the Xeon Platinum 8490H node of phases 4a/4b (euclid-ral-compute-10-4, +# jobs 356367 / 357321). Check `sinfo -p ral -N -o "%N %T %C"` first: `idle*` +# nodes are unreachable. + +# WALL-BASIS: +# RAL job 357321 (this cell in phase-4b form, --step0-route with 4 routes, 8490H +# euclid-ral-compute-10-4 under load ~200, 8 CPUs, 200 + 200 draws, 20 x 20) ran +# 480 s. Phase 4c also runs 4 routes (control + 3 caps) plus the NumPy uncapped +# counts on 200 stress + 16 stream draws, so the basis is scaled to 600 s. +# Headroom 3 covers a quieter or busier node. +# cell: point_source_image/solver_config_sweep/simple device: cpu precision: fp64 +# source: measured-wall wall: 600 ref: ral-job-357321-point_source_image-solver_config_sweep headroom: 3.0 + +#SBATCH -J point_source_mcs_p4c +#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 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 --mcs-headroom" +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 "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" +git -C /mnt/ral/jnightin/PyAuto/PyAutoArray merge-base --is-ancestor 4383ea81 HEAD \ + || { echo "FATAL: mirror PyAutoArray lacks #580 (4383ea81); HPCPullPyAuto first" >&2; exit 2; } + +cd $AP_ROOT + +echo "=== import provenance ===" +python3 - <<'PYEOF' || exit 3 +import autoarray, autofit, autogalaxy, autolens, jax, jaxlib, numpy +for m in (autoarray, autofit, autogalaxy, autolens): + print(f"{m.__name__:<11} {m.__version__:<12} {m.__file__}") + 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("MAX_CONTAINING_SIZE", a.MAX_CONTAINING_SIZE, "_STEP0_CONTAINMENT", a._STEP0_CONTAINMENT) +if a.MAX_CONTAINING_SIZE != 15: + raise SystemExit(f"REFUSING: library MAX_CONTAINING_SIZE {a.MAX_CONTAINING_SIZE}, control must be 15") +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" \ + --mcs-headroom \ + --n-draws 200 --n-stress 200 --rounds 20 --calls 20 + +echo "=== source_revisions check (JSON vs imported HEADs) ===" +python3 - "$RESULTS_DIR/solver_config_sweep_mcs_${CONFIG_NAME}.json" <<'PYEOF' +import json, 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() +for r in ("PyAutoNerves", "PyAutoFit", "PyAutoArray", "PyAutoGalaxy", "PyAutoLens"): + h = head(f"/mnt/ral/jnightin/PyAuto/{r}") + if revs[r] != h: + raise SystemExit(f"MISMATCH {path}: {r} JSON {revs[r]} != {h}") +subprocess.check_call(["git", "-C", "/mnt/ral/jnightin/PyAuto/PyAutoArray", "merge-base", + "--is-ancestor", "4383ea81", 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_mcs_a100_fp64 b/hpc/batch_gpu/submit_breakdown_point_source_image_solver_config_sweep_mcs_a100_fp64 new file mode 100644 index 000000000..c6dc04fc8 --- /dev/null +++ b/hpc/batch_gpu/submit_breakdown_point_source_image_solver_config_sweep_mcs_a100_fp64 @@ -0,0 +1,144 @@ +#!/bin/bash -l +# +# 2026-09 point-source CPU speed-up campaign, phase 4c: the MAX_CONTAINING_SIZE +# headroom A/B (PyAutoArray#583): the A100 no-regression leg for the chosen cap +# (N = 20). The A100 is launch-bound for this likelihood (phases 3 / 4b), so ~1x +# is the expectation. +# +# WHAT THIS MEASURES. scripts/point_source_image/likelihood_breakdown/ +# solver_config_sweep.py --mcs-headroom --configs control,mcs20: the production +# FitPositionsImagePairAllSolved likelihood at the production geometry +# (+-9.9" / 0.2 / 1e-3) with the library's MAX_CONTAINING_SIZE (15, the control) +# against 20, patched for tracing only (ArrayTriangles __defaults__ + module +# constant; fresh closure + jax.clear_caches() per row), interleaved 20 rounds x +# 20 calls, bootstrap 90 % CI, vmap 1/4/16, compile_s, XLA memory, FLOPs, the +# 200 prior + 200 stress completeness draws, the NumPy uncapped containing counts +# for every refinement step, and gates.mcs_no_unexplained_change. +# +# LIBRARY. Unchanged: the row measures the control-vs-MCS-20 patch, so it needs +# no library branch. Every library is the shared mirror (/mnt/ral/jnightin/PyAuto, +# via activate.sh); the job refuses to run unless every library imports from the +# mirror, the mirror PyAutoArray includes #580 (4383ea81) and its +# MAX_CONTAINING_SIZE is still 15, 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". +# The harness's fiducial gate is backend-aware (A100 7.743201200876806). +# XLA_FLAGS are byte-identical to the CPU submit's. + +# WALL-BASIS: +# RAL job 357322 (this cell in phase-4b form, --step0-route with 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. Phase 4c runs 2 +# rows (control + mcs20) plus the NumPy uncapped counts, so 432 s stays the basis. +# 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_mcs_p4c_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 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 row. +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 --mcs-headroom --configs control,mcs20" +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 "AP_ROOT rev: $(git -C $AP_ROOT rev-parse HEAD 2>&1)" +git -C /mnt/ral/jnightin/PyAuto/PyAutoArray merge-base --is-ancestor 4383ea81 HEAD \ + || { echo "FATAL: mirror PyAutoArray lacks #580 (4383ea81); HPCPullPyAuto first" >&2; exit 2; } + +cd $AP_ROOT + +echo "=== import provenance ===" +python3 - <<'PYEOF' || exit 3 +import autoarray, autofit, autogalaxy, autolens, jax, jaxlib, numpy +for m in (autoarray, autofit, autogalaxy, autolens): + print(f"{m.__name__:<11} {m.__version__:<12} {m.__file__}") + 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("MAX_CONTAINING_SIZE", a.MAX_CONTAINING_SIZE, "_STEP0_CONTAINMENT", a._STEP0_CONTAINMENT) +if a.MAX_CONTAINING_SIZE != 15: + raise SystemExit(f"REFUSING: library MAX_CONTAINING_SIZE {a.MAX_CONTAINING_SIZE}, control must be 15") +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" \ + --mcs-headroom --configs control,mcs20 \ + --n-draws 200 --n-stress 200 --rounds 20 --calls 20 + +echo "=== source_revisions check (JSON vs imported HEADs) ===" +python3 - "$RESULTS_DIR/solver_config_sweep_mcs_${CONFIG_NAME}.json" <<'PYEOF' +import json, 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() +for r in ("PyAutoNerves", "PyAutoFit", "PyAutoArray", "PyAutoGalaxy", "PyAutoLens"): + h = head(f"/mnt/ral/jnightin/PyAuto/{r}") + if revs[r] != h: + raise SystemExit(f"MISMATCH {path}: {r} JSON {revs[r]} != {h}") +subprocess.check_call(["git", "-C", "/mnt/ral/jnightin/PyAuto/PyAutoArray", "merge-base", + "--is-ancestor", "4383ea81", 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_mcs_hpc_ral_a100_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.json new file mode 100644 index 000000000..346df9372 --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.json @@ -0,0 +1,3285 @@ +{ + "cell": "solver_config_sweep_mcs", + "issue": "PyAutoLabs/PyAutoArray#583", + "phase": "4c", + "mcs_headroom_mode": true, + "production_max_containing_size": 15, + "step0_routes": null, + "library_step0_default": "structured", + "config_name": "hpc_ral_a100_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": "add12a2ca57227c24a9544b9039b8c1c892f2baf", + "PyAutoNerves": "bf104102312852537159b7fad2f998ab6677b4e4", + "PyAutoFit": "c156a9d8e8eb9f82b6da169b1d50b7e64580fe98", + "PyAutoArray": "e281abf3257e9efd4915f1daa9acc0498be250a5", + "PyAutoGalaxy": "ba8a08fabcb13d9472f2bd43ef4fea6039284d50", + "PyAutoLens": "dcbd4b711120641cc0ecc6490d868795ad717b07" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/PyAuto/PyAutoArray", + "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, 503 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.08, + 0.14, + 0.89 + ], + "loadavg_end": [ + 1.54, + 1.25, + 1.19 + ], + "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": "mcs20", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 20, + "neighbor_degree": 1, + "step0_route": null + } + ], + "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)" + }, + "mcs20": { + "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": 20, + "neighbor_degree": 1, + "step0_route": "library default (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.824624914006563, + "compile_s": 9.714348429988604, + "first_call_s": 0.019039912993321195, + "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": 391417856, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 1.866796639020322, + "compile_s": 4.420876614982262, + "first_call_s": 0.016040018992498517, + "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": 27594752, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 6.625454708002508, + "compile_s": 10.674533693003468, + "first_call_s": 0.018712477991357446, + "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": 53866496, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 1.518880204996094, + "compile_s": 4.973686965997331, + "first_call_s": 0.014564655983122066, + "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": 4046848, + "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, + "mcs20": true + }, + "precision_equivalent": { + "control": true, + "mcs20": 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": "mcs20", + "best_admissible_any_precision": "mcs20", + "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.82721549551934, + "speedup": 1.0, + "speedup_ci90": [ + 0.9971076048979485, + 1.002939640709459 + ], + "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.596312906011008, + "flops": 2787435.0, + "temp_bytes": 390472 + }, + { + "config": "mcs20", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 20, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 0.8246354846050963, + "speedup": 1.003128668317589, + "speedup_ci90": [ + 0.9993716673644834, + 1.005052427898097 + ], + "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.776895373011939, + "flops": 2949201.0, + "temp_bytes": 389192 + } + ], + "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.82721549551934, + "p10_ms": 0.8141599013470113, + "p90_ms": 0.8898060827050358, + "min_ms": 0.8073800127021968, + "max_ms": 1.4531229971908033, + "mean_ms": 0.8474503699835623 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.9971076048979485, + "ci90_high": 1.002939640709459, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 2.6449790830083657, + "compile_s": 5.596312906011008, + "first_call_s": 0.011646110011497512, + "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": 3710976, + "max_containing_size_proof": null + }, + "warm_ms": [ + 10.129608999704942, + 1.0647570015862584, + 0.9049990039784461 + ], + "per_call_ms": [ + 0.9296579810325056, + 1.4106520102359354, + 0.932009017560631, + 0.9302899998147041, + 0.9473579993937165, + 1.2554749846458435, + 1.025378005579114, + 0.9494590049143881, + 0.9584480139892548, + 0.9402800060342997, + 0.9554479911457747, + 1.1821259977295995, + 0.9392700158059597, + 0.9334190108347684, + 0.9303679980803281, + 0.8985699969343841, + 0.916459015570581, + 0.9516389982309192, + 0.9021289879456162, + 0.8987289911601692, + 0.941457983572036, + 0.8819289796520025, + 0.8696300210431218, + 0.8771790016908199, + 1.0792470129672438, + 0.8633890247438103, + 0.8896889921743423, + 0.869120005518198, + 0.8732990245334804, + 0.8869599842000753, + 0.8858790097292513, + 0.8817999914754182, + 1.4531229971908033, + 0.8698090096004307, + 0.8897789812181145, + 0.9271400049328804, + 0.8662290056236088, + 0.8674399869050831, + 0.8929890173021704, + 1.0889779950957745, + 0.8900499960873276, + 1.1866349959746003, + 0.9027290216181427, + 0.875658995937556, + 0.8683589985594153, + 0.9721789974719286, + 0.8785889949649572, + 0.9287790162488818, + 0.8802390075288713, + 0.870910007506609, + 0.8873399929143488, + 0.8724290237296373, + 0.8387999841943383, + 0.8331399876624346, + 0.8299099863506854, + 0.8309099939651787, + 0.8182799792848527, + 0.820811023004353, + 0.8278400055132806, + 0.8192610112018883, + 0.8231399988289922, + 0.8249010134022683, + 0.8431689930148423, + 0.8389909926336259, + 0.8355600002687424, + 0.8279589819721878, + 0.8265910146292299, + 0.8283790084533393, + 0.8226110076066107, + 0.8239799935836345, + 0.8357309852726758, + 0.8368300041183829, + 0.8363200176972896, + 0.811609992524609, + 0.8255910070147365, + 0.8328490075655282, + 0.8302700007334352, + 0.8302899950649589, + 0.8243000193033367, + 0.8132699877023697, + 0.8073800127021968, + 0.8235909917857498, + 0.9804180008359253, + 0.8379700011573732, + 0.8117899997159839, + 0.8468209998682141, + 0.8262799819931388, + 0.8153910166583955, + 0.827340001706034, + 0.8235700079239905, + 0.8319999906234443, + 0.8095099765341729, + 0.8155199757311493, + 0.82330999430269, + 0.8247109944932163, + 0.8391899755224586, + 0.840830005472526, + 0.8387299894820899, + 0.8271309779956937, + 1.1391759908292443, + 0.8427709981333464, + 0.8450690074823797, + 0.8180309960152954, + 0.8190000080503523, + 0.8387709967792034, + 0.8200200099963695, + 0.9048100037034601, + 0.823269976535812, + 0.823759997729212, + 0.8154899987857789, + 1.0927969997283071, + 0.8219409792218357, + 0.8134800009429455, + 0.8501709962729365, + 0.8438199874944985, + 0.8333410078193992, + 0.8226190111599863, + 0.8302500064019114, + 0.8191499800886959, + 0.826339004561305, + 0.8591899822931737, + 0.837578991195187, + 0.8384099928662181, + 0.8149300119839609, + 0.8218899893108755, + 0.8246699871961027, + 0.8260710164904594, + 0.8295200241263956, + 0.8254710119217634, + 0.8178100106306374, + 0.8200700103770941, + 0.814490020275116, + 0.8192399982362986, + 0.8235500135924667, + 0.8203299948945642, + 0.8415509946644306, + 0.8375989855267107, + 0.8197409915737808, + 0.8599590219091624, + 0.8363910019397736, + 0.8301709895022213, + 0.8275299915112555, + 0.8228999795392156, + 0.8459699747618288, + 0.8472290064673871, + 0.8350310090463609, + 0.8370489813387394, + 0.8639710140414536, + 0.8564589952584356, + 0.8255309949163347, + 0.845580012537539, + 0.8271500119008124, + 0.8273299899883568, + 0.8204100013244897, + 0.8173400128725916, + 0.80951998825185, + 0.830409990157932, + 0.8180300064850599, + 0.8363999950233847, + 0.8376900223083794, + 0.8146210166160017, + 0.8118799887597561, + 0.8249300008174032, + 1.1693770065903664, + 0.8135699899867177, + 0.8460509998258203, + 1.1526349990162998, + 0.8339409832842648, + 0.8365099783986807, + 0.8151000074576586, + 0.8423599938396364, + 0.8201099990401417, + 0.8141610014718026, + 0.8358890190720558, + 0.8380709914490581, + 0.8158300188370049, + 0.8216909773182124, + 0.8273300190921873, + 0.8202409953810275, + 0.9847669862210751, + 0.8411909802816808, + 0.8175200200639665, + 0.8216099813580513, + 0.8198909927159548, + 0.8212690008804202, + 0.8840800146572292, + 0.8273699786514044, + 0.8494810026604682, + 0.8358400082215667, + 0.8325800008606166, + 0.8344099915120751, + 0.8186310005839914, + 0.8174999966286123, + 0.8082700078375638, + 0.8235010027419776, + 0.8400400110986084, + 0.836799998069182, + 0.8157000120263547, + 0.8156310068443418, + 0.812919985037297, + 0.8234809793066233, + 0.8265499782282859, + 0.8225410128943622, + 0.8190689841285348, + 0.8332800061907619, + 0.8379300124943256, + 0.8375600154977292, + 0.849089992698282, + 0.821929017547518, + 0.819870998384431, + 0.8370690047740936, + 0.8246310171671212, + 0.8194900001399219, + 0.8234410197474062, + 0.8173499954864383, + 0.8134600066114217, + 0.8212190004996955, + 0.8180900185834616, + 0.8242210024036467, + 0.844569003675133, + 0.82230000407435, + 0.8350289717782289, + 0.8418110082857311, + 0.827159994514659, + 0.8177010167855769, + 0.8139399869833142, + 0.809071003459394, + 0.8313700091093779, + 0.8221999742090702, + 0.8216500282287598, + 0.8094610238913447, + 0.8228200022131205, + 0.8234500128310174, + 0.8371009898837656, + 0.8414789917878807, + 0.8193510002456605, + 0.8161799923982471, + 0.8328899857588112, + 0.8353999874088913, + 0.8294199942611158, + 0.8151200017891824, + 0.8096600067801774, + 0.8180800068657845, + 0.8199699805118144, + 0.8343209919985384, + 0.8352489967364818, + 0.8138109988067299, + 0.8488599851261824, + 0.8281810150947422, + 0.8269499812740833, + 0.8374509925488383, + 0.8115500095300376, + 0.8174199901986867, + 0.8203500183299184, + 0.8156200055964291, + 0.8390999864786863, + 0.8361499931197613, + 0.8135899843182415, + 0.8150399953592569, + 0.8154810057021677, + 0.8184000034816563, + 0.8079709950834513, + 0.8328699914272875, + 0.8256309956777841, + 0.8257890003733337, + 0.8189009968191385, + 0.8189690124709159, + 0.8142000006046146, + 0.8171200170181692, + 0.8189500076696277, + 0.8346410177182406, + 0.8341499778907746, + 1.1457559885457158, + 0.8354700112249702, + 0.8217100112233311, + 0.8150299836415797, + 0.8182300080079585, + 0.8239599992521107, + 0.8374689787160605, + 0.8325009839609265, + 0.8101099811028689, + 0.8281109912786633, + 0.8293100108858198, + 0.8251700201071799, + 0.8243100019171834, + 0.8204100013244897, + 0.8108800102490932, + 0.8170799992512912, + 0.894677999895066, + 0.838999985717237, + 0.825060997158289, + 0.812289013992995, + 0.8147509943228215, + 0.8295100124087185, + 0.827270996524021, + 0.8186600171029568, + 0.8076709927991033, + 0.8083799912128597, + 0.8217809954658151, + 0.8203799952752888, + 0.817290012491867, + 0.8289999968837947, + 0.8409300062339753, + 0.838400999782607, + 0.8207090140786022, + 0.8229410159401596, + 0.8229299855884165, + 0.8315710001625121, + 0.8215599809773266, + 0.815200008219108, + 0.8090900082606822, + 0.8117210236378014, + 0.8195299888029695, + 0.8130600035656244, + 0.8432189933955669, + 0.8380399958696216, + 0.8199709991458803, + 0.8214690024033189, + 0.8137609984260052, + 0.8298000029753894, + 0.8199499861802906, + 0.8162090089172125, + 0.810981000540778, + 0.8158900018315762, + 0.8198299910873175, + 0.821850000647828, + 0.8404589898418635, + 0.8383600215893239, + 0.8154499810189009, + 0.8192009991034865, + 0.8197200077120215, + 0.825700000859797, + 0.8287399832624942, + 0.8250810205936432, + 0.819800014141947, + 0.8094510121736676, + 0.8291600097436458, + 0.81415000022389, + 0.8109100162982941, + 0.8369289862457663, + 0.828990014269948, + 0.8458700031042099, + 0.828579009976238, + 0.8205909980461001, + 0.8118700061459094, + 0.8204909972846508, + 0.8231000101659447, + 0.8164989994838834, + 0.8443999977316707, + 0.8413489849772304, + 0.8191009983420372, + 0.8158400014508516, + 0.8315710001625121, + 0.8277090091723949, + 0.8249509846791625, + 0.825249997433275, + 0.8170310175046325, + 0.813560007372871, + 0.8187310013454407, + 0.8275189902633429, + 0.8384899992961437, + 0.8345310052391142, + 0.8108499750960618, + 0.8156399999279529, + 0.8280299953185022, + 0.8244210039265454, + 0.8158700075000525, + 0.8135510142892599, + 0.8180799777619541, + 0.8195910195354372, + 0.8194299880415201, + 0.8415599877480417, + 0.839188985992223, + 0.8378400234505534, + 0.8134410018101335, + 0.8132299990393221, + 0.8310310076922178, + 0.8308689866680652, + 0.8351709984708577, + 0.8312689897138625, + 0.8216700225602835, + 0.8274099964182824, + 0.834999984363094, + 0.8380200015380979, + 0.8343099907506257, + 0.8191910164896399, + 0.8215199923142791, + 0.8363210072275251, + 0.8317199826706201, + 0.8161510049831122, + 0.8128299959935248, + 0.8177910058293492, + 0.8249300008174032, + 0.8202600001823157, + 0.8416399941779673, + 0.8404100080952048, + 0.8227899961639196, + 0.8207299979403615, + 0.8290710102301091, + 0.8297300082631409 + ], + "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 + } + } + }, + "mcs20": { + "config": { + "name": "mcs20", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 20, + "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": 20, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 0.8246354846050963, + "p10_ms": 0.8138031087582931, + "p90_ms": 0.8952040021540597, + "min_ms": 0.8032800105866045, + "max_ms": 1.3879739854019135, + "mean_ms": 0.8407666024140781 + }, + "speedup_vs_control": { + "ratio": 1.003128668317589, + "ci90_low": 0.9993716673644834, + "ci90_high": 1.005052427898097, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0005674156408433, + "p10": 0.9943684241834234, + "p90": 1.0149299133525604 + }, + "compile": { + "lower_s": 2.67522696199012, + "compile_s": 5.776895373011939, + "first_call_s": 0.01208825601497665, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [] + ], + "flops": 2949201.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389192, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 483328, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.0649779869709164, + 0.9710179874673486, + 0.9016589901875705 + ], + "per_call_ms": [ + 1.3879739854019135, + 0.9075099951587617, + 0.9454480023123324, + 0.9077000140678138, + 0.9065300109796226, + 0.8973090152721852, + 0.8941600099205971, + 0.916948018129915, + 0.9119099995587021, + 0.9074799891095608, + 0.8953389769885689, + 0.9263599931728095, + 0.902079016668722, + 0.9045889892149717, + 0.9005100000649691, + 0.9005390165839344, + 0.9148200042545795, + 0.8937589882407337, + 0.9046590130310506, + 0.8862800023052841, + 0.9099789895117283, + 0.8937699894886464, + 0.8943589928094298, + 0.8991879876703024, + 0.9007890184875578, + 0.9066280035767704, + 0.8928999886848032, + 0.9051589877344668, + 0.8931590127758682, + 0.8843500108923763, + 0.9129380050580949, + 0.8958200050983578, + 0.9032179950736463, + 0.893029005965218, + 0.8965700108092278, + 0.9190290002152324, + 0.8946300076786429, + 0.9068289946299046, + 0.9100890019908547, + 0.8797799819149077, + 0.8517300011590123, + 0.8464310085400939, + 0.8232099935412407, + 0.8128810150083154, + 0.8351700089406222, + 0.8474900096189231, + 0.8358689956367016, + 0.8197099959943444, + 0.8148009947035462, + 0.8226099889725447, + 0.8237409929279238, + 0.8184899925254285, + 0.8342609799001366, + 1.1346259852871299, + 0.8443010156042874, + 0.8397589845117182, + 0.8168290078174323, + 0.9992189879994839, + 0.8370600116904825, + 0.8385099936276674, + 0.8106600143946707, + 0.818300002720207, + 0.8404600084759295, + 0.8375000033993274, + 0.8286699885502458, + 0.8573189843446016, + 0.8137410040944815, + 0.8329999982379377, + 0.8271310070995241, + 0.8456189825665206, + 0.8410710142925382, + 1.0941060027107596, + 0.8439699886366725, + 0.8393999887630343, + 0.8334699959959835, + 0.8191600209102035, + 0.8331600110977888, + 0.8239710005000234, + 0.8425589767284691, + 0.8458810043521225, + 0.8322689973283559, + 0.8202309836633503, + 0.8208900108002126, + 0.8357010083273053, + 0.8339589985553175, + 0.8278909954242408, + 0.8148500055540353, + 0.8088409958872944, + 0.8305489900521934, + 0.8234609849750996, + 0.8951890049502254, + 0.8282199851237237, + 0.8119810081552714, + 0.8153899980243295, + 0.8200709999073297, + 0.8191899978555739, + 0.8340310014318675, + 0.8372699958272278, + 0.8481300028506666, + 0.943099003052339, + 0.8243700140155852, + 0.824690010631457, + 0.8498500101268291, + 0.8162799931596965, + 0.8286199881695211, + 0.8278909954242408, + 0.8151799847837538, + 0.8381510269828141, + 0.8366699912585318, + 0.8343199733644724, + 0.8179199940059334, + 0.8486499718856066, + 0.8275900036096573, + 0.8308110118377954, + 0.8240399765782058, + 0.8158700075000525, + 0.8102600113488734, + 0.8138790144585073, + 0.8183410100173205, + 0.8181000011973083, + 0.8287899836432189, + 0.820430024759844, + 0.8123900042846799, + 0.8152500085998327, + 0.8194709953386337, + 0.8160890138242394, + 0.830670993309468, + 0.8355500176548958, + 0.8351610158570111, + 0.8148400229401886, + 0.8138410048559308, + 0.8155399991665035, + 0.8215309935621917, + 0.8228300139307976, + 0.8245609933510423, + 0.8242100011557341, + 0.8152700029313564, + 0.8102899882942438, + 0.8269500103779137, + 0.8202909957617521, + 0.8316090097650886, + 0.8368009875994176, + 0.8181000011973083, + 0.8135809912346303, + 0.8088900067377836, + 0.8142009901348501, + 0.8224289922509342, + 0.8254600106738508, + 0.8168999920599163, + 0.8144199964590371, + 0.8175799739547074, + 0.8226899954024702, + 0.8161109872162342, + 0.8233599946834147, + 0.83751100464724, + 0.8368190028704703, + 0.8346110116690397, + 0.8189590007532388, + 0.8212910033762455, + 0.8170299988705665, + 0.8211099775508046, + 0.8175800030585378, + 0.835899991216138, + 0.8565899915993214, + 0.8174100075848401, + 0.8157099946402013, + 0.8232099935412407, + 0.8280710026156157, + 1.002548000542447, + 0.8164200116880238, + 0.8194510010071099, + 0.8163099992088974, + 0.8329600095748901, + 0.8352800214197487, + 0.8171900117304176, + 0.8124299929477274, + 0.8119410194922239, + 0.8253400155808777, + 0.8913199999369681, + 0.8391489973291755, + 0.8032800105866045, + 0.817740976344794, + 0.8221300086006522, + 0.837280007544905, + 0.8408990106545389, + 0.8185510232578963, + 0.8664189954288304, + 0.8399499929510057, + 0.8290800033137202, + 0.8139210112858564, + 0.806719996035099, + 0.8097999962046742, + 0.8222699980251491, + 0.838519015815109, + 0.8373409800697118, + 0.8338699990417808, + 0.8234409906435758, + 0.8182099845726043, + 0.8271900005638599, + 0.8259600144810975, + 0.823870999738574, + 0.82356997882016, + 0.83575100870803, + 0.8332589932251722, + 0.8307710231747478, + 0.8277200104203075, + 0.8101109997369349, + 0.8306099916808307, + 0.9993969870265573, + 0.8319210028275847, + 0.8185000042431056, + 0.856639991980046, + 0.8331599819939584, + 0.8226099889725447, + 0.8192599925678223, + 0.8125300228130072, + 0.8200700103770941, + 0.8245899807661772, + 0.8157709962688386, + 0.8420490194112062, + 0.8104309963528067, + 0.8263899944722652, + 0.8353599987458438, + 0.8336199971381575, + 0.8208799990825355, + 0.8166999905370176, + 0.8081109845079482, + 0.810719997389242, + 0.817069987533614, + 0.8196310081984848, + 0.8404389955103397, + 0.8404410036746413, + 0.8244000200647861, + 0.8151810034178197, + 0.8117899997159839, + 0.8228109800256789, + 0.8364490058738738, + 0.8202409953810275, + 0.8120200072880834, + 0.8122599974740297, + 0.8278799941763282, + 0.8174609974958003, + 0.8133900118991733, + 0.8106610039249063, + 0.814600003650412, + 0.8134800009429455, + 0.8074699726421386, + 0.84082898683846, + 0.8348709961865097, + 0.8163700113072991, + 0.827420997666195, + 0.8162400044966489, + 0.8528600155841559, + 0.8263289928436279, + 0.8262009941972792, + 1.1370459978934377, + 0.8186299819499254, + 0.8366410038433969, + 0.829248980153352, + 0.8205510093830526, + 0.8162800222635269, + 0.8087109890766442, + 0.8121199789457023, + 0.8055699872784317, + 0.8158200071193278, + 0.832649995572865, + 0.8865899872034788, + 0.819839013274759, + 0.815011007944122, + 0.82162901526317, + 0.8240809838753194, + 0.8225399942602962, + 0.8172510133590549, + 0.8092999923974276, + 0.8293710125144571, + 0.8184599864762276, + 0.8145689789671451, + 0.8072599885053933, + 0.8363600063603371, + 0.8352800214197487, + 0.8323189977090806, + 0.839110987726599, + 0.8230189851019531, + 0.8155909890774637, + 0.8119999838527292, + 0.8201010059565306, + 0.822640024125576, + 0.8240710012614727, + 0.8431090100202709, + 0.9601789934094995, + 0.8154899987857789, + 0.8424799889326096, + 0.8321409986820072, + 0.8172300003934652, + 0.8246809884440154, + 0.8175699913408607, + 0.8319610205944628, + 0.8258800080511719, + 0.8198810101021081, + 0.8134889940265566, + 0.8142699953168631, + 1.0779080039355904, + 0.8152399968821555, + 0.848530005896464, + 0.840090011479333, + 0.833509984659031, + 0.8365800022147596, + 0.8211210079025477, + 0.8210790110751987, + 0.8179799770005047, + 0.8366300025954843, + 0.8379400242120028, + 0.8379410137422383, + 0.8138100092764944, + 0.8358110208064318, + 0.8197390125133097, + 0.8206109923776239, + 0.8198599971365184, + 0.8157009724527597, + 0.8092799980659038, + 0.8253210107795894, + 0.8254100102931261, + 0.8265709911938757, + 0.8251490071415901, + 0.826370989670977, + 0.8241499890573323, + 0.8187399944290519, + 0.8161090081557631, + 0.8136410033330321, + 0.817849999293685, + 0.8200909942388535, + 0.8169099746737629, + 0.8385399996768683, + 0.8406300039496273, + 0.8230200037360191, + 0.8236009743995965, + 0.8185899932868779, + 0.8219400187954307, + 0.8250100072473288, + 0.8224409830290824, + 0.8100899867713451, + 0.8165710023604333, + 0.84863998927176, + 0.8143300074152648, + 0.8373789896722883, + 0.837689993204549, + 0.8152399968821555, + 0.8174899849109352, + 0.8158010023180395, + 0.8278700115624815, + 0.8261509938165545, + 0.8228890073951334, + 0.8186909835785627, + 0.808550015790388, + 0.8174609974958003, + 0.8215800044126809, + 0.8165400067809969, + 0.8392599993385375, + 0.8368800044991076, + 0.8185909828171134, + 0.8158810087479651, + 1.0131569870281965, + 0.8369400165975094, + 0.8494599896948785, + 0.8298600150737911, + 0.8291109988931566, + 0.8278000168502331, + 0.8245199860539287, + 0.8149399945978075, + 0.8143209852278233, + 0.8232600230257958, + 0.8217110007535666, + 0.8385090040974319, + 0.8380399958696216, + 0.8177609997801483, + 0.8242200128734112, + 1.1825870024040341, + 0.8228100195992738, + 0.8259809983428568, + 0.8341089996974915, + 0.8356799953617156, + 0.8198800205718726, + 0.8135200187098235, + 0.8373100135941058, + 0.8301199995912611, + 0.822861009510234, + 0.8196190174203366, + 0.8166510087903589, + 0.8122799918055534, + 0.8209100051317364, + 0.8185190090443939, + 0.8367809932678938, + 0.8416099881287664, + 0.8397999918088317, + 0.8209600055124611, + 0.8154899987857789, + 0.8331110002472997, + 0.8233400003518909, + 0.8233010012190789, + 0.8181299781426787 + ], + "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": "mcs20", + "routes": [ + "control", + "mcs20" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 0.837230501929298, + "p10_ms": 0.8232548978412524, + "p90_ms": 0.916772018535994, + "min_ms": 0.8153499802574515, + "max_ms": 1.4524929865729064, + "mean_ms": 0.8572954822739121 + }, + "median_ms_per_likelihood": 0.837230501929298, + "compile": { + "lower_s": 3.584643264010083, + "compile_s": 6.299862708023284, + "first_call_s": 0.01570203300798312, + "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": 1810432, + "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.9400499984622002, + "p10_ms": 0.9272839990444481, + "p90_ms": 0.9970458166208119, + "min_ms": 0.9157489985227585, + "max_ms": 1.3725640019401908, + "mean_ms": 0.9566655652452027 + }, + "median_ms_per_likelihood": 0.23501249961555004, + "compile": { + "lower_s": 3.6884494550176896, + "compile_s": 6.228791216009995, + "first_call_s": 0.01695743898744695, + "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": 6189056, + "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.135111495386809, + "p10_ms": 1.118800905533135, + "p90_ms": 1.1854690965265036, + "min_ms": 1.109897013520822, + "max_ms": 1.906827004859224, + "mean_ms": 1.1533125777350506 + }, + "median_ms_per_likelihood": 0.07094446846167557, + "compile": { + "lower_s": 3.598918973002583, + "compile_s": 6.4952908199920785, + "first_call_s": 0.01848788099596277, + "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": 2420736, + "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 + }, + "mcs20_vmap1": { + "config": "mcs20", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 0.8383445092476904, + "p10_ms": 0.8259468042524531, + "p90_ms": 0.8809238963294774, + "min_ms": 0.8173800015356392, + "max_ms": 1.3445449876599014, + "mean_ms": 0.8547483747679507 + }, + "median_ms_per_likelihood": 0.8383445092476904, + "compile": { + "lower_s": 3.7684873919934034, + "compile_s": 6.537505056010559, + "first_call_s": 0.01684740898781456, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2948137.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 389192, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2940928, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9986711819471543, + "ci90_low": 0.9955334941648103, + "ci90_high": 1.0011041810836419, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap4": { + "config": "mcs20", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 1.0154230112675577, + "p10_ms": 0.9989479935029522, + "p90_ms": 1.0701798950321972, + "min_ms": 0.9896279952954501, + "max_ms": 1.7579490086063743, + "mean_ms": 1.0321403300622478 + }, + "median_ms_per_likelihood": 0.25385575281688944, + "compile": { + "lower_s": 3.647498212987557, + "compile_s": 6.834454366995487, + "first_call_s": 0.0172415139968507, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11339309.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 1529672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5599232, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876806, + -4.160952751390761, + 7.657972665309621, + 9.364550949057252 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9257718094144143, + "ci90_low": 0.9232852757383118, + "ci90_high": 0.9291893343983038, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap16": { + "config": "mcs20", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 1.1315465089865029, + "p10_ms": 1.1158149951370433, + "p90_ms": 1.182122022146359, + "min_ms": 1.1049760214518756, + "max_ms": 1.5559209859929979, + "mean_ms": 1.1464655973395566 + }, + "median_ms_per_likelihood": 0.07072165681165643, + "compile": { + "lower_s": 3.638995105982758, + "compile_s": 6.894294431986054, + "first_call_s": 0.017467631987528875, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 44561780.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": 12935168, + "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.0031505434129255, + "ci90_low": 0.9993125423451218, + "ci90_high": 1.0053230974298109, + "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.16650799079798162, + "ray_trace": 0.152318985783495, + "general_gather": 0.15326350694522262, + "route_inputs": 0.23776201123837382, + "containment": 0.2435019996482879 + }, + "ray_trace_ms": -0.014189005014486611, + "containment_ms": 0.09118301386479288, + "route_input_materialisation_ms": 0.08544302545487881, + "general_gather_reference_ms": 0.0009445211617276073, + "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.07699400885030627, + "containment_share_of_step0": 1.184287131250345, + "step0_share_of_likelihood": 0.0930761201492824, + "containment_share_of_likelihood": 0.11022885131950608 + }, + "mcs20": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.16666800365783274, + "ray_trace": 0.15388301108032465, + "general_gather": 0.15247301780618727, + "route_inputs": 0.23699701705481857, + "containment": 0.24267200205940753 + }, + "ray_trace_ms": -0.012784992577508092, + "containment_ms": 0.08878899097908288, + "route_input_materialisation_ms": 0.08311400597449392, + "general_gather_reference_ms": -0.0014099932741373777, + "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.07600399840157479, + "containment_share_of_step0": 1.168214736676843, + "step0_share_of_likelihood": 0.09216678134821205, + "containment_share_of_likelihood": 0.1076705922030537 + } + }, + "uncapped_containing_counts": { + "control": { + "prior": { + "n_draws": 200, + "cap": 15, + "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 + ], + "draws_exceeding_cap_per_step": [ + [ + 12 + ], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": -2, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 15, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 2, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 15, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 8, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs20": { + "prior": { + "n_draws": 200, + "cap": 20, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 3, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 20, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 7, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 20, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 13, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + } + }, + "mcs_headroom": { + "control_max_containing_size": 15, + "rows": { + "control": { + "mcs": 15, + "median_ms": 0.82721549551934, + "control_over_row": { + "ratio": 1.0, + "ci90_low": 0.9971076048979485, + "ci90_high": 1.002939640709459, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0, + "compile_s": 5.596312906011008, + "compile_ratio_vs_control": 1.0, + "temp_bytes": 390472, + "flops": 2787435.0, + "vmap16_ms_per_likelihood": 0.07094446846167557, + "vmap16_control_over_row": null, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.00085134744991033, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [ + 12 + ], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 1, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876806, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 0.0 + }, + "mcs20": { + "mcs": 20, + "median_ms": 0.8246354846050963, + "control_over_row": { + "ratio": 1.003128668317589, + "ci90_low": 0.9993716673644834, + "ci90_high": 1.005052427898097, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 0.996881089718195, + "compile_s": 5.776895373011939, + "compile_ratio_vs_control": 1.032268114745151, + "temp_bytes": 389192, + "flops": 2949201.0, + "vmap16_ms_per_likelihood": 0.07072165681165643, + "vmap16_control_over_row": { + "ratio": 1.0031505434129255, + "ci90_low": 0.9993125423451218, + "ci90_high": 1.0053230974298109, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.00085134744991033, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876806, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 1.9841564586859975e-14 + } + }, + "uncapped_max_over_all_samples_and_steps": 17, + "decision_rule": "smallest N >= 18 with uncapped max <= N - 3, no unexplained change, compile <= +20 %, scalar median cost <= ~5 % (human picks N at the step-2 checkpoint)", + "rule_candidates": [ + "mcs20" + ] + }, + "gates": { + "fiducial_bit_exact": { + "value": 7.743201200876806, + "expected": 7.743201200876806, + "repr": "7.743201200876806", + "pass": true + }, + "max_containing_size_patch": { + "control": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + }, + "mcs20": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "patch_keeps_later_defaults": { + "probes": { + "mcs20": { + "mcs": 20, + "__init__": { + "during": { + "max_containing_size": "20", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "20" + } + }, + "constructed_max_containing_size": 20, + "constructed_step0_layout": "None", + "pass": true + } + }, + "pass": true + }, + "grad": { + "control": { + "compile_s": 16.324218413006747, + "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 + }, + "mcs20": { + "compile_s": 13.64223806100199, + "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.12915308130249, + -17.18919451496823, + 1304.4185837665627 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 1.9841564586859975e-14 + } + }, + "mcs_no_unexplained_change": { + "mcs20": { + "max_containing_size": 20, + "fiducial_log_likelihood": 7.743201200876806, + "fiducial_repr": "7.743201200876806", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 1.9841564586859975e-14, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 1.9841564586859975e-14, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + } + } + }, + "all_gates_pass": true, + "completeness_compile": { + "control_prior": { + "lower_s": 3.894830945006106, + "compile_s": 6.513903237995692, + "first_call_s": 0.013498048996552825, + "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": 7184384, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.0971377220121212, + "compile_s": 3.6677255230024457, + "first_call_s": 0.010043560003396124, + "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": 2158592, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "mcs20_prior": { + "lower_s": 3.8791395830048714, + "compile_s": 6.670178764004959, + "first_call_s": 0.01329923199955374, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [], + [ + 20, + 2 + ] + ], + "flops": 2949042.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 344, + "temp_size_in_bytes": 389192, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 568256, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2547712, + "max_containing_size_proof": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + }, + "mcs20_stress": { + "lower_s": 1.099406025983626, + "compile_s": 3.646023312001489, + "first_call_s": 0.00994791099219583, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 20, + 2 + ] + ], + "flops": 2947896.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 320, + "temp_size_in_bytes": 387144, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 567872, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 471040, + "max_containing_size_proof": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + } + }, + "progress": [ + "[ 5.3 s] configs: control(n=8,rows=11859), mcs20(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 31.5 s] reference reference solved on 200 prior + 200 stress draws (compile 4.4 s)", + "[ 56.5 s] reference reference_b solved on 200 prior + 200 stress draws (compile 5.0 s)", + "[ 56.5 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}}}", + "[ 88.9 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035", + "[ 88.9 s] completeness mcs20 prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035", + "[ 88.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}}", + "[ 88.9 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 106.8 s] timing: 20 rounds x 20 calls x 2 routes done", + "[ 107.1 s] fiducial gate: 7.743201200876806 == 7.743201200876806: True", + "[ 146.7 s] grad gate: control=True, mcs20=True", + "[ 146.7 s] best admissible (precision-equivalent): mcs20; any precision: mcs20", + "[ 212.4 s] vmap: control_vmap1 0.837 ms/L, control_vmap4 0.235 ms/L, control_vmap16 0.071 ms/L, mcs20_vmap1 0.838 ms/L, mcs20_vmap4 0.254 ms/L, mcs20_vmap16 0.071 ms/L", + "[ 212.4 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 222.8 s] step-0 split: control trace -0.014 contain 0.091, mcs20 trace -0.013 contain 0.089", + "[ 222.8 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 270.4 s] uncapped prior: max per step [17, 13, 11, 9, 7, 5, 5, 5]; control exceed/step [1, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 270.4 s] uncapped stream: max per step [13, 9, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 270.4 s] uncapped stress: max per step [7, 5, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 270.4 s] mcs gate mcs20: 0 draw changes (0 image-set), stream 0, grad 1, vmap 0; unexplained 0; fiducial 7.743201200876806 bit-identical True" + ], + "wall_s": 270.44988925699727 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.png new file mode 100644 index 000000000..6dfc2134e Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.png differ diff --git a/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.json new file mode 100644 index 000000000..dbc3a5f9c --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.json @@ -0,0 +1,6126 @@ +{ + "cell": "solver_config_sweep_mcs", + "issue": "PyAutoLabs/PyAutoArray#583", + "phase": "4c", + "mcs_headroom_mode": true, + "production_max_containing_size": 15, + "step0_routes": null, + "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": "d6757ad0513196470329ae46c482ca308f0ff73d", + "PyAutoNerves": "bf104102312852537159b7fad2f998ab6677b4e4", + "PyAutoFit": "c156a9d8e8eb9f82b6da169b1d50b7e64580fe98", + "PyAutoArray": "e281abf3257e9efd4915f1daa9acc0498be250a5", + "PyAutoGalaxy": "ba8a08fabcb13d9472f2bd43ef4fea6039284d50", + "PyAutoLens": "dcbd4b711120641cc0ecc6490d868795ad717b07" + }, + "autoarray_imported_from": "/mnt/ral/jnightin/PyAuto/PyAutoArray", + "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": [ + 206.33, + 208.14, + 209.96 + ], + "loadavg_end": [ + 206.97, + 208.63, + 209.6 + ], + "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": "mcs18", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 18, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "mcs20", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 20, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "mcs24", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 24, + "neighbor_degree": 1, + "step0_route": null + } + ], + "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)" + }, + "mcs18": { + "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": 18, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "mcs20": { + "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": 20, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "mcs24": { + "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": 24, + "neighbor_degree": 1, + "step0_route": "library default (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.10629336501006, + "compile_s": 8.0810591429763, + "first_call_s": 0.02069706202019006, + "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": 431091712, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 1.671535400004359, + "compile_s": 2.049293748976197, + "first_call_s": 0.02280497399624437, + "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": 7651328, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 6.014580646005925, + "compile_s": 9.236773604992777, + "first_call_s": 0.011127012025099248, + "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": 55472128, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 1.525054736994207, + "compile_s": 2.449266309005907, + "first_call_s": 0.008860863017616794, + "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": 1003520, + "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, + "mcs18": true, + "mcs20": true, + "mcs24": true + }, + "precision_equivalent": { + "control": true, + "mcs18": true, + "mcs20": true, + "mcs24": 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": "mcs18", + "best_admissible_any_precision": "mcs18", + "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.4655035047326237, + "speedup": 1.0, + "speedup_ci90": [ + 0.9822866649230252, + 1.018805779813082 + ], + "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.2897308630053885, + "flops": 2801341.0, + "temp_bytes": 901656 + }, + { + "config": "mcs18", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 18, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.5380874829133973, + "speedup": 0.9528089403319977, + "speedup_ci90": [ + 0.9343722069591963, + 0.9650918127139239 + ], + "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.48203518500668, + "flops": 2933102.0, + "temp_bytes": 904024 + }, + { + "config": "mcs20", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 20, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.5568764792988077, + "speedup": 0.9413100680875229, + "speedup_ci90": [ + 0.9218777639303929, + 0.9526963092541254 + ], + "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.589658130978933, + "flops": 3017410.0, + "temp_bytes": 905240 + }, + { + "config": "mcs24", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 24, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 1.597105001565069, + "speedup": 0.9175999720096778, + "speedup_ci90": [ + 0.900012713886453, + 0.9274080410750413 + ], + "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.906929579999996, + "flops": 3195236.0, + "temp_bytes": 907736 + } + ], + "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.4655035047326237, + "p10_ms": 1.318663705023937, + "p90_ms": 1.7091418034397068, + "min_ms": 1.2054000108037144, + "max_ms": 2.1208709804341197, + "mean_ms": 1.4846185802161926 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.9822866649230252, + "ci90_high": 1.018805779813082, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 2.4476347390154842, + "compile_s": 4.2897308630053885, + "first_call_s": 0.0026751630066428334, + "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": 1871872, + "max_containing_size_proof": null + }, + "warm_ms": [ + 3.6388220032677054, + 1.453315984690562, + 1.4314569998532534 + ], + "per_call_ms": [ + 1.659029017901048, + 1.5009259805083275, + 1.371577993268147, + 1.3544310058932751, + 1.6392219986300915, + 1.3716570101678371, + 1.647252996917814, + 1.3963250094093382, + 1.4170320064295083, + 1.3827989751007408, + 1.2204419763293117, + 1.6271350032184273, + 1.358299981802702, + 1.3132820022292435, + 1.4424349938053638, + 1.3363040052354336, + 1.4267649967223406, + 1.3751080259680748, + 1.4819469943176955, + 1.3464509975165129, + 1.4005829871166497, + 1.3936680043116212, + 1.6967650153674185, + 1.551183988340199, + 1.4188839995767921, + 1.3829720264766365, + 1.3881610066164285, + 1.4199059805832803, + 1.4713130076415837, + 1.7811119905672967, + 1.6063660150393844, + 1.6547520062886178, + 1.2480209989007562, + 1.73450299189426, + 1.3596600037999451, + 1.4675179845653474, + 1.2588110112119466, + 1.3270959898363799, + 1.5008460031822324, + 1.3035559968557209, + 1.5039410209283233, + 1.5759360103402287, + 1.5754140040371567, + 1.4757939788978547, + 1.3803900219500065, + 1.3006470107939094, + 1.7465499986428767, + 1.4833739842288196, + 1.3084140082355589, + 1.3818940205965191, + 1.7623720050323755, + 1.6473070136271417, + 1.593253982719034, + 1.3188330049160868, + 1.500519982073456, + 1.4745079970452935, + 1.4036500069778413, + 1.6667309973854572, + 1.3350780063774437, + 1.3774339749943465, + 1.389623008435592, + 1.6951720172073692, + 1.491440023528412, + 1.415242993971333, + 1.6403509944211692, + 1.5101750032044947, + 1.5704440011177212, + 1.2286310084164143, + 1.210964983329177, + 1.5300550148822367, + 1.2355119979474694, + 1.2054000108037144, + 1.4119099942035973, + 1.2321449758019298, + 1.331067003775388, + 1.5000069979578257, + 1.3633299968205392, + 1.5870280039962381, + 1.4559160044882447, + 1.3621399994008243, + 1.3915479939896613, + 1.7606199835427105, + 1.5692610177211463, + 1.5082460013218224, + 1.3782139867544174, + 1.5384389844257385, + 1.4712330012116581, + 1.2165310035925359, + 1.2879820133093745, + 1.7678050207905471, + 1.5341569960583001, + 1.3854739954695106, + 1.4984259905759245, + 1.3231280026957393, + 1.3860790058970451, + 1.5888890193309635, + 1.6638570232316852, + 1.5526940114796162, + 1.3953990128356963, + 1.3432669802568853, + 1.6602019895799458, + 1.4914569910615683, + 1.797273987904191, + 1.8278880161233246, + 1.6079940251074731, + 1.4574490196537226, + 1.6822109755594283, + 1.4729860122315586, + 1.3876249722670764, + 1.5136410074774176, + 1.3424050121102482, + 1.5078519936650991, + 1.4291119878180325, + 1.4211520028766245, + 1.6095309983938932, + 1.828660984756425, + 1.4791240100748837, + 1.323998993029818, + 1.6327690100297332, + 1.3974260073155165, + 1.628347992664203, + 1.408481999533251, + 1.3240150001365691, + 1.2567710073199123, + 1.3408689992502332, + 1.3737500121351331, + 1.3152699975762516, + 1.361595990601927, + 1.359426009003073, + 1.6005939978640527, + 1.5778270026203245, + 1.501869992353022, + 1.3158679939806461, + 1.4378459891304374, + 1.284215017221868, + 1.595537003595382, + 1.3726949982810766, + 1.618476992007345, + 1.4542510034516454, + 1.7433780012652278, + 1.6773899842519313, + 1.4850830193609, + 1.4684739871881902, + 1.3930739951319993, + 1.516288990387693, + 1.2934539990965277, + 1.7329779802821577, + 1.3671719934791327, + 1.5353639901150018, + 1.361936010653153, + 1.5915679978206754, + 1.3406449870672077, + 1.2817259994335473, + 1.4685179921798408, + 1.3171400059945881, + 1.459833001717925, + 1.319110975600779, + 1.4421069936361164, + 1.697588013485074, + 1.6612779872957617, + 1.4386170078068972, + 1.540266996016726, + 1.4998209953773767, + 1.4761789934709668, + 1.466104993596673, + 1.4723240165039897, + 1.5260220097843558, + 1.658535999013111, + 1.4935589861124754, + 1.554098998894915, + 1.6107300180010498, + 1.426761009497568, + 1.5245710092131048, + 1.4945870207156986, + 1.3738849957007915, + 1.3162939867470413, + 1.3674889924004674, + 1.420026004780084, + 1.5448880149051547, + 1.4330550038721412, + 1.4056969957891852, + 1.3708269980270416, + 1.7541340203024447, + 1.43542600562796, + 1.4913550112396479, + 1.5119579911697656, + 1.4960219850763679, + 1.2949979864060879, + 1.4244090125430375, + 1.4269509993027896, + 1.270676002604887, + 1.2518870062194765, + 1.4501400000881404, + 1.3636260118801147, + 1.218591001816094, + 1.674756989814341, + 1.6863420023582876, + 1.4173090166877955, + 1.463336986489594, + 1.3783900067210197, + 1.4181090227793902, + 1.4746419910807163, + 1.6108790005091578, + 1.7527809832245111, + 1.8170970142818987, + 1.4786760148126632, + 1.7239649896509945, + 1.502647006418556, + 1.5871769865043461, + 1.3424889766611159, + 1.3977769995108247, + 1.3058490003459156, + 1.7083300044760108, + 1.4101040142122656, + 1.3448639947455376, + 1.3708709739148617, + 1.6276749956887215, + 1.3199630193412304, + 1.3454339932650328, + 1.3548970164265484, + 1.3914470036979765, + 1.4563239819835871, + 1.8568889936432242, + 1.3594299962278455, + 1.4522059937007725, + 1.479336991906166, + 1.4382819936145097, + 1.4914589992258698, + 1.5472499944735318, + 1.5599850157741457, + 1.3023020001128316, + 1.5026520122773945, + 1.2711809831671417, + 1.251256006071344, + 1.5110659878700972, + 1.2821860145777464, + 1.2715269986074418, + 1.4266259968280792, + 1.8482500163372606, + 1.2860870047006756, + 1.3426599907688797, + 1.445816014893353, + 1.8660499772522599, + 1.6015139990486205, + 1.5493680257350206, + 1.3380209857132286, + 1.4999480044934899, + 1.2925920018460602, + 1.663881994318217, + 1.4502959966193885, + 1.533279981231317, + 1.7624979955144227, + 1.3386820210143924, + 1.77911898936145, + 1.4649020158685744, + 1.3997970090713352, + 1.370227982988581, + 1.7713270208332688, + 1.397421001456678, + 1.5399609983433038, + 1.5051219961605966, + 1.3533290184568614, + 1.706928014755249, + 1.4043900009710342, + 1.5417080139741302, + 1.4320869813673198, + 1.3027240056544542, + 1.6810680099297315, + 1.37601702590473, + 1.478585007134825, + 1.6069209959823638, + 1.4931509795133024, + 1.3401180040091276, + 1.417487015714869, + 1.4035479980520904, + 1.2973789998795837, + 1.368800993077457, + 1.4880069938953966, + 1.3985210098326206, + 1.4103449939284474, + 1.4285979850683361, + 1.4699700113851577, + 1.7830629949457943, + 1.4505829894915223, + 1.3846140063833445, + 1.375830004690215, + 1.346582022961229, + 1.4731830160599202, + 1.2727940047625452, + 1.2798169918823987, + 1.4758450270164758, + 1.3279030099511147, + 1.4186670014169067, + 1.4896510110702366, + 1.4664170157629997, + 1.422578003257513, + 1.2972189870197326, + 1.5916029806248844, + 1.481314015109092, + 1.4083980058785528, + 1.4422250096686184, + 1.4240040036384016, + 1.3702770229429007, + 1.779493992216885, + 1.4297779998742044, + 1.4180770085658878, + 1.353673986159265, + 1.3805950002279133, + 1.4061330002732575, + 1.4874770131427795, + 1.8934010004159063, + 1.3909769768361002, + 1.3381059980019927, + 1.4477410004474223, + 1.2892230006400496, + 1.4268399972934276, + 1.4932329941075295, + 1.7975280061364174, + 1.3195339997764677, + 1.3870530237909406, + 1.618896989384666, + 1.3520570064429194, + 1.7694609996397048, + 1.8415730155538768, + 1.474214979680255, + 1.3729789934586734, + 1.827206986490637, + 1.484676991822198, + 1.5161949850153178, + 1.3869089889340103, + 1.7336210003122687, + 1.4017999928910285, + 1.7164479941129684, + 1.4942950219847262, + 1.4999799896031618, + 1.484745997004211, + 1.375760999508202, + 1.421936001861468, + 1.4714349817950279, + 1.472936011850834, + 1.5780350076965988, + 1.5289180155377835, + 1.4182479935698211, + 1.6334390093106776, + 1.5690290019847453, + 1.5558149898424745, + 1.4240820019040257, + 1.5045419859234244, + 1.3227649906184524, + 1.6684939910192043, + 1.5109999803826213, + 1.4807800180278718, + 1.3810730015393347, + 1.4724420034326613, + 1.7581610009074211, + 1.5067540225572884, + 1.5422930009663105, + 1.3699560076929629, + 1.780122023774311, + 1.4088389871176332, + 1.4836539921816438, + 1.5675649920012802, + 1.6204820130951703, + 1.7244010232388973, + 1.400228007696569, + 1.4937579981051385, + 1.8647300021257252, + 2.1208709804341197, + 1.5895439719315618, + 1.3776049891021103, + 1.5283529937732965, + 1.4243659970816225, + 1.4317510067485273, + 1.9855060090776533, + 1.9047219830099493, + 1.96758599486202, + 1.8266700208187103, + 1.573077985085547, + 1.561806013341993, + 1.607121987035498, + 1.4170669892337173, + 1.5061070153024048, + 1.390402001561597, + 1.5301269886549562, + 1.3605979911517352, + 1.8320329836569726, + 1.5322990075219423, + 1.6054979932960123, + 1.3715230161324143, + 1.5418590046465397, + 1.3447119854390621, + 1.5544249908998609, + 1.5966350038070232, + 1.4417950005736202, + 1.5869060007389635, + 1.3903420185670257, + 1.545387989608571, + 1.6131099837366492, + 1.387938973493874, + 1.5482289891224355 + ], + "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 + } + } + }, + "mcs18": { + "config": { + "name": "mcs18", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 18, + "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": 18, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 1.5380874829133973, + "p10_ms": 1.376734909717925, + "p90_ms": 1.7788620898500085, + "min_ms": 1.1892180191352963, + "max_ms": 2.0736379956360906, + "mean_ms": 1.5571231881767744 + }, + "speedup_vs_control": { + "ratio": 0.9528089403319977, + "ci90_low": 0.9343722069591963, + "ci90_high": 0.9650918127139239, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9464519079327076, + "p10": 0.9016420992633889, + "p90": 0.9934562292311198 + }, + "compile": { + "lower_s": 2.4681691489822697, + "compile_s": 4.48203518500668, + "first_call_s": 0.0027270290011074394, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [] + ], + "flops": 2933102.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 904024, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 4284416, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.7643829924054444, + 1.735769008519128, + 1.6495610179845244 + ], + "per_call_ms": [ + 1.6983059758786112, + 1.5652380243409425, + 1.4559239789377898, + 1.7470549792051315, + 1.506603992311284, + 1.438710984075442, + 1.5680649958085269, + 1.5896630065981299, + 1.4081850240472704, + 1.5014639939181507, + 1.9524100061971694, + 1.4440109953284264, + 1.3460420013871044, + 1.3098100025672466, + 1.3538340281229466, + 1.3889610127080232, + 1.3568199938163161, + 1.229059009347111, + 1.2065930059179664, + 1.5234840102493763, + 1.4041039976291358, + 1.3745029864367098, + 1.4146059984341264, + 1.8230499990750104, + 1.4283019991125911, + 1.6554609755985439, + 1.3551590091083199, + 1.3058809854555875, + 1.4416860067285597, + 1.8053679959848523, + 1.3997819914948195, + 1.701627013972029, + 1.4548329927492887, + 1.4176289841998369, + 1.3413020060397685, + 1.4553110231645405, + 1.4745949883945286, + 1.4655779814347625, + 1.4792869915254414, + 1.3950639986433089, + 1.8884839955717325, + 1.5167529927566648, + 1.597627007868141, + 1.666636992013082, + 1.9132680026814342, + 1.6095440078061074, + 1.5673319867346436, + 1.8119019805453718, + 1.42585500725545, + 1.661932998104021, + 1.5478350105695426, + 1.5592709823977202, + 1.9487850076984614, + 1.4064229908399284, + 2.0360740018077195, + 1.6237620147876441, + 1.5758369991090149, + 1.6799590084701777, + 1.7999520059674978, + 1.623492018552497, + 1.462218991946429, + 1.7999630072154105, + 1.6931779973674566, + 1.6445149958599359, + 1.5893589879851788, + 1.3948800042271614, + 1.8637799948919564, + 1.6149849980138242, + 1.464344997657463, + 1.6163370164576918, + 1.5224200033117086, + 1.4112789940554649, + 1.3896220189053565, + 1.460797997424379, + 1.5209000266622752, + 1.523342012660578, + 1.6324669995810837, + 1.7423990066163242, + 1.6544559912290424, + 1.5327190048992634, + 1.430078991688788, + 1.611162006156519, + 1.4550999912898988, + 1.5687490231357515, + 1.373657985823229, + 1.5473859966732562, + 1.4815219910815358, + 1.407557021593675, + 1.5690889849793166, + 1.4777530159335583, + 1.5679050120525062, + 1.4978069812059402, + 1.6407649964094162, + 1.5948629879858345, + 1.5241609944496304, + 1.4495419745799154, + 1.3629169843625277, + 1.4536899980157614, + 1.939039007993415, + 1.5357689990196377, + 1.4483240083791316, + 1.5994040004443377, + 1.3695939851459116, + 1.771267008734867, + 1.574165013153106, + 1.297204988077283, + 1.374112005578354, + 1.524734980193898, + 1.2132049887441099, + 1.2398559774737805, + 1.2837349786423147, + 1.210893999086693, + 1.2091539974790066, + 1.4213910035323352, + 1.3573250034824014, + 1.7147049948107451, + 1.4133930089883506, + 1.4786809915676713, + 1.2652760196942836, + 1.3102060183882713, + 1.4375089958775789, + 1.45280800643377, + 1.592695014551282, + 1.5963379992172122, + 1.736475998768583, + 1.8274140020366758, + 1.5925460029393435, + 1.519948011264205, + 1.553438021801412, + 1.6881900082807988, + 1.5142280026338995, + 1.5422139840666205, + 1.4307750097941607, + 1.4418519858736545, + 1.541915989946574, + 1.5542279870714992, + 1.584593002917245, + 1.4157770201563835, + 1.455902005545795, + 1.5031849907245487, + 1.7883830005303025, + 1.5534170088358223, + 1.469494978664443, + 1.5932480164337903, + 1.5653629961889237, + 1.7793890147004277, + 1.549462991533801, + 1.392161997500807, + 1.4800180215388536, + 1.6301790019497275, + 1.3756270054727793, + 1.6038320027291775, + 1.5366029983852059, + 1.5798980020917952, + 1.7807200201787055, + 1.531541027361527, + 1.5502430032938719, + 1.4226880157366395, + 1.5459060086868703, + 1.370787009363994, + 1.4277079899329692, + 1.77885199082084, + 1.627791003556922, + 1.3768580101896077, + 1.4119200059212744, + 1.4170650101732463, + 1.473873999202624, + 2.0117679960094392, + 1.6987660201266408, + 1.6052309947554022, + 1.428849995136261, + 1.6083199880085886, + 1.520362013252452, + 1.7445600242353976, + 1.6053980216383934, + 1.5585200162604451, + 1.6535989998374134, + 1.5226099931169301, + 1.6027979727368802, + 1.5130570100154728, + 1.4483020058833063, + 1.6448230016976595, + 1.2489040091168135, + 1.4204239996615797, + 1.4329250261653215, + 1.4669430092908442, + 1.25076700351201, + 1.6462439962197095, + 1.5046089829411358, + 1.5900820144452155, + 1.4905610005371273, + 1.446218986529857, + 1.5109870000742376, + 1.414650003425777, + 1.7656470008660108, + 1.5169010148383677, + 1.4703079941682518, + 1.455749006709084, + 1.5559140010736883, + 1.8134659912902862, + 1.4445550041273236, + 1.8734709883574396, + 1.64127501193434, + 1.511320995632559, + 1.4056400104891509, + 1.4988519833423197, + 1.4835739857517183, + 1.4398900093510747, + 1.3449499965645373, + 1.569423999171704, + 1.456466008676216, + 1.6163499967660755, + 1.460092986235395, + 1.75808000494726, + 1.460350991692394, + 1.4822729863226414, + 1.6913069994188845, + 1.4432079915422946, + 1.395892002619803, + 1.6961040091700852, + 1.514053001301363, + 1.3915929885115474, + 1.6876659938134253, + 1.9050849950872362, + 1.5161090123001486, + 1.3981910014990717, + 1.5097040159162134, + 1.1892180191352963, + 1.3016689918003976, + 1.7789529811125249, + 1.5046580228954554, + 1.3319509744178504, + 1.5381669800262898, + 1.3831480173394084, + 1.4120150008238852, + 1.9134320027660578, + 1.682967005763203, + 1.735626981826499, + 1.5763689880259335, + 1.4940020046196878, + 1.4405100082512945, + 1.641950977500528, + 1.5393859939649701, + 1.5845879970584065, + 1.623938005650416, + 1.9203910196665674, + 1.5708289865870029, + 1.8554480047896504, + 1.6966390248853713, + 1.3946399849373847, + 1.582616998348385, + 1.4921569963917136, + 1.6475339944008738, + 1.9636949873529375, + 1.690113014774397, + 1.3532540178857744, + 1.8585619982331991, + 1.4722690102644265, + 1.4948589960113168, + 1.5671580040361732, + 1.5094209811650217, + 1.5710289881099015, + 1.6479210171382874, + 1.4647000061813742, + 1.7243880138266832, + 1.4295069850049913, + 1.5348019951488823, + 1.4902170223649591, + 1.637793000554666, + 1.9583300163503736, + 1.5103690093383193, + 1.7749050166457891, + 1.6200279933400452, + 1.7303260101471096, + 1.633324020076543, + 1.511919981567189, + 1.6086990071926266, + 1.4262100157793611, + 1.5932730166241527, + 1.373999024508521, + 1.483483996707946, + 1.4614580140914768, + 1.8124739872291684, + 1.6221709956880659, + 1.595502020791173, + 1.4714990102220327, + 1.5400330012198538, + 1.3331299996934831, + 1.3643029960803688, + 1.713497011223808, + 1.5200490015558898, + 1.3409520033746958, + 1.4825300022494048, + 1.4969850017223507, + 1.2943149777129292, + 1.3658549869433045, + 1.777127996319905, + 1.3977900089230388, + 1.5128660015761852, + 1.5512070094700903, + 1.4723930216860026, + 1.3778299908153713, + 1.579215022502467, + 1.5788119926583022, + 1.5877700061537325, + 1.623746007680893, + 1.4110190095379949, + 1.6083109949249774, + 1.5504850016441196, + 1.732114003971219, + 1.7398660129401833, + 1.661892980337143, + 1.9178450165782124, + 1.461020001443103, + 1.4830220025032759, + 1.4271989930421114, + 1.3615080097224563, + 1.5987390070222318, + 1.7073990020435303, + 1.7433740140404552, + 1.5440470015164465, + 1.8560619791969657, + 1.9925069937016815, + 1.927345001604408, + 1.7767869867384434, + 1.6439020109828562, + 1.4965870068408549, + 1.5758279769215733, + 1.5805849980097264, + 1.6900500049814582, + 1.547152001876384, + 1.5749279991723597, + 1.5866370231378824, + 1.5332009934354573, + 1.629131002118811, + 1.4478169905487448, + 1.5464269963558763, + 1.5209039847832173, + 1.5380079858005047, + 1.5221679932437837, + 1.5368259919341654, + 1.6086459800135344, + 1.9961890066042542, + 1.6756739933043718, + 1.6739249986130744, + 1.6018559981603175, + 1.608952006790787, + 1.6253830108325928, + 1.897038018796593, + 2.0736379956360906, + 1.4860859955660999, + 1.809983019484207, + 1.5085339837241918, + 1.5820589906070381, + 1.3172010076232255, + 1.413377991411835, + 1.7822250083554536, + 1.5543699846602976, + 1.7420929798390716, + 1.5087770007085055, + 1.5563179913442582, + 1.5759530069772154, + 1.6058990149758756, + 1.5326410066336393, + 1.6700880078133196, + 1.5269079885911196, + 1.506305008661002, + 1.4536949747707695, + 1.550849003251642, + 1.5307389840018004, + 1.4020089874975383, + 1.596734015038237, + 1.5483110037166625, + 1.507651002611965, + 1.4800310018472373, + 1.5047529886942357, + 1.4235280104912817, + 1.560865988722071, + 1.8424939771648496, + 1.4104920264799148, + 1.5048490022309124, + 1.6227099986281246, + 1.6839560121297836, + 1.9492789870128036, + 1.7592010262887925, + 1.6582119860686362, + 1.751169009367004, + 1.4912000042386353, + 1.6058780020102859, + 1.9207120058126748, + 1.5914789983071387, + 1.5182030037976801, + 1.4551859931088984, + 1.7502219998277724, + 1.636264001717791, + 1.4720849867444485, + 1.6070189885795116, + 1.7402830126229674, + 1.539007993414998, + 1.426528993761167 + ], + "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 + } + } + }, + "mcs20": { + "config": { + "name": "mcs20", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 20, + "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": 20, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 1.5568764792988077, + "p10_ms": 1.398755409172736, + "p90_ms": 1.7963838967261838, + "min_ms": 1.183280983241275, + "max_ms": 2.128074993379414, + "mean_ms": 1.5835517863888526 + }, + "speedup_vs_control": { + "ratio": 0.9413100680875229, + "ci90_low": 0.9218777639303929, + "ci90_high": 0.9526963092541254, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9252315310867928, + "p10": 0.8985483135600961, + "p90": 0.9819653541561818 + }, + "compile": { + "lower_s": 2.471036101982463, + "compile_s": 4.589658130978933, + "first_call_s": 0.0028382730088196695, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [] + ], + "flops": 3017410.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 905240, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5050368, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.6889709804672748, + 1.609438011655584, + 1.661568006966263 + ], + "per_call_ms": [ + 1.7277580045629293, + 1.5723120013717562, + 1.5862199943512678, + 1.5350750181823969, + 1.815809984691441, + 1.5669179847463965, + 1.57741698785685, + 1.5000730054453015, + 1.6400190070271492, + 1.5567999798804522, + 1.384467992465943, + 1.449286995921284, + 1.2938360159751028, + 1.3277200050652027, + 1.3285200111567974, + 1.2304919946473092, + 1.278905023355037, + 1.183280983241275, + 1.2111430114600807, + 1.5569529787171632, + 1.5200890193227679, + 1.4311909908428788, + 1.626322016818449, + 1.3797969731967896, + 1.9339389982633293, + 1.5988740196917206, + 1.3902609935030341, + 1.7768249963410199, + 1.4505319995805621, + 1.4417679922189564, + 1.5118829905986786, + 1.6116720216814429, + 1.3358770229388028, + 1.3601599785033613, + 1.4969310141168535, + 1.3418019807431847, + 1.5364480204880238, + 1.42631700146012, + 1.4090719923842698, + 1.4437729842029512, + 1.7763370124157518, + 1.4941109984647483, + 1.488078007241711, + 1.627822988666594, + 1.6398410080000758, + 1.5746249991934747, + 1.3891679991502315, + 1.3384999765548855, + 1.7955219955183566, + 1.723844005027786, + 1.6847650113049895, + 1.2909320066682994, + 1.3384330086410046, + 1.4779680059291422, + 1.3553850003518164, + 1.3589890149887651, + 1.482174004195258, + 1.5384730068035424, + 1.3521469954866916, + 1.5282680105883628, + 1.4466890133917332, + 1.4890019956510514, + 1.6452899726573378, + 1.4088409952819347, + 1.671316014835611, + 1.5189230034593493, + 1.5445860044565052, + 1.5214699960779399, + 1.3929599954281002, + 1.9557710038498044, + 1.6052010178100318, + 1.5174930158536881, + 1.6766689950600266, + 1.4893359912093729, + 1.5580390172544867, + 1.3899289770051837, + 1.6034309810493141, + 1.618437992874533, + 1.383750990498811, + 1.542187004815787, + 1.4668129733763635, + 1.8375309882685542, + 1.992662000702694, + 2.001329994527623, + 1.5688849962316453, + 1.5694029862061143, + 1.4664650079794228, + 1.5689920110162348, + 1.4261990145314485, + 1.3760819856543094, + 1.5466129989363253, + 1.4360040077008307, + 1.4751929847989231, + 1.4755149895790964, + 1.517002994660288, + 1.6668729949742556, + 1.4925749856047332, + 1.7632849921938032, + 1.8883549782913178, + 1.4439990045502782, + 1.399180997395888, + 1.6708800103515387, + 1.6456190205644816, + 1.5212279977276921, + 1.546059997053817, + 1.349933008896187, + 1.4960120024625212, + 1.6333199746441096, + 1.6181889805011451, + 1.455684978282079, + 1.528391003375873, + 1.678116008406505, + 1.4171910006552935, + 1.363868999760598, + 1.746126014040783, + 1.731508004013449, + 1.7416240007150918, + 1.5803389833308756, + 1.705495989881456, + 1.4332300052046776, + 1.5400319825857878, + 1.6088330012280494, + 1.5571620024275035, + 1.5398780233226717, + 1.566808990901336, + 1.5985830104909837, + 1.3435290020424873, + 1.3572619936894625, + 1.4569029735866934, + 1.492337993113324, + 1.387377007631585, + 1.9115899922326207, + 1.6494890151079744, + 1.3842610060237348, + 1.4888349978718907, + 1.3442019990179688, + 1.371266000205651, + 1.738681981805712, + 1.763464999385178, + 1.507617998868227, + 1.6020530019886792, + 1.7875829944387078, + 1.4637959829997271, + 1.5176559973042458, + 1.6301190189551562, + 1.6525020182598382, + 1.7289860115852207, + 1.4525930164381862, + 1.5075870032887906, + 1.5645140083506703, + 1.5851509815547615, + 1.7544069851282984, + 1.8120220047421753, + 1.7383140220772475, + 1.624523982172832, + 1.6821719764266163, + 1.505005988292396, + 1.6810699889902025, + 1.4259729941841215, + 1.7577869875822216, + 1.4654950064141303, + 1.6272579960059375, + 1.4955509977880865, + 1.7901189858093858, + 1.4950039912946522, + 1.6425540088675916, + 1.5508700162172318, + 1.70273199910298, + 1.6134589968714863, + 1.3580220111180097, + 1.5208690019790083, + 1.4146680186968297, + 1.38524902286008, + 1.4572879881598055, + 1.5335920033976436, + 1.4397870108950883, + 1.5333089977502823, + 1.5286099805962294, + 1.495142001658678, + 1.5087309875525534, + 1.4875710185151547, + 1.852618996053934, + 1.8297630012966692, + 1.5496559790335596, + 1.4140580024104565, + 1.5064949984662235, + 1.5418670081999153, + 1.6496269963681698, + 1.6866959922481328, + 1.4855999907013029, + 1.5720230003353208, + 1.3814939884468913, + 1.7722619813866913, + 1.5593110001645982, + 1.649860991165042, + 1.5102309989742935, + 1.664181996602565, + 1.4635940024163574, + 1.8212069990113378, + 1.7224519979208708, + 1.6232010093517601, + 1.6114350000862032, + 1.5147730009630322, + 1.6380700108129531, + 1.5145030047278851, + 1.6480729973409325, + 1.4802140067331493, + 1.4530940097756684, + 1.5314079937525094, + 1.8041410075966269, + 1.5947459905873984, + 1.651058002607897, + 1.4741960039827973, + 1.5068659849930555, + 1.4870370214339346, + 1.8112319812644273, + 1.6235219954978675, + 1.7626780027057976, + 1.642885006731376, + 1.5498989960178733, + 1.4550719934049994, + 1.7354630108457059, + 1.4218169962987304, + 1.4182740123942494, + 1.5637800097465515, + 1.4477020013146102, + 1.6004199860617518, + 1.5858480182942003, + 1.3965860125608742, + 1.4135189994703978, + 1.946329022757709, + 1.3988630089443177, + 2.128074993379414, + 1.6216379881370813, + 1.5102719771675766, + 1.4728390087839216, + 1.5420870040543377, + 1.4046619762666523, + 1.626181008759886, + 1.899249997222796, + 1.5037280099932104, + 1.5272820019163191, + 1.5145799843594432, + 1.6277079994324595, + 1.6774240066297352, + 1.5842969878576696, + 1.5275009791366756, + 1.4650149969384074, + 1.620730006834492, + 1.552751986309886, + 1.4457209908869117, + 1.667912001721561, + 1.6116999904625118, + 1.4486059953924268, + 1.661752990912646, + 1.3977870112285018, + 1.540754979941994, + 1.960043009603396, + 1.5242710069287568, + 1.5400690026581287, + 1.5344000130426139, + 1.910933991894126, + 1.5149509999901056, + 1.664519979385659, + 1.9102109945379198, + 1.6728579939808697, + 1.7397009942214936, + 1.6152799944393337, + 1.444086985429749, + 1.4144229935482144, + 1.3792040117550641, + 1.5303959953598678, + 1.6203240083996207, + 1.5752479957882315, + 1.9343969761393964, + 1.9829520024359226, + 1.5095429844222963, + 1.768500020261854, + 1.4051409962121397, + 1.60629500169307, + 1.7631839727982879, + 1.642204006202519, + 1.5949129883665591, + 1.5358579985331744, + 1.57954401220195, + 1.4372139994520694, + 1.4831730222795159, + 1.8692860030569136, + 1.414544996805489, + 1.5559190069325268, + 1.5376569936051965, + 1.4503999846056104, + 1.682644011452794, + 1.525861007394269, + 1.508284010924399, + 1.465054985601455, + 1.555587979964912, + 1.363718998618424, + 1.3559549988713115, + 1.8143209745176136, + 1.4534030051436275, + 1.9853079866152257, + 1.6855489811860025, + 1.5976459835655987, + 1.7373989976476878, + 1.6380609886255115, + 2.007597009651363, + 1.9320340070407838, + 1.5487280033994466, + 1.4541560085490346, + 1.6981980006676167, + 1.4572229993063956, + 1.4889359881635755, + 1.5765329881105572, + 1.4274890127126127, + 1.4456069911830127, + 1.603279000846669, + 1.626958983251825, + 1.6565670084673911, + 1.5733919863123447, + 1.5032109804451466, + 1.5498229768127203, + 1.889758015749976, + 1.5294880140572786, + 1.5814449870958924, + 1.7261909961234778, + 1.791849994333461, + 1.575775007950142, + 1.5756110078655183, + 1.4892559847794473, + 1.4948280004318804, + 1.6477109747938812, + 1.9552060111891478, + 1.737976010190323, + 1.6274570079986006, + 1.7052339971996844, + 1.8062619783449918, + 1.705539005342871, + 1.5331300091929734, + 1.937093009473756, + 1.8317369977012277, + 2.023023000219837, + 1.9436599977780133, + 1.6382350004278123, + 1.6622369876131415, + 1.530642999568954, + 1.7745330114848912, + 1.5092910034582019, + 1.9409350061323494, + 1.6030039987526834, + 1.995502010686323, + 1.65688298875466, + 1.6583279939368367, + 1.6123699897434562, + 1.5998550225049257, + 1.459336985135451, + 1.628454978344962, + 1.6608650039415807, + 1.757513004122302, + 1.4935490034986287, + 1.5104789927136153, + 1.539045013487339, + 1.6769850044511259, + 1.4467530127149075, + 1.7698610026855022, + 1.5145090001169592, + 1.430306991096586, + 1.7779520130716264, + 1.569301006384194, + 1.5318480145651847, + 1.7787599936127663, + 1.5032230003271252, + 1.4709020033478737, + 1.666005002334714, + 1.7219450091943145, + 2.118106000125408, + 1.6370690136682242, + 1.477393991081044, + 1.6562969831284136, + 1.6101189830806106, + 1.527981017716229, + 1.9027759844902903, + 1.6332399973180145, + 1.8119360029231757, + 1.702590991044417, + 1.6363759932573885, + 1.6723489970900118, + 1.62718998035416, + 1.6493310104124248, + 1.7582070140633732, + 1.4361540088430047, + 1.5330309979617596, + 1.7030310118570924, + 1.4125200104899704, + 1.9096769974566996, + 1.560748991323635, + 1.4500019897241145, + 1.6075699822977185, + 1.5518470027018338, + 1.6265769954770803 + ], + "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 + } + } + }, + "mcs24": { + "config": { + "name": "mcs24", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 24, + "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": 24, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 1.597105001565069, + "p10_ms": 1.439958717674017, + "p90_ms": 1.8769890157273041, + "min_ms": 1.2566010118462145, + "max_ms": 2.37214399385266, + "mean_ms": 1.630428896023659 + }, + "speedup_vs_control": { + "ratio": 0.9175999720096778, + "ci90_low": 0.900012713886453, + "ci90_high": 0.9274080410750413, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9151080114451793, + "p10": 0.8678924856274991, + "p90": 0.9510558274679333 + }, + "compile": { + "lower_s": 2.619909862987697, + "compile_s": 4.906929579999996, + "first_call_s": 0.0030041450227145106, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [] + ], + "flops": 3195236.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 907736, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 8974336, + "max_containing_size_proof": null + }, + "warm_ms": [ + 1.6416379949077964, + 1.741185027640313, + 1.6929540142882615 + ], + "per_call_ms": [ + 1.4676619903184474, + 1.5033700037747622, + 1.3186020078137517, + 1.4362160000018775, + 1.449698000214994, + 1.755790988681838, + 1.591685984749347, + 1.6167809953913093, + 1.5790750039741397, + 1.4542220160365105, + 1.639852998778224, + 1.4088830212131143, + 1.286526006879285, + 1.2566010118462145, + 1.6551669978071004, + 1.3780919834971428, + 1.7036159988492727, + 1.583127013873309, + 1.5881200088188052, + 1.52091498603113, + 1.4322310162242502, + 1.4900880050845444, + 1.76181600545533, + 1.5068310021888465, + 1.4700710016768426, + 1.4870390004944056, + 1.405170012731105, + 1.5313519979827106, + 1.601258001755923, + 1.6132080054376274, + 1.4344399969559163, + 1.5023320156615227, + 1.6058500041253865, + 1.594897999893874, + 1.3706089812330902, + 1.5711669984739274, + 1.7321829800494015, + 1.5985239879228175, + 1.3719220005441457, + 1.5517420251853764, + 1.556145987706259, + 1.52824999531731, + 1.5787520096637309, + 1.9882000051438808, + 1.6945469833444804, + 1.9370079971849918, + 1.550880988361314, + 1.5887570043560117, + 1.7731150146573782, + 1.9471889827400446, + 1.5520190063398331, + 1.484756008721888, + 1.4626400079578161, + 1.443538989406079, + 1.5431600040756166, + 1.549024018459022, + 1.4389840071089566, + 1.5079799923114479, + 1.4288200181908906, + 2.017644001170993, + 1.8479620048310608, + 1.6859720053616911, + 1.5261310036294162, + 1.5711250016465783, + 1.483820000430569, + 1.5598709869664162, + 1.4633199898526073, + 1.4878499787300825, + 1.4893329935148358, + 1.537100994028151, + 1.6034209984354675, + 1.850105996709317, + 1.5556160069536418, + 1.548874017316848, + 1.494987984187901, + 1.4376009930856526, + 2.0955890067853034, + 1.7033639887813479, + 1.6974539903458208, + 1.4851689920760691, + 1.860463002230972, + 1.64535001385957, + 1.4702320040669292, + 1.4698459999635816, + 1.5146880177780986, + 1.7040600068867207, + 1.5009509806986898, + 1.7430440057069063, + 2.0353130239527673, + 1.7507410084363073, + 1.4746320084668696, + 1.4187080087140203, + 1.5517040155828, + 1.5449129859916866, + 1.5645370003767312, + 1.5501749876420945, + 1.5085990016814321, + 1.385207986459136, + 1.459074002923444, + 1.4026010176166892, + 1.8933450046461076, + 1.7235059931408614, + 1.7420490039512515, + 1.8945379997603595, + 1.7113919893745333, + 1.648864010348916, + 2.0713289850391448, + 1.5472639934159815, + 1.579727017087862, + 1.602530013769865, + 1.7573320074006915, + 1.9008380186278373, + 1.6503840161021799, + 1.6562739911023527, + 1.8888429913204163, + 1.5094160044100136, + 1.9483700161799788, + 1.591463020304218, + 1.5679029747843742, + 1.6328630154021084, + 1.8042979936581105, + 1.6040679765865207, + 1.5034590032882988, + 1.4576099929399788, + 1.4537199749611318, + 1.6892570129130036, + 1.6283570148516446, + 1.944092015037313, + 1.8198649922851473, + 1.565348997246474, + 1.682183996308595, + 1.7008149879984558, + 1.542559009976685, + 1.5480039874091744, + 1.8965349881909788, + 1.5884479798842221, + 1.865394995547831, + 1.4417330094147474, + 1.3718159752897918, + 1.638093002839014, + 1.5188459947239608, + 1.5816020022612065, + 1.6059890040196478, + 1.6550849832128733, + 1.6049029945861548, + 1.4858170179650187, + 1.4968219911679626, + 1.6811669920571148, + 1.5760530077386647, + 1.4241469907574356, + 1.4400670188479125, + 1.4063010166864842, + 2.37214399385266, + 1.633687992580235, + 1.7858339997474104, + 1.6302230069413781, + 1.4568290207535028, + 1.6430179821327329, + 1.6961029905360192, + 1.429451018339023, + 1.5574319986626506, + 1.6056140011642128, + 2.0615480025298893, + 1.7494260100647807, + 1.4617840060964227, + 1.517511991551146, + 1.7074299976229668, + 1.4811060100328177, + 2.016314014326781, + 1.5844559820834547, + 1.5931920206639916, + 1.654680003412068, + 1.77437299862504, + 1.7367130203638226, + 1.5779859968461096, + 1.606934005394578, + 1.6874830180313438, + 1.3398280134424567, + 1.482469990151003, + 1.4180019788909703, + 1.6247409803327173, + 1.6051289858296514, + 2.2259810066316277, + 1.63903902284801, + 1.5282130043487996, + 1.6453640128020197, + 1.9921420025639236, + 1.6751569928601384, + 2.071460010483861, + 1.7071510083042085, + 1.6099099884741008, + 1.8546649953350425, + 1.4758510224055499, + 1.779603015165776, + 1.4292139967437834, + 1.7080020043067634, + 1.5611840062774718, + 1.7285950016230345, + 1.589445018908009, + 1.4912000042386353, + 1.9186290155630559, + 1.9823000184260309, + 1.656592998187989, + 2.095600008033216, + 1.7129530024249107, + 2.1912270167376846, + 1.6566549893468618, + 1.567365980008617, + 1.5684410172980279, + 1.7356880125589669, + 1.706443988950923, + 1.5046090120449662, + 1.5859270060900599, + 1.4602919982280582, + 1.6076260071713477, + 1.5412709908559918, + 1.4016169880051166, + 1.6097179905045778, + 1.76535701029934, + 1.4096680097281933, + 1.6182450053747743, + 1.731814001686871, + 1.5076779818627983, + 1.6245509905274957, + 1.5739020018372685, + 1.6320210124831647, + 1.5378730022348464, + 1.6023060015868396, + 1.49490698822774, + 1.5526080096606165, + 1.4768679975531995, + 1.6169210139196366, + 1.921779999975115, + 1.5007729816716164, + 1.4916879881639034, + 1.5640660130884498, + 1.6498129989486188, + 1.6574400069657713, + 1.539449003757909, + 1.8223590159323066, + 1.9124289974570274, + 1.8442670116201043, + 1.7918509838636965, + 1.8816060037352145, + 1.7789760022424161, + 1.6459230100736022, + 1.7227440257556736, + 1.5649929991923273, + 1.4987440081313252, + 1.7908139852806926, + 1.7086690058931708, + 1.9062369829043746, + 1.632233994314447, + 1.4906680153217167, + 1.5900189755484462, + 1.6989799914881587, + 1.5712280001025647, + 1.7147809849120677, + 1.6175190103240311, + 1.5451550134457648, + 1.521547994343564, + 1.7742049822118133, + 1.4407600101549178, + 1.4315599983092397, + 1.4225859777070582, + 1.4718439779244363, + 1.5756869979668409, + 1.5657080220989883, + 1.479416008805856, + 1.5438030241057277, + 1.5905220061540604, + 1.5247399860527366, + 1.3729680213145912, + 1.4231959939934313, + 1.6502689977642149, + 1.5419659903272986, + 1.5108429943211377, + 1.5111099928617477, + 1.5751050086691976, + 1.539794000564143, + 1.7570660274941474, + 1.5672420267947018, + 1.5869670023676008, + 1.3966429978609085, + 1.432327990187332, + 1.4275330177042633, + 1.446337002562359, + 1.560892997076735, + 1.4660140150226653, + 1.4945899893064052, + 1.7821399960666895, + 1.7084369901567698, + 1.5375540242530406, + 1.9287579925730824, + 1.8049209902528673, + 1.6944629896897823, + 1.5615170123055577, + 1.5069920045789331, + 1.6312419902533293, + 1.599201001226902, + 1.5396270027849823, + 1.619346992811188, + 1.4299180184025317, + 1.544161990750581, + 1.4135950186755508, + 1.4869839942548424, + 1.4162730076350272, + 1.4119429979473352, + 1.6407299845013767, + 1.4151179930195212, + 1.9105170213151723, + 1.504668005509302, + 1.6301760042551905, + 1.4855370100121945, + 1.5083749894984066, + 1.4046610158402473, + 1.757702004397288, + 1.392272999510169, + 1.4992929936852306, + 1.617699017515406, + 1.6839370073284954, + 1.977635984076187, + 1.781091996235773, + 2.1102270111441612, + 1.576066017150879, + 1.7592969816178083, + 1.4849649742245674, + 1.70427598641254, + 1.6894479922484607, + 1.6216799849644303, + 1.7263629997614771, + 1.688134012511, + 2.06157797947526, + 1.7978260002564639, + 1.509708003140986, + 1.5599869948346168, + 1.7402280063834041, + 1.7277339939028025, + 1.6096689796540886, + 1.811206981074065, + 1.6177939833141863, + 1.5928669890854508, + 2.0067510195076466, + 1.8355950014665723, + 2.0311650005169213, + 1.7166160105261952, + 1.8764760170597583, + 1.6465350054204464, + 1.727769005810842, + 1.7584730230737478, + 1.904325996292755, + 1.6588479920756072, + 1.549722015624866, + 1.6523569938726723, + 1.5973510162439197, + 1.9958880147896707, + 1.733754004817456, + 1.5760640089865774, + 1.5935819828882813, + 2.1327319846022874, + 1.5810320037417114, + 1.6104500100482255, + 1.5297640056814998, + 1.5574429999105632, + 1.6555600159335881, + 1.6315819812007248, + 1.696494990028441, + 1.4817669871263206, + 1.7238309956155717, + 2.0600819843821228, + 1.7897160141728818, + 1.5898169949650764, + 1.6708390030544251, + 1.748858019709587, + 1.574199995957315, + 1.750611001625657, + 1.6745940083637834, + 1.5968589868862182, + 2.0318950118962675, + 1.8406150047667325, + 1.5370120236184448, + 1.7451650055591017, + 1.6019539907574654, + 1.6481709899380803, + 1.7486890137661248, + 1.5216929896268994, + 1.5197370084933937, + 1.582870987476781, + 1.6429329989477992, + 1.858170988271013, + 1.8594389839563519, + 1.6223769926000386, + 1.7058929952327162, + 1.5824350120965391, + 1.6865490179043263, + 1.6365500050596893, + 1.7094300128519535, + 1.6151370073202997, + 1.5045329928398132, + 1.509184017777443 + ], + "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": "mcs18", + "routes": [ + "control", + "mcs18", + "mcs20", + "mcs24" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.4495005161734298, + "p10_ms": 1.2531039188615978, + "p90_ms": 1.7158517963252962, + "min_ms": 1.1369280109647661, + "max_ms": 2.277750987559557, + "mean_ms": 1.4762707293994026 + }, + "median_ms_per_likelihood": 1.4495005161734298, + "compile": { + "lower_s": 3.3375132299843244, + "compile_s": 5.033083348011132, + "first_call_s": 0.0026494069898035377, + "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": 3215360, + "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": 3.964828996686265, + "p10_ms": 3.5396839055465534, + "p90_ms": 4.516517507727258, + "min_ms": 3.307094011688605, + "max_ms": 5.27446300839074, + "mean_ms": 3.9990184400085127 + }, + "median_ms_per_likelihood": 0.9912072491715662, + "compile": { + "lower_s": 3.3289998849795666, + "compile_s": 5.348689678998198, + "first_call_s": 0.005169693991774693, + "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": 3534848, + "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.140824012225494, + "p10_ms": 10.957640802371316, + "p90_ms": 14.618824573699385, + "min_ms": 10.07982000010088, + "max_ms": 15.87671399465762, + "mean_ms": 13.19496433781751 + }, + "median_ms_per_likelihood": 0.8213015007640934, + "compile": { + "lower_s": 3.4782426330202725, + "compile_s": 5.550916251988383, + "first_call_s": 0.015390693995868787, + "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": 2007040, + "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 + }, + "mcs18_vmap1": { + "config": "mcs18", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.5649794950149953, + "p10_ms": 1.2897089938633144, + "p90_ms": 1.8583328172098847, + "min_ms": 1.1948950123041868, + "max_ms": 2.284514019265771, + "mean_ms": 1.5684827880613739 + }, + "median_ms_per_likelihood": 1.5649794950149953, + "compile": { + "lower_s": 3.3560524829954375, + "compile_s": 5.344949574995553, + "first_call_s": 0.00307402599719353, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2950598.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 904088, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 16396288, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9262105483110761, + "ci90_low": 0.9098906856070057, + "ci90_high": 0.9456747748744179, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs18_vmap4": { + "config": "mcs18", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.234923995682038, + "p10_ms": 3.7898874026723206, + "p90_ms": 4.766668600495905, + "min_ms": 3.5218659904785454, + "max_ms": 5.881256976863369, + "mean_ms": 4.262586374679813 + }, + "median_ms_per_likelihood": 1.0587309989205096, + "compile": { + "lower_s": 3.4029921400069725, + "compile_s": 5.661442991986405, + "first_call_s": 0.005808254994917661, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10862882.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3208664, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 40890368, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9362219961276367, + "ci90_low": 0.9186088841825412, + "ci90_high": 0.9549319889859773, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs18_vmap16": { + "config": "mcs18", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 13.695960995391943, + "p10_ms": 11.58428451162763, + "p90_ms": 15.42402379855048, + "min_ms": 10.581708018435165, + "max_ms": 17.04902498750016, + "mean_ms": 13.84992560982937 + }, + "median_ms_per_likelihood": 0.8559975622119964, + "compile": { + "lower_s": 3.535950798977865, + "compile_s": 5.781637423002394, + "first_call_s": 0.013609179004561156, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 42523956.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12430488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 42160128, + "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.9594671025017356, + "ci90_low": 0.9455121015366467, + "ci90_high": 0.9929415357948094, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap1": { + "config": "mcs20", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.5477784909307957, + "p10_ms": 1.2977391947060823, + "p90_ms": 1.8478707992471755, + "min_ms": 1.2102810142096132, + "max_ms": 2.2853990085422993, + "mean_ms": 1.5597796887595905 + }, + "median_ms_per_likelihood": 1.5477784909307957, + "compile": { + "lower_s": 3.430391770991264, + "compile_s": 5.317896382999606, + "first_call_s": 0.0028939830081071705, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3039132.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 905304, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 46211072, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.93650385030337, + "ci90_low": 0.9158320361203155, + "ci90_high": 0.9622733708426275, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap4": { + "config": "mcs20", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.3057559814769775, + "p10_ms": 3.8801504852017388, + "p90_ms": 4.877437688992359, + "min_ms": 3.6848370218649507, + "max_ms": 5.5442359880544245, + "mean_ms": 4.34951027353236 + }, + "median_ms_per_likelihood": 1.0764389953692444, + "compile": { + "lower_s": 3.3625987129926216, + "compile_s": 6.002069764013868, + "first_call_s": 0.005300518008880317, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11200138.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3214040, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 35926016, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9208206442126879, + "ci90_low": 0.9017302418985326, + "ci90_high": 0.9384155644725527, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap16": { + "config": "mcs20", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 14.264940997236408, + "p10_ms": 12.118321101297624, + "p90_ms": 16.007461777189746, + "min_ms": 11.079532006988302, + "max_ms": 17.56552400183864, + "mean_ms": 14.41096842456318 + }, + "median_ms_per_likelihood": 0.8915588123272755, + "compile": { + "lower_s": 3.559113263996551, + "compile_s": 5.976888339006109, + "first_call_s": 0.014704155008075759, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 43857436.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12452888, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 51593216, + "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.9211972215497636, + "ci90_low": 0.9028483398356169, + "ci90_high": 0.9543164718784634, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs24_vmap1": { + "config": "mcs24", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 1.633648993447423, + "p10_ms": 1.3665171776665375, + "p90_ms": 1.9232380960602313, + "min_ms": 1.254843984497711, + "max_ms": 2.2306850005406886, + "mean_ms": 1.6360265461116796 + }, + "median_ms_per_likelihood": 1.633648993447423, + "compile": { + "lower_s": 3.4512862190022133, + "compile_s": 5.800241413002368, + "first_call_s": 0.0030461529968306422, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3226778.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 907800, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 54517760, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.8872778191566156, + "ci90_low": 0.8709935440785286, + "ci90_high": 0.9050854183722021, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs24_vmap4": { + "config": "mcs24", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 4.666966502554715, + "p10_ms": 4.19982218882069, + "p90_ms": 5.225766313378699, + "min_ms": 3.9013890200294554, + "max_ms": 6.218124006409198, + "mean_ms": 4.701198294569622 + }, + "median_ms_per_likelihood": 1.1667416256386787, + "compile": { + "lower_s": 3.430010804993799, + "compile_s": 6.402116206998471, + "first_call_s": 0.005664138006977737, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11916962.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3225304, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 37064704, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.8495516294183605, + "ci90_low": 0.8333841509580358, + "ci90_high": 0.8666872838897086, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs24_vmap16": { + "config": "mcs24", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 14.799120006500743, + "p10_ms": 13.210776590858586, + "p90_ms": 16.19304569903761, + "min_ms": 11.564007989363745, + "max_ms": 18.399093009065837, + "mean_ms": 14.791498770282487 + }, + "median_ms_per_likelihood": 0.9249450004062965, + "compile": { + "lower_s": 3.5421290719823446, + "compile_s": 6.744323274004273, + "first_call_s": 0.013158175977878273, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 46693644.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12497752, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 59502592, + "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.887946310757206, + "ci90_low": 0.863907395373902, + "ci90_high": 0.9246087054628342, + "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.12157049786765128, + "ray_trace": 0.4276464896975085, + "general_gather": 1.3682614808203653, + "route_inputs": 0.703496509231627, + "containment": 0.9287250140914693 + }, + "ray_trace_ms": 0.30607599182985723, + "containment_ms": 0.5010785243939608, + "route_input_materialisation_ms": 0.2758500195341185, + "general_gather_reference_ms": 0.9406149911228567, + "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.8071545162238181, + "containment_share_of_step0": 0.6207962841342951, + "step0_share_of_likelihood": 0.5507694206238564, + "containment_share_of_likelihood": 0.3419156097380886 + }, + "mcs18": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.1193240168504417, + "ray_trace": 0.418381008785218, + "general_gather": 1.3538249913835898, + "route_inputs": 0.6836070097051561, + "containment": 0.974822003627196 + }, + "ray_trace_ms": 0.2990569919347763, + "containment_ms": 0.556440994841978, + "route_input_materialisation_ms": 0.2652260009199381, + "general_gather_reference_ms": 0.9354439825983718, + "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.8554979867767543, + "containment_share_of_step0": 0.6504293445955046, + "step0_share_of_likelihood": 0.5562089258774129, + "containment_share_of_likelihood": 0.36177460711661524 + }, + "mcs20": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.11961098061874509, + "ray_trace": 0.4229589976603165, + "general_gather": 1.3855059951310977, + "route_inputs": 0.6828305049566552, + "containment": 0.9502744942437857 + }, + "ray_trace_ms": 0.30334801704157144, + "containment_ms": 0.5273154965834692, + "route_input_materialisation_ms": 0.2598715072963387, + "general_gather_reference_ms": 0.9625469974707812, + "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.8306635136250407, + "containment_share_of_step0": 0.6348123974799958, + "step0_share_of_likelihood": 0.5335449052446076, + "containment_share_of_likelihood": 0.3387009204615665 + }, + "mcs24": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.1228534965775907, + "ray_trace": 0.41318850708194077, + "general_gather": 1.3542575034080073, + "route_inputs": 0.6915164849488065, + "containment": 0.9339310054201633 + }, + "ray_trace_ms": 0.29033501050435007, + "containment_ms": 0.5207424983382225, + "route_input_materialisation_ms": 0.2783279778668657, + "general_gather_reference_ms": 0.9410689963260666, + "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.8110775088425726, + "containment_share_of_step0": 0.6420378973167864, + "step0_share_of_likelihood": 0.5078423197271089, + "containment_share_of_likelihood": 0.3260540151260722 + } + }, + "uncapped_containing_counts": { + "control": { + "prior": { + "n_draws": 200, + "cap": 15, + "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 + ], + "draws_exceeding_cap_per_step": [ + [ + 12 + ], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": -2, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 15, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 2, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 15, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 8, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs18": { + "prior": { + "n_draws": 200, + "cap": 18, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 1, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 18, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 5, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 18, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 11, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs20": { + "prior": { + "n_draws": 200, + "cap": 20, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 3, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 20, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 7, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 20, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 13, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs24": { + "prior": { + "n_draws": 200, + "cap": 24, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 7, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 24, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 11, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 24, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 17, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + } + }, + "mcs_headroom": { + "control_max_containing_size": 15, + "rows": { + "control": { + "mcs": 15, + "median_ms": 1.4655035047326237, + "control_over_row": { + "ratio": 1.0, + "ci90_low": 0.9822866649230252, + "ci90_high": 1.018805779813082, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0, + "compile_s": 4.2897308630053885, + "compile_ratio_vs_control": 1.0, + "temp_bytes": 901656, + "flops": 2801341.0, + "vmap16_ms_per_likelihood": 0.8213015007640934, + "vmap16_control_over_row": null, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [ + 12 + ], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 1, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 0.0 + }, + "mcs18": { + "mcs": 18, + "median_ms": 1.5380874829133973, + "control_over_row": { + "ratio": 0.9528089403319977, + "ci90_low": 0.9343722069591963, + "ci90_high": 0.9650918127139239, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0495283552351629, + "compile_s": 4.48203518500668, + "compile_ratio_vs_control": 1.044828994671839, + "temp_bytes": 904024, + "flops": 2933102.0, + "vmap16_ms_per_likelihood": 0.8559975622119964, + "vmap16_control_over_row": { + "ratio": 0.9594671025017356, + "ci90_low": 0.9455121015366467, + "ci90_high": 0.9929415357948094, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 6.081392078214739e-14 + }, + "mcs20": { + "mcs": 20, + "median_ms": 1.5568764792988077, + "control_over_row": { + "ratio": 0.9413100680875229, + "ci90_low": 0.9218777639303929, + "ci90_high": 0.9526963092541254, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0623492023533951, + "compile_s": 4.589658130978933, + "compile_ratio_vs_control": 1.069917502414922, + "temp_bytes": 905240, + "flops": 3017410.0, + "vmap16_ms_per_likelihood": 0.8915588123272755, + "vmap16_control_over_row": { + "ratio": 0.9211972215497636, + "ci90_low": 0.9028483398356169, + "ci90_high": 0.9543164718784634, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 6.081392078214739e-14 + }, + "mcs24": { + "mcs": 24, + "median_ms": 1.597105001565069, + "control_over_row": { + "ratio": 0.9175999720096778, + "ci90_low": 0.900012713886453, + "ci90_high": 0.9274080410750413, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0897995101393194, + "compile_s": 4.906929579999996, + "compile_ratio_vs_control": 1.143878191127869, + "temp_bytes": 907736, + "flops": 3195236.0, + "vmap16_ms_per_likelihood": 0.9249450004062965, + "vmap16_control_over_row": { + "ratio": 0.887946310757206, + "ci90_low": 0.863907395373902, + "ci90_high": 0.9246087054628342, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 6.081392078214739e-14 + } + }, + "uncapped_max_over_all_samples_and_steps": 17, + "decision_rule": "smallest N >= 18 with uncapped max <= N - 3, no unexplained change, compile <= +20 %, scalar median cost <= ~5 % (human picks N at the step-2 checkpoint)", + "rule_candidates": [] + }, + "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 + }, + "mcs18": { + "positions_shape": [ + 18, + 2 + ], + "expected_rows": 18, + "pass": true + }, + "mcs20": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + }, + "mcs24": { + "positions_shape": [ + 24, + 2 + ], + "expected_rows": 24, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "patch_keeps_later_defaults": { + "probes": { + "mcs18": { + "mcs": 18, + "__init__": { + "during": { + "max_containing_size": "18", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "18" + } + }, + "constructed_max_containing_size": 18, + "constructed_step0_layout": "None", + "pass": true + }, + "mcs20": { + "mcs": 20, + "__init__": { + "during": { + "max_containing_size": "20", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "20" + } + }, + "constructed_max_containing_size": 20, + "constructed_step0_layout": "None", + "pass": true + }, + "mcs24": { + "mcs": 24, + "__init__": { + "during": { + "max_containing_size": "24", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "24" + } + }, + "constructed_max_containing_size": 24, + "constructed_step0_layout": "None", + "pass": true + } + }, + "pass": true + }, + "grad": { + "control": { + "compile_s": 6.793033783993451, + "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 + }, + "mcs18": { + "compile_s": 7.442761393002002, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783335, + 2.80413192225053, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223535, + 41.855894384352354, + 53.12915308135318, + -17.189194514945868, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 6.081392078214739e-14 + }, + "mcs20": { + "compile_s": 7.768679987988435, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783335, + 2.80413192225053, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223535, + 41.855894384352354, + 53.12915308135318, + -17.189194514945868, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 6.081392078214739e-14 + }, + "mcs24": { + "compile_s": 7.952023865975207, + "all_finite": true, + "non_zero_per_instance": [ + true, + true, + true + ], + "gradients": [ + [ + -41.62226304412241, + 53.13429595959836, + 31.78649237783335, + 2.80413192225053, + 1781.7386158499905 + ], + [ + 249.2584709570848, + 214.72130119062615, + 374.39194598162, + 813.0025446226292, + 3314.4494363252807 + ], + [ + -30.046183166223535, + 41.855894384352354, + 53.12915308135318, + -17.189194514945868, + 1304.41858376655 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 6.081392078214739e-14 + } + }, + "mcs_no_unexplained_change": { + "mcs18": { + "max_containing_size": 18, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_repr": "7.743201200876812", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 0, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 6.081392078214739e-14, + "explanation": "padded-length reduction rounding (log L bit-identical)" + }, + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 7.567472852885895e-15, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 6.081392078214739e-14, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + }, + "mcs20": { + "max_containing_size": 20, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_repr": "7.743201200876812", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 0, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 6.081392078214739e-14, + "explanation": "padded-length reduction rounding (log L bit-identical)" + }, + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 7.567472852885895e-15, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 6.081392078214739e-14, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + }, + "mcs24": { + "max_containing_size": 24, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_repr": "7.743201200876812", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 0, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 6.081392078214739e-14, + "explanation": "padded-length reduction rounding (log L bit-identical)" + }, + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 7.567472852885895e-15, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 6.081392078214739e-14, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + } + } + }, + "all_gates_pass": true, + "completeness_compile": { + "control_prior": { + "lower_s": 3.458940712007461, + "compile_s": 5.7101003139978275, + "first_call_s": 0.002807413024129346, + "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": 7430144, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.1007693150022533, + "compile_s": 1.8274762749788351, + "first_call_s": 0.002640432008774951, + "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": 1118208, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "mcs18_prior": { + "lower_s": 3.411665604013251, + "compile_s": 5.774980157992104, + "first_call_s": 0.002947326982393861, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [], + [ + 18, + 2 + ] + ], + "flops": 2933102.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 312, + "temp_size_in_bytes": 903960, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7696384, + "max_containing_size_proof": { + "positions_shape": [ + 18, + 2 + ], + "expected_rows": 18, + "pass": true + } + }, + "mcs18_stress": { + "lower_s": 0.996797936008079, + "compile_s": 1.9050439029815607, + "first_call_s": 0.0028693990025203675, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 18, + 2 + ] + ], + "flops": 2855615.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 288, + "temp_size_in_bytes": 903512, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1122304, + "max_containing_size_proof": { + "positions_shape": [ + 18, + 2 + ], + "expected_rows": 18, + "pass": true + } + }, + "mcs20_prior": { + "lower_s": 3.576269935001619, + "compile_s": 5.863647318998119, + "first_call_s": 0.002957240998512134, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [], + [ + 20, + 2 + ] + ], + "flops": 3017410.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 344, + "temp_size_in_bytes": 905176, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7614464, + "max_containing_size_proof": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + }, + "mcs20_stress": { + "lower_s": 0.9983673219976481, + "compile_s": 1.8576520439819433, + "first_call_s": 0.0028822370222769678, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 20, + 2 + ] + ], + "flops": 2922293.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 320, + "temp_size_in_bytes": 904728, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1040384, + "max_containing_size_proof": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + }, + "mcs24_prior": { + "lower_s": 3.6680872490105685, + "compile_s": 6.136533268989297, + "first_call_s": 0.002946319989860058, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [], + [ + 24, + 2 + ] + ], + "flops": 3195236.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 408, + "temp_size_in_bytes": 907672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 7811072, + "max_containing_size_proof": { + "positions_shape": [ + 24, + 2 + ], + "expected_rows": 24, + "pass": true + } + }, + "mcs24_stress": { + "lower_s": 1.0189049979962874, + "compile_s": 1.863690369995311, + "first_call_s": 0.0027793049812316895, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 24, + 2 + ] + ], + "flops": 3059387.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 384, + "temp_size_in_bytes": 907224, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1015808, + "max_containing_size_proof": { + "positions_shape": [ + 24, + 2 + ], + "expected_rows": 24, + "pass": true + } + } + }, + "progress": [ + "[ 4.7 s] configs: control(n=8,rows=11859), mcs18(n=8,rows=11859), mcs20(n=8,rows=11859), mcs24(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 32.5 s] reference reference solved on 200 prior + 200 stress draws (compile 2.0 s)", + "[ 55.9 s] reference reference_b solved on 200 prior + 200 stress draws (compile 2.4 s)", + "[ 55.9 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.1 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.2 s] completeness mcs18 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.2 s] completeness mcs20 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.2 s] completeness mcs24 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 109.2 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.2 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 140.6 s] timing: 20 rounds x 20 calls x 4 routes done", + "[ 141.1 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True", + "[ 189.4 s] grad gate: control=True, mcs18=True, mcs20=True, mcs24=True", + "[ 189.4 s] best admissible (precision-equivalent): mcs18; any precision: mcs18", + "[ 335.6 s] vmap: control_vmap1 1.450 ms/L, control_vmap4 0.991 ms/L, control_vmap16 0.821 ms/L, mcs18_vmap1 1.565 ms/L, mcs18_vmap4 1.059 ms/L, mcs18_vmap16 0.856 ms/L, mcs20_vmap1 1.548 ms/L, mcs20_vmap4 1.076 ms/L, mcs20_vmap16 0.892 ms/L, mcs24_vmap1 1.634 ms/L, mcs24_vmap4 1.167 ms/L, mcs24_vmap16 0.925 ms/L", + "[ 335.6 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 355.6 s] step-0 split: control trace 0.306 contain 0.501, mcs18 trace 0.299 contain 0.556, mcs20 trace 0.303 contain 0.527, mcs24 trace 0.290 contain 0.521", + "[ 355.6 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 397.1 s] uncapped prior: max per step [17, 13, 11, 9, 7, 5, 5, 5]; control exceed/step [1, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 397.1 s] uncapped stream: max per step [13, 9, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 397.1 s] uncapped stress: max per step [7, 5, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 397.2 s] mcs gate mcs18: 0 draw changes (0 image-set), stream 0, grad 2, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True", + "[ 397.2 s] mcs gate mcs20: 0 draw changes (0 image-set), stream 0, grad 2, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True", + "[ 397.2 s] mcs gate mcs24: 0 draw changes (0 image-set), stream 0, grad 2, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True" + ], + "wall_s": 397.20861472698743 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.png new file mode 100644 index 000000000..b41641c31 Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.png differ diff --git a/results/breakdown/point_source_image/solver_config_sweep_mcs_laptop_cpu_fp64.json b/results/breakdown/point_source_image/solver_config_sweep_mcs_laptop_cpu_fp64.json new file mode 100644 index 000000000..6761242e6 --- /dev/null +++ b/results/breakdown/point_source_image/solver_config_sweep_mcs_laptop_cpu_fp64.json @@ -0,0 +1,6072 @@ +{ + "cell": "solver_config_sweep_mcs", + "issue": "PyAutoLabs/PyAutoArray#583", + "phase": "4c", + "mcs_headroom_mode": true, + "production_max_containing_size": 15, + "step0_routes": null, + "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": "d6757ad0513196470329ae46c482ca308f0ff73d", + "PyAutoNerves": "bf104102312852537159b7fad2f998ab6677b4e4", + "PyAutoFit": "c156a9d8e8eb9f82b6da169b1d50b7e64580fe98", + "PyAutoArray": "e281abf3257e9efd4915f1daa9acc0498be250a5", + "PyAutoGalaxy": "ba8a08fabcb13d9472f2bd43ef4fea6039284d50", + "PyAutoLens": "dcbd4b711120641cc0ecc6490d868795ad717b07" + }, + "autoarray_imported_from": "~/Code/PyAutoLabs-wt/pointsolver-mcs-headroom/PyAutoArray", + "autolens_imported_from": "~/Code/PyAutoLabs-wt/pointsolver-mcs-headroom/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": [ + 2.83056640625, + 3.47900390625, + 3.16748046875 + ], + "loadavg_end": [ + 3.08349609375, + 3.67919921875, + 3.54296875 + ], + "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": "mcs18", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 18, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "mcs20", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 20, + "neighbor_degree": 1, + "step0_route": null + }, + { + "name": "mcs24", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 24, + "neighbor_degree": 1, + "step0_route": null + } + ], + "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)" + }, + "mcs18": { + "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": 18, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "mcs20": { + "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": 20, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "mcs24": { + "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": 24, + "neighbor_degree": 1, + "step0_route": "library default (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": 12.346226900001056, + "compile_s": 12.829270300000644, + "first_call_s": 0.024761399999988498, + "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": 433754112, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_stress": { + "lower_s": 1.991337499999645, + "compile_s": 2.91427079999994, + "first_call_s": 0.024987500000861473, + "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": 7901184, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_prior": { + "lower_s": 8.114930900002946, + "compile_s": 14.679701699998986, + "first_call_s": 0.015504300001339288, + "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": 57135104, + "max_containing_size_proof": { + "positions_shape": [ + 60, + 2 + ], + "expected_rows": 60, + "pass": true + } + }, + "reference_b_stress": { + "lower_s": 2.5168059000025096, + "compile_s": 3.5594302999998035, + "first_call_s": 0.01352960000076564, + "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": 811008, + "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, + "mcs18": true, + "mcs20": true, + "mcs24": true + }, + "precision_equivalent": { + "control": true, + "mcs18": true, + "mcs20": true, + "mcs24": 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": "mcs18", + "best_admissible_any_precision": "mcs18", + "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": 2.1513500014407327, + "speedup": 1.0, + "speedup_ci90": [ + 0.9792813009410695, + 1.020824725604644 + ], + "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": 6.102138500002184, + "flops": 2801341.0, + "temp_bytes": 901656 + }, + { + "config": "mcs18", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 18, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 2.2298500007309485, + "speedup": 0.9647958386149367, + "speedup_ci90": [ + 0.9382644623531707, + 0.9858998839644482 + ], + "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": 7.218237199998839, + "flops": 2933102.0, + "temp_bytes": 904024 + }, + { + "config": "mcs20", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 20, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 2.2690500009048264, + "speedup": 0.9481280714760986, + "speedup_ci90": [ + 0.9228438819167644, + 0.9672158182516366 + ], + "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": 8.317399899999145, + "flops": 3017410.0, + "temp_bytes": 905240 + }, + { + "config": "mcs24", + "block": "max_containing_size_headroom", + "extent": 9.9, + "scale": 0.2, + "precision": 0.001, + "mcs": 24, + "neighbor_degree": 1, + "n_steps": 8, + "step0_rows": 11859, + "step0_triangles": 23283, + "median_ms": 2.392300000792602, + "speedup": 0.8992810269313886, + "speedup_ci90": [ + 0.878696659875835, + 0.918558430150147 + ], + "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": 6.733799100002216, + "flops": 3195236.0, + "temp_bytes": 907736 + } + ], + "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": 2.1513500014407327, + "p10_ms": 1.8285300000570714, + "p90_ms": 4.049530001429958, + "min_ms": 1.6002000011212658, + "max_ms": 13.159000001905952, + "mean_ms": 2.715547499983586 + }, + "speedup_vs_control": { + "ratio": 1.0, + "ci90_low": 0.9792813009410695, + "ci90_high": 1.020824725604644, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 1.0, + "p10": 1.0, + "p90": 1.0 + }, + "compile": { + "lower_s": 5.009423600000446, + "compile_s": 6.102138500002184, + "first_call_s": 0.003063699998165248, + "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": 2703360, + "max_containing_size_proof": null + }, + "warm_ms": [ + 3.7468000009539537, + 2.0291000000725035, + 1.8127999974240083 + ], + "per_call_ms": [ + 2.623799999128096, + 1.758700000209501, + 1.7027000030793715, + 1.6902000024856534, + 1.7613000018172897, + 1.6335000000253785, + 1.970400000573136, + 1.7581000029167626, + 1.7695000024104957, + 1.7740000002959277, + 1.6775000003690366, + 1.6527999978279695, + 1.6491999995196238, + 1.7857999991974793, + 1.6002000011212658, + 1.7909000016516075, + 1.8016999965766445, + 1.7637999990256503, + 1.6273000001092441, + 1.8219000012322795, + 1.881100000900915, + 2.5284999974246603, + 1.670199999352917, + 1.965899999049725, + 2.163100001780549, + 1.9683999998960644, + 1.906600002257619, + 1.9988999993074685, + 1.7946000007214025, + 1.7668000000412576, + 1.8939000001410022, + 2.002500001253793, + 1.88700000217068, + 1.8132000004698057, + 2.0254000010027084, + 1.9109999993816018, + 1.819099998101592, + 1.8161000007239636, + 1.7671999994490761, + 1.8496999982744455, + 1.854900001490023, + 1.901199997519143, + 1.8103000002156477, + 1.7842999986896757, + 1.8697999985306524, + 1.8005999991146382, + 1.8806999978551175, + 1.8697000014071818, + 1.8124999987776391, + 1.7685999991954304, + 2.113300000928575, + 1.714199999696575, + 1.756300000124611, + 2.5002000002132263, + 1.8393999998806976, + 1.9183000003977213, + 1.8302999997104052, + 1.8944000003102701, + 1.7684000013105106, + 1.8624000003910623, + 1.8315000015718397, + 1.986600000236649, + 1.8464000022504479, + 2.2546000000147615, + 1.7918000012286939, + 1.828899999964051, + 1.8207000030088238, + 1.945300002262229, + 1.8511000016587786, + 1.8922000017482787, + 1.8734999976004474, + 2.7028999975300394, + 1.8840000011550728, + 1.8202999999630265, + 1.8445000023348257, + 2.2422000001824927, + 2.212600000348175, + 1.8396000014035963, + 1.8218000004708301, + 1.78089999826625, + 3.202899999450892, + 2.9576000015367754, + 3.0459000008704606, + 6.872400001157075, + 5.2080999994359445, + 2.046699999482371, + 3.3926999967661686, + 3.1427000030817, + 3.0784000009589363, + 2.071899998554727, + 1.993999998376239, + 2.907099998992635, + 2.4723999995330814, + 3.0468999975710176, + 3.2008999987738207, + 3.097200002230238, + 2.1324000008462463, + 2.8525999987323303, + 2.328200000192737, + 3.0637999989266973, + 3.8238000015553553, + 5.0645000010263175, + 3.6331000010250136, + 3.512600000249222, + 4.121600002690684, + 2.54779999886523, + 3.811499998846557, + 2.5539999987813644, + 3.565600000001723, + 3.775699999096105, + 2.5836999993771315, + 2.798499997879844, + 2.3350999981630594, + 2.3159000011219177, + 2.561599998443853, + 2.4060000032477546, + 2.8334000016911887, + 2.3870999975770246, + 2.274099999340251, + 2.2439999993366655, + 2.128600001015002, + 2.133599999069702, + 2.371300000959309, + 2.15329999991809, + 2.3478999974031467, + 2.588100000139093, + 2.62759999895934, + 2.727200000663288, + 2.2159000000101514, + 2.122199999575969, + 2.0930000027874485, + 2.127300002030097, + 2.6848999987123534, + 2.2855999995954335, + 3.006999999342952, + 2.1549999983108137, + 2.0810999994864687, + 2.205199998570606, + 2.2189000010257587, + 2.22129999747267, + 2.270100001624087, + 2.2379000001819804, + 2.367100001720246, + 2.2847999971418176, + 3.0900999990990385, + 2.9558000023826025, + 2.0994000005885027, + 2.1516000015253667, + 2.427699997497257, + 2.0237999997334555, + 2.0158999977866188, + 2.198799997131573, + 2.0331000014266465, + 2.0791999995708466, + 2.019200001086574, + 2.026300000579795, + 2.1388000022852793, + 2.6287000000593252, + 2.878999999666121, + 2.9345000002649613, + 2.379999998083804, + 2.0674999977927655, + 2.04459999804385, + 2.0022999997308943, + 2.958000000944594, + 2.400499997747829, + 3.111899997747969, + 2.122800000506686, + 2.013100001931889, + 2.0232999995641876, + 2.0675000014307443, + 2.047800000582356, + 2.3772999993525445, + 1.9958000011683907, + 2.091199999995297, + 2.0304999998188578, + 1.978899999812711, + 2.394099999946775, + 2.023900000494905, + 2.0129000004089903, + 1.9802999995590653, + 2.1035999998275656, + 1.9847999974444974, + 1.995599999645492, + 2.6495000020076986, + 2.0578000003297348, + 2.646200002345722, + 2.2308000006887596, + 2.0722999979625456, + 2.5553999985277187, + 1.8184000000474043, + 2.1866999995836522, + 1.9147000020893756, + 2.07849999787868, + 1.9097000003966969, + 1.825200000894256, + 1.981499997782521, + 2.6221000007353723, + 2.870100001018727, + 1.9967999978689477, + 2.347999998164596, + 1.984999998967396, + 2.62779999684426, + 1.8913999992946628, + 1.995599999645492, + 2.45349999750033, + 1.9117000010737684, + 2.036599998973543, + 1.9366000014997553, + 1.9616999998106621, + 2.439200001390418, + 1.9111000001430511, + 2.1028000010119285, + 1.9998999996460043, + 1.9302000000607222, + 1.981800000066869, + 1.8906000004790258, + 1.961099998879945, + 1.9011000003956724, + 2.0042000032844953, + 4.0687000000616536, + 3.5396000021137297, + 2.8945000012754463, + 3.737400002137292, + 10.399999999208376, + 3.892599997925572, + 4.305400001612725, + 4.491700001381105, + 4.2954999989888165, + 4.311000000598142, + 6.111899998359149, + 5.060200001025805, + 4.259099998307647, + 4.955200001859339, + 4.217499998048879, + 5.2187000001140404, + 3.219300000637304, + 3.1808000021555927, + 3.6624999993364327, + 3.8195999986783136, + 7.558299999800511, + 3.7688000011257827, + 5.6863999998313375, + 6.911599997692974, + 7.600699998874916, + 7.724799997959053, + 5.021799999667564, + 5.879800002730917, + 6.3861999988148455, + 5.939300001045922, + 4.944399999658344, + 6.2409999991359655, + 6.4468999989912845, + 11.69849999860162, + 8.23600000148872, + 9.402300001966069, + 11.284100000921171, + 6.936300000234041, + 9.116399996855762, + 7.080100000166567, + 7.014400001935428, + 13.159000001905952, + 4.047400001581991, + 3.7308999999368098, + 3.334299999551149, + 3.7915000029897783, + 3.6817999971390236, + 3.1486000007134862, + 3.5260000004200265, + 3.5059000001638196, + 3.3932000005734153, + 4.2338000021118205, + 4.0791999999783, + 3.5451000003376976, + 2.581200002168771, + 10.8007999988331, + 2.9952000004414003, + 2.4158999985957053, + 2.757899997959612, + 3.760400002647657, + 2.173400000174297, + 2.3143000034906436, + 3.1851999992795754, + 2.2160000007716008, + 2.748399998381501, + 2.214199997979449, + 2.3833999985072296, + 2.042500000243308, + 2.1677000004274305, + 3.0651999986730516, + 2.5439999990339857, + 2.1774999986519106, + 2.0791999995708466, + 2.118600001267623, + 2.1310999982233625, + 3.1137000005401205, + 2.145499998732703, + 2.33979999757139, + 2.1827999989909586, + 2.0671999991463963, + 1.9791000013356097, + 2.438600000459701, + 1.9594000004872214, + 2.045400000497466, + 2.2076999994169455, + 2.3665000007895287, + 2.099699999234872, + 2.086500000586966, + 2.0041999996465165, + 2.4339999981748406, + 2.009299998462666, + 2.529299999878276, + 2.051699997537071, + 2.013299999816809, + 2.852100002201041, + 2.9577999994216952, + 2.1864999980607536, + 2.1636999990732875, + 1.9924999978684355, + 1.9912999996449798, + 2.090399997541681, + 2.2181000022101216, + 2.3010000004433095, + 3.2874999997147825, + 2.2066999990784097, + 2.0876999988104217, + 1.9974000024376437, + 2.0103000024391804, + 2.0068000012543052, + 2.969599998323247, + 2.129399999830639, + 2.1070000002509914, + 2.1087999994051643, + 2.1487000012712087, + 2.0396999971126206, + 2.1741000018664636, + 2.1366999972087797, + 2.1043999986432027, + 2.0418000021891203, + 2.752100001089275, + 2.593100001831772, + 2.084599997033365, + 2.169700001104502, + 2.0389000019349623, + 1.9825000017590355, + 2.0160999993095174, + 2.18719999975292, + 2.5045000002137385, + 2.141900000424357, + 2.750499999820022, + 2.1668999979738146, + 2.151100001356099, + 2.080099999147933, + 2.106899999489542, + 2.28649999917252, + 2.238599998236168, + 2.22829999984242, + 2.0847999985562637, + 2.0557999996526632, + 2.1591999975498766, + 2.007999999477761, + 2.3010000004433095, + 2.426999999443069, + 2.137900002708193, + 2.0591000029526185, + 2.233499999420019, + 2.428100000543054, + 2.171000000089407, + 1.9753000015043654, + 2.102099999319762, + 1.9745999998121988, + 2.038499998889165, + 2.1696000003430527, + 2.170699997805059, + 2.1525999982259236, + 1.986600000236649, + 2.140000000508735, + 2.498300000297604, + 4.006999999546679, + 2.76780000058352, + 2.0022999997308943, + 2.016500002355315, + 1.9210000027669594, + 1.9322999978612643, + 1.955799998540897, + 2.0029000006616116, + 2.425599999696715, + 2.4594999995315447, + 2.0307000013417564, + 2.0206000008329283, + 1.9241000009060372, + 2.040899998974055, + 1.9415000024309848, + 2.141600001777988, + 2.041899999312591, + 1.9658000019262545, + 1.9947999971918762, + 1.9214999992982484, + 1.9151999986206647, + 1.9060000013269018 + ], + "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 + } + } + }, + "mcs18": { + "config": { + "name": "mcs18", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 18, + "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": 18, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 2.2298500007309485, + "p10_ms": 1.9577399991248967, + "p90_ms": 6.363170000258836, + "min_ms": 1.7606000001251232, + "max_ms": 16.719500003091525, + "mean_ms": 3.173188000037044 + }, + "speedup_vs_control": { + "ratio": 0.9647958386149367, + "ci90_low": 0.9382644623531707, + "ci90_high": 0.9858998839644482, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9455605532282982, + "p10": 0.8194738965342794, + "p90": 1.0412337479426526 + }, + "compile": { + "lower_s": 4.294247300000279, + "compile_s": 7.218237199998839, + "first_call_s": 0.0033039000009011943, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [] + ], + "flops": 2933102.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 904024, + "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": null + }, + "warm_ms": [ + 2.2556999974767677, + 2.200700000685174, + 1.872900000307709 + ], + "per_call_ms": [ + 1.8801000005623791, + 1.827600000979146, + 1.850399999966612, + 2.539900000556372, + 1.9114999995508697, + 2.2140000000945292, + 1.8230000023322646, + 1.7924999992828816, + 1.844300000811927, + 1.8928999998024665, + 2.565299997513648, + 1.9632000003184658, + 2.0304999998188578, + 2.0265000021026935, + 1.9677999989653472, + 1.9148999999742955, + 1.811699999962002, + 1.8903000018326566, + 1.9577999992179684, + 1.9584999972721562, + 1.909000002342509, + 2.1371999973780476, + 1.9294000012450852, + 2.5979999991250224, + 2.0270000022719614, + 1.9170999985362869, + 1.879300001746742, + 2.0034000008308794, + 2.041399999143323, + 2.0422999987204093, + 1.8871000029321294, + 2.368199999182252, + 1.9453999993856996, + 1.8057000015687663, + 2.1711000008508563, + 1.8810000001394656, + 1.8744000008155126, + 1.838699998188531, + 2.004400001169415, + 1.9673999995575286, + 1.9277999999758322, + 2.272699999593897, + 2.324700002645841, + 1.8850000014936086, + 1.8772999974316917, + 1.772199997503776, + 1.857499999459833, + 1.7606000001251232, + 1.797099997929763, + 2.013700002862606, + 2.5514000008115545, + 1.8130999997083563, + 2.566299997852184, + 1.9252000020060223, + 1.8479000027582515, + 2.542199999879813, + 2.2933000000193715, + 2.1006999995734077, + 2.197499998146668, + 2.3366999994323123, + 1.9653999988804571, + 1.9928000001527835, + 2.3437000018020626, + 2.1717000017815735, + 2.0819000019400846, + 2.0317999988037627, + 2.2137999985716306, + 1.9192999970982783, + 2.0222000021021813, + 2.766199999314267, + 2.14849999974831, + 2.162199998565484, + 1.9853999983752146, + 1.9085000021732412, + 1.835499999288004, + 2.450600000884151, + 1.8707999988691881, + 1.9963999984611291, + 1.8768000009004027, + 1.976300001842901, + 3.134200000204146, + 2.7648000032058917, + 6.217100002686493, + 2.814600000419887, + 2.3414999996020924, + 2.235899999504909, + 2.228500001365319, + 2.121200002875412, + 3.002299999934621, + 2.1735000009357464, + 3.341700001328718, + 2.866099999664584, + 2.556299998104805, + 8.07150000036927, + 3.89069999800995, + 2.785999997286126, + 2.378000001044711, + 3.2550999967497773, + 2.15829999797279, + 2.2860999997647014, + 2.2343999989971053, + 2.1378000019467436, + 2.298700001119869, + 13.110299998515984, + 3.653400002804119, + 2.9900000008638017, + 2.9510000022128224, + 3.0595999996876344, + 3.485299999738345, + 3.531700000166893, + 3.4271000004082453, + 2.7979000005871058, + 7.98429999849759, + 12.291700000787387, + 4.088899997441331, + 4.038800001580967, + 3.945299999031704, + 4.40589999925578, + 7.135799998650327, + 4.346900001110043, + 2.308799997990718, + 2.1900000028836075, + 2.128600001015002, + 2.1273999991535675, + 2.090999998472398, + 2.1956000018690247, + 2.3021000015432946, + 2.392300000792602, + 2.360999998927582, + 2.2186000023793895, + 2.4110000013024546, + 3.4482999981264584, + 3.3456000019214116, + 2.4415999978373293, + 3.763000000617467, + 2.770400002191309, + 3.2973000015772413, + 3.698900000017602, + 2.322299998922972, + 2.276399998663692, + 2.1582000008493196, + 2.183699998568045, + 2.30109999756678, + 2.1716999981435947, + 2.101799997035414, + 2.0571999993990175, + 2.1030999996582977, + 2.053399999567773, + 2.0153000004938804, + 2.9758999990008306, + 2.330300001631258, + 2.1304000001691747, + 2.132599998731166, + 2.080200003547361, + 2.0770999981323257, + 2.0598000010068063, + 2.049400001851609, + 2.500099999451777, + 2.1420000011858065, + 2.072200000839075, + 2.2323000011965632, + 2.2030000000086147, + 2.244700001028832, + 2.118500000506174, + 1.9900000006600749, + 1.9819999979517888, + 2.076200002193218, + 2.0542999991448596, + 2.040600000327686, + 2.187400001275819, + 2.9685000008612406, + 2.039099999819882, + 2.0215999975334853, + 2.199599999585189, + 2.0953999992343597, + 2.141900000424357, + 2.1477999980561435, + 2.1415000010165386, + 2.1015000020270236, + 2.060699996945914, + 2.2491000017907936, + 2.112999998644227, + 2.0722999979625456, + 2.094899999065092, + 2.1450999993248843, + 2.188300000852905, + 2.196199999161763, + 2.0948000019416213, + 2.099500001349952, + 2.2471999982371926, + 2.184000000852393, + 2.4231999996118248, + 2.3738999989291187, + 2.2088000005169306, + 2.0100000001548324, + 1.944699997693533, + 2.0254000010027084, + 1.963499998964835, + 1.978100000997074, + 2.0029000006616116, + 2.1267000010993797, + 2.122199999575969, + 2.6099999995494727, + 2.089599998726044, + 1.9461000010778662, + 2.5124000021605752, + 1.9642000006570015, + 2.635000000736909, + 2.282499997818377, + 2.1048999988124706, + 2.088900000671856, + 1.9571999982872512, + 2.173599998059217, + 2.817799999320414, + 3.1197999996948056, + 3.6503000010270625, + 3.585000002203742, + 3.528500001266366, + 8.87680000232649, + 3.784699998504948, + 2.517400000215275, + 4.179899999144254, + 3.3344000003125984, + 2.910900002461858, + 16.719500003091525, + 4.072700001415797, + 3.8260000001173466, + 4.451599997992162, + 3.5671000005095266, + 5.898300001717871, + 3.9742999979353044, + 3.899300001648953, + 4.1423999973631, + 4.074099997524172, + 3.7599999996018596, + 7.195099999080412, + 6.7579999995359685, + 4.01380000039353, + 4.350699997303309, + 4.204200002277503, + 8.146899999701418, + 13.723699998081429, + 16.245899998466484, + 16.501500002050307, + 15.341599999374012, + 7.113499999832129, + 6.177799998113187, + 6.485300000349525, + 5.7613999997556675, + 6.283800001256168, + 5.899800002225675, + 7.707000000664266, + 9.33209999857354, + 6.939500002772547, + 6.618700001126854, + 8.127599998260848, + 7.6502000010805205, + 8.937399998103501, + 6.688000001304317, + 6.6756000014720485, + 6.752299999789102, + 7.730000001174631, + 7.393399999273242, + 6.884800000989344, + 8.70010000289767, + 6.504099997982848, + 11.689099999784958, + 7.364299999608193, + 5.580799999734154, + 4.066199999215314, + 7.894599999417551, + 8.97149999946123, + 7.268700002896367, + 6.349600000248756, + 8.387600002606632, + 9.908299998642178, + 10.317300002498087, + 9.238300001015887, + 5.91829999757465, + 5.406200001743855, + 2.1645000015269034, + 2.2177999999257736, + 2.3338999999396037, + 2.190600000176346, + 3.164400000969181, + 2.6633999987097923, + 2.231200000096578, + 2.1761999996670056, + 2.3065999994287267, + 2.196399997046683, + 2.135499998985324, + 2.968400000099791, + 2.938400000857655, + 2.063699997961521, + 3.332700001919875, + 2.591500000562519, + 2.51149999894551, + 2.320499999768799, + 3.0962000018917024, + 2.246799998829374, + 2.081700000417186, + 2.258500000607455, + 2.0636000008380506, + 2.050700000836514, + 2.060999999230262, + 1.9983999991382007, + 2.0915999994031154, + 2.001900000323076, + 2.9088000010233372, + 2.11719999788329, + 2.1540000016102567, + 2.2602000026381575, + 1.9926999993913341, + 2.0088999990548473, + 2.015000001847511, + 2.088299999741139, + 2.4419000001216773, + 2.0067999976163264, + 2.0031999993079808, + 2.458499999193009, + 2.197000001615379, + 2.9130999973858707, + 2.0155999991402496, + 2.7325999981258065, + 2.1089000001666136, + 2.2065999983169604, + 1.9528000011632685, + 1.9730999993043952, + 2.1809999998367857, + 2.087500000925502, + 2.375400003074901, + 2.2371000013663433, + 2.110900000843685, + 2.127299998392118, + 1.970400000573136, + 2.7627999988908414, + 2.0598000010068063, + 2.805100000841776, + 1.9811000020126812, + 2.072399998723995, + 2.0521000005828682, + 2.35650000104215, + 2.360499998758314, + 3.6070999994990416, + 2.9719000012846664, + 2.1049000024504494, + 2.1067000016046222, + 2.032700002018828, + 2.9966000001877546, + 2.248400000098627, + 2.1315999983926304, + 3.228300000046147, + 3.067400000873022, + 2.1821999980602413, + 3.4677000003284775, + 2.3088999987521674, + 2.2950999991735443, + 2.3271999998542015, + 2.9847000005247537, + 2.198300000600284, + 2.357499997742707, + 2.723399997194065, + 2.451399999699788, + 3.1598000023222994, + 3.0583000007027294, + 2.4876000024960376, + 3.094800002145348, + 2.2427000003517605, + 3.096599997661542, + 3.1082000023161527, + 3.28339999759919, + 2.214500000263797, + 2.6574000003165565, + 2.466699999786215, + 2.3712000001978595, + 2.209500002209097, + 2.197500001784647, + 2.205200002208585, + 2.096000000165077, + 2.1244999988994095, + 2.3148000000219326, + 2.351399998588022, + 2.1896999969612807, + 2.131999997800449, + 2.149999996618135, + 1.9872999982908368, + 2.2233000017877202, + 2.1013999976275954, + 2.13630000143894, + 2.0946000004187226, + 2.0566999992297497, + 2.0487000001594424, + 2.084399999148445, + 2.0467000031203497, + 2.4272999980894383, + 2.144800000678515, + 2.4631999986013398, + 2.0791999995708466, + 2.0072999977855943, + 2.0504999993136153 + ], + "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 + } + } + }, + "mcs20": { + "config": { + "name": "mcs20", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 20, + "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": 20, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 2.2690500009048264, + "p10_ms": 1.9327199999679578, + "p90_ms": 6.129170000713203, + "min_ms": 1.7254999984288588, + "max_ms": 25.006799998664064, + "mean_ms": 3.297485750008491 + }, + "speedup_vs_control": { + "ratio": 0.9481280714760986, + "ci90_low": 0.9228438819167644, + "ci90_high": 0.9672158182516366, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9276502560539513, + "p10": 0.638177558149313, + "p90": 1.065798133965065 + }, + "compile": { + "lower_s": 4.831446299998788, + "compile_s": 8.317399899999145, + "first_call_s": 0.003169999999954598, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [] + ], + "flops": 3017410.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 905240, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1892352, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.171500000258675, + 1.9863000015902799, + 1.9971000001532957 + ], + "per_call_ms": [ + 2.063399999315152, + 1.8827999992936384, + 1.9114999995508697, + 2.10519999745884, + 1.8053999992844183, + 1.9212000006518792, + 2.0041999996465165, + 1.8469999995431863, + 1.893799999379553, + 1.960900000995025, + 2.1311000018613413, + 1.9339999998919666, + 1.86069999836036, + 1.9750999999814667, + 1.8653000006452203, + 1.8482000014046207, + 1.8396999985270668, + 1.9022000014956575, + 1.832099998864578, + 2.6307000007363968, + 1.9941999998991378, + 1.9490000013320241, + 1.8909999998868443, + 1.9123000020044856, + 2.0727999981318135, + 1.8860999989556149, + 1.861000000644708, + 1.8311000021640211, + 1.759999999194406, + 1.9690000008267816, + 1.837700001487974, + 1.7254999984288588, + 1.7824000024120323, + 1.981800000066869, + 2.0236000018485356, + 2.1214999978838023, + 1.894099998025922, + 1.8331999999645632, + 1.8280000003869645, + 1.8722000022535212, + 2.135999999154592, + 1.9658000019262545, + 1.9028999995498452, + 1.962999998795567, + 1.9027000016649254, + 1.9109000022581313, + 1.9119999997201376, + 1.8699999964155722, + 1.7784000010578893, + 1.8435999991197605, + 1.8356000000494532, + 2.026300000579795, + 1.975999999558553, + 1.7836999977589585, + 1.7768999969121069, + 1.7659999975876417, + 1.8273000023327768, + 1.8436999998812098, + 1.7932000009750482, + 1.9738999981200323, + 2.802800001518335, + 2.0487000001594424, + 2.157999999326421, + 2.019399998971494, + 1.9021000007342082, + 2.050699997198535, + 1.9682000020111445, + 2.1377000011852942, + 1.9549999997252598, + 2.0060999995621387, + 1.987599996937206, + 2.4756000020715874, + 2.9789999971399084, + 2.7055999998992775, + 2.6609000015014317, + 2.345299999433337, + 2.700699998968048, + 2.715800001169555, + 3.6484000011114404, + 2.8289000001677778, + 2.1965999985695817, + 2.2610000014537945, + 2.1938999998383224, + 2.231200000096578, + 2.11699999999837, + 2.131000001099892, + 2.5495000008959323, + 2.2718000000168104, + 2.0760000006703194, + 2.2131999976409134, + 2.1503999996639322, + 2.0917000001645647, + 2.0976999985578004, + 2.1517999994102865, + 2.198900001531001, + 2.214399999502348, + 2.404200000455603, + 2.3425999970640987, + 2.67580000218004, + 2.222400002210634, + 18.328499998460757, + 7.40619999851333, + 4.624299999704817, + 4.288000000087777, + 6.032099998265039, + 4.431800000020303, + 4.340899999078829, + 4.182699998636963, + 3.9407000003848225, + 3.7455999990925193, + 3.668400000606198, + 4.121599999052705, + 4.446499999176012, + 3.6089999994146638, + 3.719300002558157, + 2.8203000001667533, + 3.6663999999291264, + 14.721999999892432, + 2.587499999208376, + 3.579399999580346, + 2.449199997499818, + 2.5328000010631513, + 2.4776999998721294, + 2.4142999973264523, + 2.29609999951208, + 2.4387999983446207, + 2.3731000001134817, + 2.82599999991362, + 2.486299999873154, + 2.6319999997213017, + 2.621800002089003, + 2.6288000008207746, + 2.538600001571467, + 2.6723000009951647, + 3.698100001201965, + 2.781199997116346, + 2.505399999790825, + 3.428600000916049, + 2.434900001389906, + 2.8965999990759883, + 2.166999998735264, + 2.0182000007480383, + 2.076200002193218, + 2.4704999996174593, + 2.109500001097331, + 2.1350999995775055, + 2.135200000338955, + 2.2383999967132695, + 2.059999998891726, + 2.070300000923453, + 2.22849999772734, + 2.181799998652423, + 2.163299999665469, + 1.9829999982903246, + 2.092499998980202, + 2.029699997365242, + 2.062600000499515, + 2.092299997457303, + 2.0511000002443325, + 2.0721999972010963, + 2.1629000002576504, + 2.485299999534618, + 2.115900002536364, + 2.1179000032134354, + 2.2196999998413958, + 2.151100001356099, + 2.0057999972777907, + 2.143199999409262, + 2.4284999999508727, + 3.157600000122329, + 2.9068000003462657, + 2.193799999076873, + 2.135200000338955, + 2.2046000012778677, + 2.1437000032165088, + 2.887000002374407, + 2.187400001275819, + 2.322299998922972, + 2.1409000000858214, + 2.976800002215896, + 2.967000000353437, + 2.2452000011981, + 2.2559999997611158, + 2.2190999989106786, + 2.9132999989087693, + 2.2444999995059334, + 3.08489999952144, + 3.058400001464179, + 2.2811000017100014, + 2.9017000015301164, + 2.807199998642318, + 2.3379000012937468, + 2.3193000015453435, + 2.3187000006146263, + 2.118199998221826, + 2.2022000011929777, + 2.135500002623303, + 2.193600001191953, + 2.348800000618212, + 2.3685999985900708, + 2.201800001785159, + 2.316800000699004, + 2.167599999665981, + 2.1997000003466383, + 2.149500000086846, + 2.0985000010114163, + 2.263200000015786, + 2.1463000011863187, + 2.115399998729117, + 2.0489999988058116, + 2.197300000261748, + 2.352499999688007, + 2.2320999996736646, + 2.2623000004386995, + 2.201499999500811, + 2.042800002527656, + 2.0594999987224583, + 2.0401999972818885, + 2.2360000002663583, + 2.874600002542138, + 7.793999997375067, + 7.499100000131875, + 14.358399999764515, + 9.273600000597071, + 9.085800000320887, + 5.403800001658965, + 8.033999998588115, + 8.324899998115143, + 25.006799998664064, + 17.440600000554696, + 22.025800000847084, + 12.937499999679858, + 6.9922000002407, + 18.895000001066364, + 5.549099998461315, + 7.474599999113707, + 7.200899999588728, + 6.078700000216486, + 5.058799997641472, + 5.413200000475626, + 5.672899998899084, + 6.830899998021778, + 6.3575999993190635, + 9.379300001455704, + 6.3563000003341585, + 6.301299999904586, + 6.10459999734303, + 6.441800000175135, + 7.015200000751065, + 9.30010000229231, + 4.387900000438094, + 3.436599999986356, + 3.7855000009585638, + 5.0808999985747505, + 4.59440000122413, + 4.673700001148973, + 7.384000000456581, + 5.419199998868862, + 6.3649999974586535, + 5.618300001515308, + 6.12610000098357, + 7.322900000872323, + 12.172999999165768, + 3.6665000006905757, + 8.544500000425614, + 5.842200000188313, + 5.3622999985236675, + 4.961800001183292, + 5.3144000012252945, + 6.553300001542084, + 4.854800001339754, + 7.09610000194516, + 12.610600002517458, + 7.467799998266855, + 6.156799998279894, + 3.9728000010654796, + 7.12299999941024, + 8.255900000222027, + 6.618200000957586, + 7.196499998826766, + 5.495500001416076, + 3.582299999834504, + 4.051799998705974, + 3.9201999970828183, + 4.414600000018254, + 3.7712999983341433, + 4.099599998880876, + 4.315800000767922, + 3.3871000014187302, + 2.9714000011153985, + 2.443900000798749, + 2.344100001209881, + 2.638400001160335, + 2.6686999990488403, + 2.4584000020695385, + 2.5999000026786234, + 3.8372999988496304, + 2.9393000004347414, + 2.907400001276983, + 2.771499999653315, + 2.1309000003384426, + 2.4266000000352506, + 2.288200001203222, + 2.343000000109896, + 3.035400000953814, + 2.1503000025404617, + 2.038300001004245, + 2.4546999993617646, + 2.54040000072564, + 2.3094999996828847, + 2.369800000451505, + 3.2526000031793956, + 2.2458999992522877, + 2.283100002387073, + 2.216599998064339, + 2.172100001189392, + 2.3285999996005557, + 2.5338999985251576, + 2.4365999997826293, + 2.4121999995259102, + 2.2539000019605737, + 2.015199999732431, + 2.8531999996630475, + 2.057099998637568, + 1.9783999996434432, + 1.9928000001527835, + 2.052600000752136, + 2.131799999915529, + 2.013299999816809, + 2.056299999821931, + 2.116899999236921, + 2.1250000027066562, + 2.8982000003452413, + 2.269900000101188, + 2.2683999995933846, + 2.133899997716071, + 2.0698999978776556, + 2.9481000019586645, + 2.1873000005143695, + 2.3295999999390915, + 2.53800000064075, + 2.256299998407485, + 2.2423999980674125, + 2.401300000201445, + 2.296799997566268, + 2.1274000027915463, + 3.017399998498149, + 2.2613000001001637, + 2.1146999970369507, + 2.970999998069601, + 2.0848000021942426, + 2.0334000000730157, + 2.0753000026161317, + 2.131000001099892, + 2.1325000016076956, + 2.84299999839277, + 2.205200002208585, + 2.300799998920411, + 2.1040999999968335, + 2.3105000000214204, + 2.2190999989106786, + 2.3658999998588115, + 2.207599998655496, + 2.237199998489814, + 2.2567000014532823, + 2.133099998900434, + 2.28169999900274, + 2.098400000249967, + 2.5296999992860947, + 2.70999999702326, + 2.3543000024801586, + 2.2542999977304135, + 2.9848999984096736, + 3.099000001384411, + 3.1001999996078666, + 2.3938000013004057, + 2.1257999978843145, + 2.1989999986544717, + 2.6006999978562817, + 3.1111000025703106, + 2.1778000009362586, + 2.308999999513617, + 2.133699999831151, + 2.0922000003338326, + 2.0545000006677583, + 2.286299997649621, + 2.0581999997375533, + 2.1109999979671557, + 2.089100002194755, + 2.0528999993985053, + 2.2141000008559786, + 2.21130000136327, + 2.2697000022162683, + 2.104200000758283, + 2.11719999788329, + 2.252100002806401, + 2.043300002696924, + 2.085700001771329, + 2.256299998407485, + 2.0933000014338177 + ], + "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 + } + } + }, + "mcs24": { + "config": { + "name": "mcs24", + "block": "max_containing_size_headroom", + "extent": null, + "scale": 0.2, + "precision": 0.001, + "max_containing_size": 24, + "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": 24, + "neighbor_degree": 1, + "step0_route": "library default (structured)" + }, + "stats": { + "n": 400, + "median_ms": 2.392300000792602, + "p10_ms": 2.0043699976667995, + "p90_ms": 5.001820000688896, + "min_ms": 1.8178999998781364, + "max_ms": 16.05619999827468, + "mean_ms": 3.0438304998824606 + }, + "speedup_vs_control": { + "ratio": 0.8992810269313886, + "ci90_low": 0.878696659875835, + "ci90_high": 0.918558430150147, + "bootstrap_samples": 2000 + }, + "paired_round_speedup": { + "median": 0.9023979482769156, + "p10": 0.8109415485111172, + "p90": 1.036599467592176 + }, + "compile": { + "lower_s": 4.6593486999991, + "compile_s": 6.733799100002216, + "first_call_s": 0.003453999997873325, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [] + ], + "flops": 3195236.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 907736, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 10272768, + "max_containing_size_proof": null + }, + "warm_ms": [ + 2.0416000006662216, + 2.0473999975365587, + 2.2153999998408835 + ], + "per_call_ms": [ + 1.972800000658026, + 1.9912999996449798, + 2.3718999982520472, + 1.9460999974398874, + 2.6182000001426786, + 1.8636999993759673, + 2.7779000010923482, + 2.0719999993161764, + 2.2486000016215257, + 1.8829000000550877, + 1.8178999998781364, + 1.8928999998024665, + 2.0001999982923735, + 2.0121999987168238, + 2.0661999988078605, + 1.8619000002217945, + 2.3178999981610104, + 2.353799998672912, + 2.0391999969433527, + 1.8658000008144882, + 2.035600002272986, + 2.07849999787868, + 2.330499999516178, + 1.9750999999814667, + 1.882699998532189, + 2.1202999996603467, + 1.9509000012476463, + 1.9624999986262992, + 1.9381999991310295, + 2.2865999999339692, + 2.009100000577746, + 2.1936999983154237, + 1.9729999985429458, + 2.0823999984713737, + 1.9241000009060372, + 1.9017000013263896, + 1.9221999973524362, + 2.718499999900814, + 1.991599998291349, + 2.1706000006815884, + 2.004099998885067, + 1.9912999996449798, + 1.9377000025997404, + 1.977799998712726, + 1.951900001586182, + 1.9983999991382007, + 2.084399999148445, + 2.1944000000075903, + 2.254700000776211, + 2.010099997278303, + 1.9572999990487006, + 1.9809000004897825, + 1.9730999993043952, + 1.9274999976914842, + 1.971500001673121, + 1.9147000020893756, + 1.8769999987853225, + 1.8746999994618818, + 1.8858000003092457, + 1.9966999971074983, + 2.021600001171464, + 2.808499997627223, + 2.2213999982341193, + 2.091499998641666, + 2.0440000007511117, + 1.9872000011673663, + 2.0423999994818587, + 1.9560999971872661, + 2.379300000029616, + 2.228800000011688, + 2.0361999995657243, + 2.240099998743972, + 2.1540999987337273, + 1.9156999987899326, + 2.231700000265846, + 2.035900000919355, + 3.2021999977587257, + 1.9572999990487006, + 2.0341999988886528, + 2.419799999188399, + 2.379100002144696, + 2.4054000023170374, + 2.293400000780821, + 2.358400000957772, + 2.107099997374462, + 2.1490999970410485, + 2.4073000022326596, + 6.8619000012404285, + 2.5928000031854026, + 3.306200000224635, + 2.2472000018751714, + 2.3488999977416825, + 3.2162999996216968, + 2.406600000540493, + 2.4879999982658774, + 2.22109999958775, + 2.444500001729466, + 2.330999999685446, + 2.436799997667549, + 2.5348999988636933, + 3.9711999997962266, + 3.8158999996085186, + 3.81070000003092, + 4.145599999901606, + 3.9436000006389804, + 5.19930000155, + 4.16169999880367, + 2.6770000004034955, + 2.627499998197891, + 3.8128999985929113, + 3.7511999980779365, + 3.8952000031713396, + 3.839700002572499, + 3.799799997068476, + 3.857399999105837, + 3.791400002228329, + 3.316600003017811, + 3.7967999996908475, + 5.083000000013271, + 5.248299999948358, + 2.766399997199187, + 3.5133000019413885, + 2.6816999998118263, + 3.315000001748558, + 2.4972999999590684, + 2.44110000130604, + 2.520999998523621, + 2.449000003252877, + 2.480799998011207, + 2.4999999986903276, + 2.7757999996538274, + 2.456099999108119, + 2.556299998104805, + 2.4755999984336086, + 2.510700000129873, + 2.3660999977437314, + 2.3680000012973323, + 2.3190000028989743, + 2.3510999999416526, + 2.3359000006166752, + 2.373000002990011, + 2.4110000013024546, + 2.660400001332164, + 2.6293000009900425, + 2.810199999657925, + 2.6983999996446073, + 2.636900000652531, + 2.5272999992012046, + 2.6371999992989004, + 2.7563000003283378, + 2.5795000001380686, + 2.406799998425413, + 2.4307999992743134, + 2.825300001859432, + 3.326300000480842, + 2.4498999991919845, + 2.893700002459809, + 3.4913000017695595, + 2.272199999424629, + 2.3862999987613875, + 2.3380999991786666, + 2.249199998914264, + 2.22349999967264, + 2.187400001275819, + 2.2193999975570478, + 3.0904000013833866, + 2.509899997676257, + 2.1170999971218407, + 2.513399998861132, + 2.2538000011991244, + 2.1549999983108137, + 2.159600000595674, + 2.314900000783382, + 2.239400000689784, + 3.3158999976876657, + 2.2897999988344964, + 2.191099996707635, + 2.1691999972972553, + 2.362100000027567, + 2.18959999983781, + 2.2986000003584195, + 2.490799997758586, + 2.5343999986944254, + 2.0919000016874634, + 2.1920999970461708, + 2.120699999068165, + 2.225600001111161, + 2.532700000301702, + 2.1868000003451016, + 2.0628000020224135, + 2.135200000338955, + 2.0839999997406267, + 2.0249000008334406, + 2.8566000000864733, + 2.1028000010119285, + 2.054900000075577, + 2.4130999991029967, + 2.130000000761356, + 2.091300000756746, + 2.235899999504909, + 2.294000001711538, + 2.1481000003404915, + 2.0684000010078307, + 2.2152000019559637, + 2.162299999326933, + 2.32260000120732, + 2.117800002451986, + 2.1735000009357464, + 2.4692000006325543, + 2.2071999992476776, + 2.0043999975314364, + 2.1272000012686476, + 2.319200000783894, + 2.381899997999426, + 2.316500002052635, + 2.1914999997534323, + 2.250800000183517, + 2.0124000002397224, + 2.2004999991622753, + 2.1373000017774757, + 3.4448999977030326, + 5.6024000004981644, + 3.4980999989784323, + 3.829500001302222, + 3.4895000026153866, + 4.622300002665725, + 3.7883000004512724, + 4.167900002357783, + 4.952300001605181, + 5.248499997833278, + 4.079400001501199, + 3.9450000003853347, + 5.783299999166047, + 3.482700001768535, + 4.043699998874217, + 2.997200001118472, + 4.6791999993729405, + 4.365400000096997, + 4.683300001488533, + 7.228499998745974, + 4.5136000007914845, + 4.530899997917004, + 5.19450000138022, + 5.405700001574587, + 4.900100000668317, + 6.52540000010049, + 6.4741999995021615, + 4.992800000763964, + 5.350600000383565, + 5.936900000961032, + 4.978799999662442, + 4.543600000033621, + 7.571700003609294, + 16.05619999827468, + 8.332399997016182, + 7.653799999388866, + 7.392900002741953, + 7.908200001111254, + 8.517000002029818, + 8.430199999565957, + 5.441799999971408, + 5.156000002898509, + 14.39820000086911, + 8.571999998821411, + 15.15320000180509, + 9.682399999292102, + 5.582199999480508, + 4.656000000977656, + 5.897999999433523, + 10.402899999462534, + 5.5525999996461906, + 6.495499997981824, + 4.267199998139404, + 5.404299998190254, + 5.804000000352971, + 5.4975000020931475, + 6.0570999994524755, + 6.43090000085067, + 8.39079999786918, + 10.610299999825656, + 2.4345000019820873, + 2.4851999987731688, + 2.9751000001851935, + 3.2705999983591028, + 4.138500000408385, + 4.017100000055507, + 2.6632000008248724, + 2.7021999994758517, + 2.981300000101328, + 2.855200000340119, + 2.4912000008043833, + 2.4814999997033738, + 2.6008999993791804, + 2.5705000007292256, + 2.7678999977069907, + 3.628200000093784, + 2.673399998457171, + 2.3669000001973473, + 2.669699999387376, + 2.444699999614386, + 3.1834000001254026, + 3.305599999293918, + 2.4578000011388212, + 2.7909000018553343, + 2.4185999973269645, + 2.704399998037843, + 2.6022999991255347, + 2.5413000003027264, + 2.3183999983302783, + 2.3306000002776273, + 2.346500001294771, + 2.6266999993822537, + 3.289000000222586, + 2.406799998425413, + 2.202800002123695, + 2.1345999994082376, + 2.1474999994097743, + 2.1342999971238896, + 3.0315000003611203, + 3.008099996804958, + 2.381400001468137, + 2.118500000506174, + 2.0631000006687827, + 2.736700000241399, + 2.616699999634875, + 2.3750999971525744, + 2.122300000337418, + 2.3053000004438218, + 2.2462000015366357, + 2.5144000028376468, + 2.026099999056896, + 2.0716999970318284, + 2.195900000515394, + 2.082300001347903, + 2.970899997308152, + 2.075399999739602, + 2.3995999981707428, + 2.2080000017012935, + 2.114900002197828, + 2.2066999990784097, + 2.3005000002740417, + 3.11860000147135, + 2.3072999974829145, + 2.330799998162547, + 2.2587999992538244, + 2.3017999992589466, + 2.2744999987480696, + 2.3908000002847984, + 2.505399999790825, + 2.24779999916791, + 2.128600001015002, + 3.263300000980962, + 2.276999999594409, + 2.241000001959037, + 2.3080999999365304, + 2.316499998414656, + 3.215299999283161, + 3.8067999994382262, + 2.495100001397077, + 2.8483999994932674, + 2.983899998071138, + 3.5129999996570405, + 3.5016000001633074, + 2.967999997053994, + 2.747099999396596, + 2.926200002548285, + 2.6104999997187406, + 2.414999999018619, + 2.3938000013004057, + 2.4311000015586615, + 2.895000001444714, + 2.4807000008877367, + 2.463299999362789, + 2.2359000031428877, + 2.2731999997631647, + 3.0829999996058177, + 2.360499998758314, + 2.3395999996864703, + 2.33259999731672, + 2.2968000012042467, + 2.3403999985021073, + 2.268199998070486, + 2.106399999320274, + 2.090699999826029, + 2.2197999969648663, + 2.2134999999252614, + 2.3056999998516403, + 2.4268000015581492, + 2.423999998427462, + 2.1546999996644445, + 3.0817999977443833, + 2.1919000027992297, + 2.1914999997534323, + 2.150599997548852, + 2.118500000506174, + 2.173400000174297, + 2.2075000015320256, + 2.2605000012845267, + 2.2773999990022276, + 2.287600000272505 + ], + "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": "mcs18", + "routes": [ + "control", + "mcs18", + "mcs20", + "mcs24" + ], + "batches": [ + 1, + 4, + 16 + ], + "rows": { + "control_vmap1": { + "config": "control", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.458599998135469, + "p10_ms": 2.1538599976338446, + "p90_ms": 3.3680599972285563, + "min_ms": 1.9800000009126961, + "max_ms": 4.8430000024382025, + "mean_ms": 2.6374679999480577 + }, + "median_ms_per_likelihood": 2.458599998135469, + "compile": { + "lower_s": 4.911366600001202, + "compile_s": 6.3334551000007195, + "first_call_s": 0.0030335999981616624, + "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": 2703360, + "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.912000000535045, + "p10_ms": 5.083849997026846, + "p90_ms": 8.173900001565926, + "min_ms": 4.747700000734767, + "max_ms": 16.761200000473764, + "mean_ms": 6.352773000044181 + }, + "median_ms_per_likelihood": 1.4780000001337612, + "compile": { + "lower_s": 5.426662900001247, + "compile_s": 7.735770600000251, + "first_call_s": 0.006503299999167211, + "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": 1892352, + "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": 17.714600000545033, + "p10_ms": 15.260009998382884, + "p90_ms": 22.785829999702404, + "min_ms": 14.060100002097897, + "max_ms": 29.845500001101755, + "mean_ms": 18.480108749990904 + }, + "median_ms_per_likelihood": 1.1071625000340646, + "compile": { + "lower_s": 5.461922000002232, + "compile_s": 6.678659100001823, + "first_call_s": 0.015458900001249276, + "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": 2162688, + "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 + }, + "mcs18_vmap1": { + "config": "mcs18", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.6666499998100335, + "p10_ms": 2.3055400011799065, + "p90_ms": 3.5503700022673006, + "min_ms": 2.0607000005838927, + "max_ms": 6.6173000013804995, + "mean_ms": 2.823844749946147 + }, + "median_ms_per_likelihood": 2.6666499998100335, + "compile": { + "lower_s": 5.006673800002318, + "compile_s": 6.657732499999838, + "first_call_s": 0.002866099999664584, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 2950598.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 904088, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 10465280, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9219807617462413, + "ci90_low": 0.9023022930685445, + "ci90_high": 0.9475818467930676, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs18_vmap4": { + "config": "mcs18", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 6.521800001792144, + "p10_ms": 5.652650001502479, + "p90_ms": 9.073870001157047, + "min_ms": 5.293199999869103, + "max_ms": 13.82749999902444, + "mean_ms": 6.969017250048637 + }, + "median_ms_per_likelihood": 1.630450000448036, + "compile": { + "lower_s": 5.092269699998724, + "compile_s": 7.37837109999964, + "first_call_s": 0.008411999999225372, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 10862882.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3208664, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 42299392, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9064982058496841, + "ci90_low": 0.882944844039733, + "ci90_high": 0.9268632600275265, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs18_vmap16": { + "config": "mcs18", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 19.177800000761636, + "p10_ms": 16.836049999983516, + "p90_ms": 26.03945999944699, + "min_ms": 15.356100000644801, + "max_ms": 57.30979999862029, + "mean_ms": 20.861161500042726 + }, + "median_ms_per_likelihood": 1.1986125000476022, + "compile": { + "lower_s": 4.959746399999858, + "compile_s": 7.240277100001549, + "first_call_s": 0.016584600001806393, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 42523956.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12430488, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 39940096, + "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.9237034487710534, + "ci90_low": 0.8951268148898872, + "ci90_high": 0.9489680783675685, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap1": { + "config": "mcs20", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.6280500005668728, + "p10_ms": 2.301079997778288, + "p90_ms": 3.549919999568375, + "min_ms": 2.041399999143323, + "max_ms": 8.072100001299987, + "mean_ms": 2.7883049999582 + }, + "median_ms_per_likelihood": 2.6280500005668728, + "compile": { + "lower_s": 5.304819799999677, + "compile_s": 8.902885700001207, + "first_call_s": 0.003514500000164844, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3039132.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 905304, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 45006848, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9355225348091348, + "ci90_low": 0.9175222443476189, + "ci90_high": 0.9543752960377412, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap4": { + "config": "mcs20", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 6.45385000098031, + "p10_ms": 5.5569199972524075, + "p90_ms": 8.710709998558743, + "min_ms": 5.16559999960009, + "max_ms": 10.383000000729226, + "mean_ms": 6.806327000094825 + }, + "median_ms_per_likelihood": 1.6134625002450775, + "compile": { + "lower_s": 6.4614026000017475, + "compile_s": 9.108826100000442, + "first_call_s": 0.008231200001318939, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11200138.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3214040, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 34803712, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.9160423622546293, + "ci90_low": 0.8926292054343022, + "ci90_high": 0.9398930442458693, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs20_vmap16": { + "config": "mcs20", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 19.611499999882653, + "p10_ms": 17.144570000527892, + "p90_ms": 25.852559998747896, + "min_ms": 15.623299997969298, + "max_ms": 46.622300000308314, + "mean_ms": 20.726078250008868 + }, + "median_ms_per_likelihood": 1.2257187499926658, + "compile": { + "lower_s": 6.488115399999515, + "compile_s": 11.012196499999845, + "first_call_s": 0.02235119999750168, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 43857436.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12452888, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 55103488, + "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.9032761390332729, + "ci90_low": 0.8812568226128986, + "ci90_high": 0.9323631273122064, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs24_vmap1": { + "config": "mcs24", + "batch": 1, + "stats_per_batch": { + "n": 400, + "median_ms": 2.6604999984556343, + "p10_ms": 2.3769800001900876, + "p90_ms": 3.5279800009448086, + "min_ms": 2.1855000013601966, + "max_ms": 9.73829999929876, + "mean_ms": 2.852804749936695 + }, + "median_ms_per_likelihood": 2.6604999984556343, + "compile": { + "lower_s": 6.026902400000836, + "compile_s": 7.417872499998339, + "first_call_s": 0.003304599998955382, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 1 + ] + ], + "flops": 3226778.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 8, + "temp_size_in_bytes": 907800, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 52301824, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.924112008856469, + "ci90_low": 0.9044074709033827, + "ci90_high": 0.9391292128918096, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs24_vmap4": { + "config": "mcs24", + "batch": 4, + "stats_per_batch": { + "n": 400, + "median_ms": 6.786949999877834, + "p10_ms": 6.058160000611679, + "p90_ms": 8.981100001619781, + "min_ms": 5.570299999817507, + "max_ms": 26.551999999355758, + "mean_ms": 7.241366000089329 + }, + "median_ms_per_likelihood": 1.6967374999694584, + "compile": { + "lower_s": 4.498698200000945, + "compile_s": 9.323924100001022, + "first_call_s": 0.00637769999957527, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 4 + ] + ], + "flops": 11916962.0, + "memory_analysis": { + "argument_size_in_bytes": 160, + "output_size_in_bytes": 32, + "temp_size_in_bytes": 3225304, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 51445760, + "max_containing_size_proof": null + }, + "values_first_batch": [ + 7.743201200876812, + -4.1609527513907665, + 7.657972665309639, + 9.36455094905725 + ], + "speedup_vs_control_same_batch": { + "ratio": 0.8710834764719737, + "ci90_low": 0.8487048760766449, + "ci90_high": 0.8893603351081593, + "bootstrap_samples": 2000 + }, + "max_abs_delta_vs_scalar": 0.0 + }, + "mcs24_vmap16": { + "config": "mcs24", + "batch": 16, + "stats_per_batch": { + "n": 400, + "median_ms": 20.497850000538165, + "p10_ms": 17.834480000965414, + "p90_ms": 26.325629998609656, + "min_ms": 16.814800001156982, + "max_ms": 44.75029999957769, + "mean_ms": 21.57805500001814 + }, + "median_ms_per_likelihood": 1.2811156250336353, + "compile": { + "lower_s": 5.197892599997431, + "compile_s": 9.234506500000862, + "first_call_s": 0.019853899997542612, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 16 + ] + ], + "flops": 46693644.0, + "memory_analysis": { + "argument_size_in_bytes": 640, + "output_size_in_bytes": 128, + "temp_size_in_bytes": 12497752, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 46833664, + "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.8642174667138233, + "ci90_low": 0.8452551560527195, + "ci90_high": 0.8829195953555903, + "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.3038499999092892, + "ray_trace": 0.6859499990241602, + "general_gather": 1.754699998855358, + "route_inputs": 1.0554500004218426, + "containment": 1.4412000000447733 + }, + "ray_trace_ms": 0.382099999114871, + "containment_ms": 0.7552500010206131, + "route_input_materialisation_ms": 0.36950000139768235, + "general_gather_reference_ms": 1.0687499998311978, + "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.1373500001354842, + "containment_share_of_step0": 0.6640436109646509, + "step0_share_of_likelihood": 0.5286680453546911, + "containment_share_of_likelihood": 0.35105863783895297 + }, + "mcs18": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.3054999997402774, + "ray_trace": 0.7002499987720512, + "general_gather": 1.734299999952782, + "route_inputs": 1.0058999996545026, + "containment": 1.4169999994919635 + }, + "ray_trace_ms": 0.39474999903177377, + "containment_ms": 0.7167500007199124, + "route_input_materialisation_ms": 0.3056500008824514, + "general_gather_reference_ms": 1.0340500011807308, + "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.1114999997516861, + "containment_share_of_step0": 0.6448493035357962, + "step0_share_of_likelihood": 0.49846402196889233, + "containment_share_of_likelihood": 0.321434177404292 + }, + "mcs20": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.3044500008400064, + "ray_trace": 0.671600000714534, + "general_gather": 1.6629500005365117, + "route_inputs": 1.0203500005445676, + "containment": 1.4078000021982007 + }, + "ray_trace_ms": 0.36714999987452757, + "containment_ms": 0.7362000014836667, + "route_input_materialisation_ms": 0.34874999983003363, + "general_gather_reference_ms": 0.9913499998219777, + "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.1033500013581943, + "containment_share_of_step0": 0.6672406766460545, + "step0_share_of_likelihood": 0.48626077033040815, + "containment_share_of_likelihood": 0.3244529654216933 + }, + "mcs24": { + "extent": null, + "scale": 0.2, + "step0_rows": 11859, + "step0_triangles": 23283, + "prefix_median_ms": { + "source_centre": 0.317299998641829, + "ray_trace": 0.6735000006301561, + "general_gather": 1.6927500000747386, + "route_inputs": 1.0425500004203059, + "containment": 1.4070500001253095 + }, + "ray_trace_ms": 0.35620000198832713, + "containment_ms": 0.7335499994951533, + "route_input_materialisation_ms": 0.36904999979014974, + "general_gather_reference_ms": 1.0192499994445825, + "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.0897500014834804, + "containment_share_of_step0": 0.6731360389966223, + "step0_share_of_likelihood": 0.45552397321507804, + "containment_share_of_likelihood": 0.3066296029980011 + } + }, + "uncapped_containing_counts": { + "control": { + "prior": { + "n_draws": 200, + "cap": 15, + "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 + ], + "draws_exceeding_cap_per_step": [ + [ + 12 + ], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": -2, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 15, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 2, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 15, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 8, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs18": { + "prior": { + "n_draws": 200, + "cap": 18, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 1, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 18, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 5, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 18, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 11, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs20": { + "prior": { + "n_draws": 200, + "cap": 20, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 3, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 20, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 7, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 20, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 13, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + }, + "mcs24": { + "prior": { + "n_draws": 200, + "cap": 24, + "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": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 7, + "n_draws_exceeding": { + "6": 185, + "8": 117, + "10": 51, + "12": 23, + "15": 1, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 3, + "5": 12, + "7": 68, + "9": 66, + "11": 28, + "13": 16, + "15": 6, + "17": 1 + } + }, + "stream": { + "n_draws": 16, + "cap": 24, + "max_per_step": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 13.0, + 9.0, + 5.0, + 5.0, + 5.0, + 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": 13, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 11, + "n_draws_exceeding": { + "6": 16, + "8": 13, + "10": 3, + "12": 2, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "7": 3, + "9": 10, + "11": 1, + "13": 2 + } + }, + "stress": { + "n_draws": 200, + "cap": 24, + "max_per_step": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "p99_per_step": [ + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0, + 5.0 + ], + "median_per_step": [ + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0, + 3.0 + ], + "max_over_steps": 7, + "draws_exceeding_cap": [], + "draws_exceeding_cap_per_step": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "n_draws_exceeding_cap_per_step": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "headroom_over_steps": 17, + "n_draws_exceeding": { + "6": 1, + "8": 0, + "10": 0, + "12": 0, + "15": 0, + "17": 0, + "18": 0, + "20": 0, + "24": 0 + }, + "histogram_max_over_steps": { + "3": 161, + "5": 38, + "7": 1 + } + } + } + }, + "mcs_headroom": { + "control_max_containing_size": 15, + "rows": { + "control": { + "mcs": 15, + "median_ms": 2.1513500014407327, + "control_over_row": { + "ratio": 1.0, + "ci90_low": 0.9792813009410695, + "ci90_high": 1.020824725604644, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0, + "compile_s": 6.102138500002184, + "compile_ratio_vs_control": 1.0, + "temp_bytes": 901656, + "flops": 2801341.0, + "vmap16_ms_per_likelihood": 1.1071625000340646, + "vmap16_control_over_row": null, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [ + 12 + ], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 1, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 0.0 + }, + "mcs18": { + "mcs": 18, + "median_ms": 2.2298500007309485, + "control_over_row": { + "ratio": 0.9647958386149367, + "ci90_low": 0.9382644623531707, + "ci90_high": 0.9858998839644482, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0364887160330236, + "compile_s": 7.218237199998839, + "compile_ratio_vs_control": 1.1829028790474447, + "temp_bytes": 904024, + "flops": 2933102.0, + "vmap16_ms_per_likelihood": 1.1986125000476022, + "vmap16_control_over_row": { + "ratio": 0.9237034487710534, + "ci90_low": 0.8951268148898872, + "ci90_high": 0.9489680783675685, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 5.577931581727151e-15 + }, + "mcs20": { + "mcs": 20, + "median_ms": 2.2690500009048264, + "control_over_row": { + "ratio": 0.9481280714760986, + "ci90_low": 0.9228438819167644, + "ci90_high": 0.9672158182516366, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.0547098330747071, + "compile_s": 8.317399899999145, + "compile_ratio_vs_control": 1.3630303376424788, + "temp_bytes": 905240, + "flops": 3017410.0, + "vmap16_ms_per_likelihood": 1.2257187499926658, + "vmap16_control_over_row": { + "ratio": 0.9032761390332729, + "ci90_low": 0.8812568226128986, + "ci90_high": 0.9323631273122064, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 5.577931581727151e-15 + }, + "mcs24": { + "mcs": 24, + "median_ms": 2.392300000792602, + "control_over_row": { + "ratio": 0.8992810269313886, + "ci90_low": 0.878696659875835, + "ci90_high": 0.918558430150147, + "bootstrap_samples": 2000 + }, + "row_over_control_median": 1.1119994418344332, + "compile_s": 6.733799100002216, + "compile_ratio_vs_control": 1.103514628519134, + "temp_bytes": 907736, + "flops": 3195236.0, + "vmap16_ms_per_likelihood": 1.2811156250336353, + "vmap16_control_over_row": { + "ratio": 0.8642174667138233, + "ci90_low": 0.8452551560527195, + "ci90_high": 0.8829195953555903, + "bootstrap_samples": 2000 + }, + "prior_multiplicity_agreement": 1.0, + "stress_multiplicity_agreement": 1.0, + "prior_max_err": 0.0008513474499103632, + "uncapped_max_per_step": { + "prior": [ + 17, + 13, + 11, + 9, + 7, + 5, + 5, + 5 + ], + "stream": [ + 13, + 9, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "stress": [ + 7, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ] + }, + "uncapped_max_over_steps": { + "prior": 17, + "stream": 13, + "stress": 7 + }, + "draws_exceeding_cap_per_step": { + "prior": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stream": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "stress": [ + [], + [], + [], + [], + [], + [], + [], + [] + ] + }, + "n_draws_exceeding_cap": { + "prior": 0, + "stream": 0, + "stress": 0 + }, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_bit_identical": true, + "no_unexplained_change": true, + "n_image_set_changes": 0, + "grad_max_rel_delta_vs_control": 5.577931581727151e-15 + } + }, + "uncapped_max_over_all_samples_and_steps": 17, + "decision_rule": "smallest N >= 18 with uncapped max <= N - 3, no unexplained change, compile <= +20 %, scalar median cost <= ~5 % (human picks N at the step-2 checkpoint)", + "rule_candidates": [] + }, + "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 + }, + "mcs18": { + "positions_shape": [ + 18, + 2 + ], + "expected_rows": 18, + "pass": true + }, + "mcs20": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + }, + "mcs24": { + "positions_shape": [ + 24, + 2 + ], + "expected_rows": 24, + "pass": true + } + }, + "patch_restored": { + "module_constant": 15, + "init_default": [ + 15, + null + ], + "step0_containment": "structured", + "pass": true + }, + "patch_keeps_later_defaults": { + "probes": { + "mcs18": { + "mcs": 18, + "__init__": { + "during": { + "max_containing_size": "18", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "18" + } + }, + "constructed_max_containing_size": 18, + "constructed_step0_layout": "None", + "pass": true + }, + "mcs20": { + "mcs": 20, + "__init__": { + "during": { + "max_containing_size": "20", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "20" + } + }, + "constructed_max_containing_size": 20, + "constructed_step0_layout": "None", + "pass": true + }, + "mcs24": { + "mcs": 24, + "__init__": { + "during": { + "max_containing_size": "24", + "step0_layout": "None" + } + }, + "for_limits_and_scale": { + "during": { + "max_containing_size": "24" + } + }, + "constructed_max_containing_size": 24, + "constructed_step0_layout": "None", + "pass": true + } + }, + "pass": true + }, + "grad": { + "control": { + "compile_s": 9.311914000001707, + "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 + }, + "mcs18": { + "compile_s": 9.591369800000393, + "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.189194514961365, + 1304.4185837665757 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 5.577931581727151e-15 + }, + "mcs20": { + "compile_s": 11.69662370000151, + "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.189194514961365, + 1304.4185837665757 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 5.577931581727151e-15 + }, + "mcs24": { + "compile_s": 9.453830200000084, + "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.189194514961365, + 1304.4185837665757 + ] + ], + "pass": true, + "max_rel_delta_vs_control": 5.577931581727151e-15 + } + }, + "mcs_no_unexplained_change": { + "mcs18": { + "max_containing_size": 18, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_repr": "7.743201200876812", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 5.577931581727151e-15, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 5.577931581727151e-15, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + }, + "mcs20": { + "max_containing_size": 20, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_repr": "7.743201200876812", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 5.577931581727151e-15, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 5.577931581727151e-15, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + }, + "mcs24": { + "max_containing_size": 24, + "fiducial_log_likelihood": 7.743201200876812, + "fiducial_repr": "7.743201200876812", + "fiducial_bit_identical_to_expected": true, + "fiducial_bit_identical_to_control": true, + "fiducial_explanation": { + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": false + }, + "stream_log_likelihood_bit_identical": true, + "draw_changes": [], + "n_image_set_changes": 0, + "stream_changes": [], + "grad_changes": [ + { + "stream_index": 2, + "uncapped_counts_per_step": [ + 9, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "control_truncated_steps": [], + "row_truncated_steps": [], + "explained": true, + "max_rel_delta_vs_control": 5.577931581727151e-15, + "explanation": "padded-length reduction rounding (log L bit-identical)" + } + ], + "grad_max_rel_delta_vs_control": 5.577931581727151e-15, + "grad_rounding_rtol": 1e-12, + "vmap_changes": [], + "n_unexplained": 0, + "unexplained": [], + "pass": true + } + } + }, + "all_gates_pass": true, + "completeness_compile": { + "control_prior": { + "lower_s": 6.306249199999002, + "compile_s": 9.79381690000082, + "first_call_s": 0.003896599999279715, + "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": 4997120, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "control_stress": { + "lower_s": 1.9176465999989887, + "compile_s": 3.2248970000000554, + "first_call_s": 0.0053943999992043246, + "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": 999424, + "max_containing_size_proof": { + "positions_shape": [ + 15, + 2 + ], + "expected_rows": 15, + "pass": true + } + }, + "mcs18_prior": { + "lower_s": 9.580901699999231, + "compile_s": 9.470442899997579, + "first_call_s": 0.003923200001736404, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864, + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [], + [ + 18, + 2 + ] + ], + "flops": 2933102.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 312, + "temp_size_in_bytes": 903960, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 5677056, + "max_containing_size_proof": { + "positions_shape": [ + 18, + 2 + ], + "expected_rows": 18, + "pass": true + } + }, + "mcs18_stress": { + "lower_s": 2.0285106000010273, + "compile_s": 3.7138917000011133, + "first_call_s": 0.0035988999989058357, + "traced_rows_per_step": [ + 11859, + 864, + 864, + 864, + 864, + 864, + 864, + 864 + ], + "output_shapes": [ + [ + 18, + 2 + ] + ], + "flops": 2855615.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 288, + "temp_size_in_bytes": 903512, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 2158592, + "max_containing_size_proof": { + "positions_shape": [ + 18, + 2 + ], + "expected_rows": 18, + "pass": true + } + }, + "mcs20_prior": { + "lower_s": 7.428172900003119, + "compile_s": 12.904785700000502, + "first_call_s": 0.0035427000002528075, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960, + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [], + [ + 20, + 2 + ] + ], + "flops": 3017410.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 344, + "temp_size_in_bytes": 905176, + "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": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + }, + "mcs20_stress": { + "lower_s": 2.1371691999993345, + "compile_s": 3.4034716999995, + "first_call_s": 0.004303999998228392, + "traced_rows_per_step": [ + 11859, + 960, + 960, + 960, + 960, + 960, + 960, + 960 + ], + "output_shapes": [ + [ + 20, + 2 + ] + ], + "flops": 2922293.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 320, + "temp_size_in_bytes": 904728, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 811008, + "max_containing_size_proof": { + "positions_shape": [ + 20, + 2 + ], + "expected_rows": 20, + "pass": true + } + }, + "mcs24_prior": { + "lower_s": 6.8089966000006825, + "compile_s": 13.164485299999797, + "first_call_s": 0.0034386000006634276, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [], + [ + 24, + 2 + ] + ], + "flops": 3195236.0, + "memory_analysis": { + "argument_size_in_bytes": 40, + "output_size_in_bytes": 408, + "temp_size_in_bytes": 907672, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 8380416, + "max_containing_size_proof": { + "positions_shape": [ + 24, + 2 + ], + "expected_rows": 24, + "pass": true + } + }, + "mcs24_stress": { + "lower_s": 1.8822347999994236, + "compile_s": 3.277073700002802, + "first_call_s": 0.003331299998535542, + "traced_rows_per_step": [ + 11859, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152, + 1152 + ], + "output_shapes": [ + [ + 24, + 2 + ] + ], + "flops": 3059387.0, + "memory_analysis": { + "argument_size_in_bytes": 64, + "output_size_in_bytes": 384, + "temp_size_in_bytes": 907224, + "alias_size_in_bytes": 0, + "generated_code_size_in_bytes": 0, + "host_temp_size_in_bytes": 0 + }, + "rss_delta_bytes": 1081344, + "max_containing_size_proof": { + "positions_shape": [ + 24, + 2 + ], + "expected_rows": 24, + "pass": true + } + } + }, + "progress": [ + "[ 5.5 s] configs: control(n=8,rows=11859), mcs18(n=8,rows=11859), mcs20(n=8,rows=11859), mcs24(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473)", + "[ 47.4 s] reference reference solved on 200 prior + 200 stress draws (compile 2.9 s)", + "[ 82.9 s] reference reference_b solved on 200 prior + 200 stress draws (compile 3.6 s)", + "[ 82.9 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}}}", + "[ 187.1 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 187.2 s] completeness mcs18 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 187.2 s] completeness mcs20 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 187.3 s] completeness mcs24 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142", + "[ 187.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}}", + "[ 187.3 s] timing: compiling every route (fresh closure + clear_caches)", + "[ 240.2 s] timing: 20 rounds x 20 calls x 4 routes done", + "[ 241.2 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True", + "[ 311.3 s] grad gate: control=True, mcs18=True, mcs20=True, mcs24=True", + "[ 311.3 s] best admissible (precision-equivalent): mcs18; any precision: mcs18", + "[ 526.9 s] vmap: control_vmap1 2.459 ms/L, control_vmap4 1.478 ms/L, control_vmap16 1.107 ms/L, mcs18_vmap1 2.667 ms/L, mcs18_vmap4 1.630 ms/L, mcs18_vmap16 1.199 ms/L, mcs20_vmap1 2.628 ms/L, mcs20_vmap4 1.613 ms/L, mcs20_vmap16 1.226 ms/L, mcs24_vmap1 2.660 ms/L, mcs24_vmap4 1.697 ms/L, mcs24_vmap16 1.281 ms/L", + "[ 526.9 s] step-0 split: ray trace vs ray trace + containment per geometry", + "[ 557.5 s] step-0 split: control trace 0.382 contain 0.755, mcs18 trace 0.395 contain 0.717, mcs20 trace 0.367 contain 0.736, mcs24 trace 0.356 contain 0.734", + "[ 557.5 s] uncapped containing counts (NumPy path) on the prior draws", + "[ 612.4 s] uncapped prior: max per step [17, 13, 11, 9, 7, 5, 5, 5]; control exceed/step [1, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 612.4 s] uncapped stream: max per step [13, 9, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 612.4 s] uncapped stress: max per step [7, 5, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0]", + "[ 612.4 s] mcs gate mcs18: 0 draw changes (0 image-set), stream 0, grad 1, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True", + "[ 612.5 s] mcs gate mcs20: 0 draw changes (0 image-set), stream 0, grad 1, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True", + "[ 612.5 s] mcs gate mcs24: 0 draw changes (0 image-set), stream 0, grad 1, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True" + ], + "wall_s": 614.2379062 +} \ No newline at end of file diff --git a/results/breakdown/point_source_image/solver_config_sweep_mcs_laptop_cpu_fp64.png b/results/breakdown/point_source_image/solver_config_sweep_mcs_laptop_cpu_fp64.png new file mode 100644 index 000000000..e95899d44 Binary files /dev/null and b/results/breakdown/point_source_image/solver_config_sweep_mcs_laptop_cpu_fp64.png differ diff --git a/results/notes/point_source_cpu_2026_09_27_ral_job_358976_mcs_headroom_8490h_cpu.out b/results/notes/point_source_cpu_2026_09_27_ral_job_358976_mcs_headroom_8490h_cpu.out new file mode 100644 index 000000000..ca091707e --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_27_ral_job_358976_mcs_headroom_8490h_cpu.out @@ -0,0 +1,90 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom +========================================== +Sun 27 Sep 18:33:36 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: 206.33 208.14 209.96 213/3240 160359 +Cell: point_source_image/likelihood_breakdown/solver_config_sweep --mcs-headroom +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/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) bf104102312852537159b7fad2f998ab6677b4e4 +PyAutoFit (mirror) c156a9d8e8eb9f82b6da169b1d50b7e64580fe98 +PyAutoArray (mirror) e281abf3257e9efd4915f1daa9acc0498be250a5 +PyAutoGalaxy (mirror) ba8a08fabcb13d9472f2bd43ef4fea6039284d50 +PyAutoLens (mirror) dcbd4b711120641cc0ecc6490d868795ad717b07 +AP_ROOT rev: d6757ad0513196470329ae46c482ca308f0ff73d +=== import provenance === +autoarray 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoArray/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 +MAX_CONTAINING_SIZE 15 _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-mcs-headroom/results/breakdown/point_source_image +Sun 27 Sep 18:33:38 BST 2026 +loadavg: 206.33 208.14 209.96 207/3240 160400 +[ 4.7 s] configs: control(n=8,rows=11859), mcs18(n=8,rows=11859), mcs20(n=8,rows=11859), mcs24(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473) +[ 32.5 s] reference reference solved on 200 prior + 200 stress draws (compile 2.0 s) +[ 55.9 s] reference reference_b solved on 200 prior + 200 stress draws (compile 2.4 s) +[ 55.9 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.1 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.2 s] completeness mcs18 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 109.2 s] completeness mcs20 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 109.2 s] completeness mcs24 prior mult 1.000 raw 1.000 maxerr 0.0008513474499103632 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711579142 +[ 109.2 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.2 s] timing: compiling every route (fresh closure + clear_caches) +[ 140.6 s] timing: 20 rounds x 20 calls x 4 routes done +[ 141.1 s] fiducial gate: 7.743201200876812 == 7.743201200876812: True +[ 189.4 s] grad gate: control=True, mcs18=True, mcs20=True, mcs24=True +[ 189.4 s] best admissible (precision-equivalent): mcs18; any precision: mcs18 +[ 335.6 s] vmap: control_vmap1 1.450 ms/L, control_vmap4 0.991 ms/L, control_vmap16 0.821 ms/L, mcs18_vmap1 1.565 ms/L, mcs18_vmap4 1.059 ms/L, mcs18_vmap16 0.856 ms/L, mcs20_vmap1 1.548 ms/L, mcs20_vmap4 1.076 ms/L, mcs20_vmap16 0.892 ms/L, mcs24_vmap1 1.634 ms/L, mcs24_vmap4 1.167 ms/L, mcs24_vmap16 0.925 ms/L +[ 335.6 s] step-0 split: ray trace vs ray trace + containment per geometry +[ 355.6 s] step-0 split: control trace 0.306 contain 0.501, mcs18 trace 0.299 contain 0.556, mcs20 trace 0.303 contain 0.527, mcs24 trace 0.290 contain 0.521 +[ 355.6 s] uncapped containing counts (NumPy path) on the prior draws +[ 397.1 s] uncapped prior: max per step [17, 13, 11, 9, 7, 5, 5, 5]; control exceed/step [1, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0] +[ 397.1 s] uncapped stream: max per step [13, 9, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0] +[ 397.1 s] uncapped stress: max per step [7, 5, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs18 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs24 exceed/step [0, 0, 0, 0, 0, 0, 0, 0] +[ 397.2 s] mcs gate mcs18: 0 draw changes (0 image-set), stream 0, grad 2, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True +[ 397.2 s] mcs gate mcs20: 0 draw changes (0 image-set), stream 0, grad 2, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True +[ 397.2 s] mcs gate mcs24: 0 draw changes (0 image-set), stream 0, grad 2, vmap 0; unexplained 0; fiducial 7.743201200876812 bit-identical True + +====================================================================================================================================================== +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.466 1.000 [0.982, 1.019] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + mcs18 max_containing_size_headroom 9.90 0.20 0.0010 18 1 8 11859 1.538 0.953 [0.934, 0.965] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + mcs20 max_containing_size_headroom 9.90 0.20 0.0010 20 1 8 11859 1.557 0.941 [0.922, 0.953] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + mcs24 max_containing_size_headroom 9.90 0.20 0.0010 24 1 8 11859 1.597 0.918 [0.900, 0.927] 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): mcs18; any precision: mcs18 + 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} +------------------------------------------------------------------------------------------------------------------------------------------------------ + config mcs med_ms row/ctrl ctrl/row [90% CI] compile temp_B flops v16ms/L mult s_mult img-chg ok uncapped max/step (prior) | exceed/step (prior; stress) + control 15 1.466 1.0000 1.0000 [0.9823, 1.0188] 4.29 901656 2801341.0 0.8213 1.000 1.000 0 T [17, 13, 11, 9, 7, 5, 5, 5] | [1, 0, 0, 0, 0, 0, 0, 0]; [0, 0, 0, 0, 0, 0, 0, 0] + mcs18 18 1.538 1.0495 0.9528 [0.9344, 0.9651] 4.48 904024 2933102.0 0.8560 1.000 1.000 0 T [17, 13, 11, 9, 7, 5, 5, 5] | [0, 0, 0, 0, 0, 0, 0, 0]; [0, 0, 0, 0, 0, 0, 0, 0] + mcs20 20 1.557 1.0623 0.9413 [0.9219, 0.9527] 4.59 905240 3017410.0 0.8916 1.000 1.000 0 T [17, 13, 11, 9, 7, 5, 5, 5] | [0, 0, 0, 0, 0, 0, 0, 0]; [0, 0, 0, 0, 0, 0, 0, 0] + mcs24 24 1.597 1.0898 0.9176 [0.9000, 0.9274] 4.91 907736 3195236.0 0.9249 1.000 1.000 0 T [17, 13, 11, 9, 7, 5, 5, 5] | [0, 0, 0, 0, 0, 0, 0, 0]; [0, 0, 0, 0, 0, 0, 0, 0] + uncapped max over all samples and steps: 17 + rule candidates: [] + all_gates_pass: True + wall: 397 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.png +=== source_revisions check (JSON vs imported HEADs) === +autoarray_imported_from /mnt/ral/jnightin/PyAuto/PyAutoArray +OK /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.json all_gates_pass True +========================================== +loadavg: 206.97 208.63 209.60 197/3225 160483 +Finished. +Sun 27 Sep 18:40:18 BST 2026 diff --git a/results/notes/point_source_cpu_2026_09_27_ral_job_359102_mcs_headroom_a100.out b/results/notes/point_source_cpu_2026_09_27_ral_job_359102_mcs_headroom_a100.out new file mode 100644 index 000000000..8c606e341 --- /dev/null +++ b/results/notes/point_source_cpu_2026_09_27_ral_job_359102_mcs_headroom_a100.out @@ -0,0 +1,87 @@ +AP_ROOT=/mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom +========================================== +Sun 27 Sep 19:18:39 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.08 0.14 0.89 1/1244 190881 +Cell: point_source_image/likelihood_breakdown/solver_config_sweep --mcs-headroom --configs control,mcs20 +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/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) bf104102312852537159b7fad2f998ab6677b4e4 +PyAutoFit (mirror) c156a9d8e8eb9f82b6da169b1d50b7e64580fe98 +PyAutoArray (mirror) e281abf3257e9efd4915f1daa9acc0498be250a5 +PyAutoGalaxy (mirror) ba8a08fabcb13d9472f2bd43ef4fea6039284d50 +PyAutoLens (mirror) dcbd4b711120641cc0ecc6490d868795ad717b07 +AP_ROOT rev: add12a2ca57227c24a9544b9039b8c1c892f2baf +=== import provenance === +autoarray 2026.8.17.1 /mnt/ral/jnightin/PyAuto/PyAutoArray/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 +MAX_CONTAINING_SIZE 15 _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-mcs-headroom/results/breakdown/point_source_image +Sun 27 Sep 19:18:41 BST 2026 +loadavg: 0.08 0.14 0.89 1/1244 190918 +[ 5.3 s] configs: control(n=8,rows=11859), mcs20(n=8,rows=11859), reference(n=9,rows=268677), reference_b(n=10,rows=115473) +[ 31.5 s] reference reference solved on 200 prior + 200 stress draws (compile 4.4 s) +[ 56.5 s] reference reference_b solved on 200 prior + 200 stress draws (compile 5.0 s) +[ 56.5 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}}} +[ 88.9 s] completeness control prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035 +[ 88.9 s] completeness mcs20 prior mult 1.000 raw 1.000 maxerr 0.00085134744991033 |dlogL|ref 0.8682473458375171 stress mult 1.0 maxerr 0.0007893460711581035 +[ 88.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}} +[ 88.9 s] timing: compiling every route (fresh closure + clear_caches) +[ 106.8 s] timing: 20 rounds x 20 calls x 2 routes done +[ 107.1 s] fiducial gate: 7.743201200876806 == 7.743201200876806: True +[ 146.7 s] grad gate: control=True, mcs20=True +[ 146.7 s] best admissible (precision-equivalent): mcs20; any precision: mcs20 +[ 212.4 s] vmap: control_vmap1 0.837 ms/L, control_vmap4 0.235 ms/L, control_vmap16 0.071 ms/L, mcs20_vmap1 0.838 ms/L, mcs20_vmap4 0.254 ms/L, mcs20_vmap16 0.071 ms/L +[ 212.4 s] step-0 split: ray trace vs ray trace + containment per geometry +[ 222.8 s] step-0 split: control trace -0.014 contain 0.091, mcs20 trace -0.013 contain 0.089 +[ 222.8 s] uncapped containing counts (NumPy path) on the prior draws +[ 270.4 s] uncapped prior: max per step [17, 13, 11, 9, 7, 5, 5, 5]; control exceed/step [1, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0] +[ 270.4 s] uncapped stream: max per step [13, 9, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0] +[ 270.4 s] uncapped stress: max per step [7, 5, 5, 5, 5, 5, 5, 5]; control exceed/step [0, 0, 0, 0, 0, 0, 0, 0], mcs20 exceed/step [0, 0, 0, 0, 0, 0, 0, 0] +[ 270.4 s] mcs gate mcs20: 0 draw changes (0 image-set), stream 0, grad 1, vmap 0; unexplained 0; fiducial 7.743201200876806 bit-identical True + +====================================================================================================================================================== +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.827 1.000 [0.997, 1.003] TT 1.000 1.000 8.51e-04 7.89e-04 8.68e-01 1.000 7.89e-04 + mcs20 max_containing_size_headroom 9.90 0.20 0.0010 20 1 8 11859 0.825 1.003 [0.999, 1.005] 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): mcs20; any precision: mcs20 + 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.743201200876806, 'repr': '7.743201200876806', 'pass': True} +------------------------------------------------------------------------------------------------------------------------------------------------------ + config mcs med_ms row/ctrl ctrl/row [90% CI] compile temp_B flops v16ms/L mult s_mult img-chg ok uncapped max/step (prior) | exceed/step (prior; stress) + control 15 0.827 1.0000 1.0000 [0.9971, 1.0029] 5.60 390472 2787435.0 0.0709 1.000 1.000 0 T [17, 13, 11, 9, 7, 5, 5, 5] | [1, 0, 0, 0, 0, 0, 0, 0]; [0, 0, 0, 0, 0, 0, 0, 0] + mcs20 20 0.825 0.9969 1.0031 [0.9994, 1.0051] 5.78 389192 2949201.0 0.0707 1.000 1.000 0 T [17, 13, 11, 9, 7, 5, 5, 5] | [0, 0, 0, 0, 0, 0, 0, 0]; [0, 0, 0, 0, 0, 0, 0, 0] + uncapped max over all samples and steps: 17 + rule candidates: ['mcs20'] + all_gates_pass: True + wall: 270 s + Results JSON: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.json + Results PNG: /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.png +=== source_revisions check (JSON vs imported HEADs) === +autoarray_imported_from /mnt/ral/jnightin/PyAuto/PyAutoArray +OK /mnt/ral/jnightin/autolens_profiling_wt/pointsolver-mcs-headroom/results/breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.json all_gates_pass True +========================================== +loadavg: 1.50 1.24 1.19 1/1246 192647 +name, memory.used [MiB] +NVIDIA A100 80GB PCIe, 0 MiB +Finished. +Sun 27 Sep 19:23:14 BST 2026 diff --git a/results/notes/point_source_cpu_campaign.md b/results/notes/point_source_cpu_campaign.md index 40d49bb6e..bb885437a 100644 --- a/results/notes/point_source_cpu_campaign.md +++ b/results/notes/point_source_cpu_campaign.md @@ -1474,3 +1474,172 @@ hpc/sync submit --cpu submit_breakdown_point_source_image_solver_config_sweep_st 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 ``` + +## Phase 4c — `MAX_CONTAINING_SIZE` headroom 15 → 20 (2026-09-27) + +Issue: [PyAutoArray #583](https://github.com/PyAutoLabs/PyAutoArray/issues/583). Branch +`feature/pointsolver-mcs-headroom` in PyAutoArray, PyAutoLens and autolens_profiling. **A correctness +fix, not a speed lever.** The JAX `PointSolver` keeps at most `MAX_CONTAINING_SIZE` containing triangles +per refinement step and silently truncates the rest (`jnp.where(..., size=MAX_CONTAINING_SIZE)`). +Phase 4a counted a step-0 maximum of 17 on the prior, so 15 was already truncating. The geometry is +otherwise unchanged (±9.9″ / 0.2 / 1e-3). + +### What changed + +- **PyAutoArray** `autoarray/structures/triangles/array.py`: `MAX_CONTAINING_SIZE = 20` (was 15). + `ArrayTriangles.__init__` / `for_limits_and_scale` bind it as their default, and + `CoordinateArrayTriangles.with_vertices` inherits that default. No other 15 in + `structures/triangles/` is tied to the cap. New test + `test_coordinate_jax.py::test__containing_set_above_the_old_cap_is_not_truncated[16|17]`: the static + lattice traced through `z → z**k` gives a k-sheet fold. Under `jit` all 16 or 17 containing + triangles are kept at the default, padded to `(20,)`, and the old cap of 15, passed explicitly, + drops some. **Red at 15** (keeps 15 of 16 / 17), green at 20. +- **PyAutoLens** `autolens/point/solver/shape_solver.py`: the `ShapeSolver` JAX rejection message is + built from `autoarray.structures.triangles.array.MAX_CONTAINING_SIZE`. That module is NumPy-only, so + the message is still a plain string, the same with or without JAX. The docstring names the constant + instead of "(15)", and `test_shape_solver.py` pins the rendered constant. +- **Harness** (`solver_config_sweep.py --mcs-headroom`, commits `a40e140` / `d5a971e` / `d6757ad`): + `mcs18` / `mcs20` / `mcs24` rows against the library control (15), each patched for tracing only. + NumPy uncapped containing counts for **every** refinement step on the prior, stress and stream + draws. `gates.mcs_no_unexplained_change`: a row may differ from the control only on a draw whose + uncapped count exceeds the control's cap at some step. `--configs` narrows the set. + +### Decision rule and the human call + +Pre-registered rule: the smallest N ≥ 18 whose uncapped max over all steps and draws is ≤ N − 3, with +no unexplained change, compile ≤ +20 % and at most about +5 % on the scalar median. +- On the quotable 8490H row, mcs20 clears every leg except the cost leg: it costs **+6.2 %**. + mcs18 fails the margin leg (17 > 18 − 3) and costs +5.0 %. `rule_candidates` is therefore empty + on the 8490H and laptop rows. +- **Human decision (2026-09-27, recorded on #583): N = 20, accepting the +6.2 % cost-leg miss.** + The fix is for correctness, and 20 is the smallest cap that clears the observed 17 with a + three-triangle margin. + +### Quotable row: RAL CPU, Xeon Platinum 8490H — job 358976 + +`euclid-ral-compute-10-4`, 8 CPUs, fp64, NPROC 8, BLAS 1, phase-1 XLA_FLAGS. Wall 397 s, +`all_gates_pass: true`. Every library came from the shared mirror, asserted: PyAutoArray `e281abf3` +(includes #580), PyAutoLens `dcbd4b71`, PyAutoGalaxy `ba8a08fa`, PyAutoFit `c156a9d8`, PyAutoNerves +`bf104102`; profiling `d6757ad`. JSON +[`solver_config_sweep_mcs_hpc_ral_cpu_fp64.json`](../breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_cpu_fp64.json); +log [`point_source_cpu_2026_09_27_ral_job_358976_mcs_headroom_8490h_cpu.out`](point_source_cpu_2026_09_27_ral_job_358976_mcs_headroom_8490h_cpu.out). + +**The node was loaded**, with loadavg ≈ 206–210 on 236 cores. The rows are interleaved round by +round, so the ratios stand. The absolute ms are not comparable to phase 4a. + +| row | median ms | row / control | control / row [90 % CI] | paired-round | vmap-1 / 4 / 16 ms/L | compile s (vs ctrl) | XLA temp KB | FLOPs M | +|---|---:|---:|---:|---:|---|---:|---:|---:| +| control (15) | 1.466 | 1.000 | 1.000 [0.982, 1.019] | 1.000 | 1.450 / 0.991 / 0.821 | 4.29 | 881 | 2.80 | +| mcs18 | 1.538 | 1.050 | 0.953 [0.934, 0.965] | 0.946 | 1.565 / 1.059 / 0.856 | 4.48 (+4.5 %) | 883 | 2.93 | +| **mcs20** (chosen) | 1.557 | **1.062** | 0.941 [0.922, 0.953] | 0.925 | 1.548 / 1.076 / 0.892 | 4.59 (**+7.0 %**) | 884 | 3.02 | +| mcs24 | 1.597 | 1.090 | 0.918 [0.900, 0.927] | 0.915 | 1.634 / 1.167 / 0.925 | 4.91 (+14.4 %) | 886 | 3.20 | + +- Cost grows roughly linearly with the cap: +1.0–1.7 % per extra slot on the scalar call and about + +1.5 % in FLOPs per slot. XLA temp memory is flat (+0.3 %). +- mcs20 under vmap-16 costs +8.6 % (0.892 vs 0.821 ms/L). + +### Laptop witness (not quotable) + +`solver_config_sweep_mcs_laptop_cpu_fp64.json`: i9-10885H under WSL2, profiling `d6757ad`, loadavg ≈ 3. +- Row / control: mcs18 1.036, **mcs20 1.055**, mcs24 1.112. Control 2.151 ms. +- vmap-16: 1.107 / 1.199 / 1.226 / 1.281 ms/L. +- Compile +18.3 / +36.3 / +10.4 %. One cold compile per row on WSL2 is noise: the ordering is not + monotonic, and the 8490H shows +4.5 / +7.0 / +14.4 %. +- Otherwise the same verdict: `all_gates_pass: true` and zero image-set changes. + +### A100 no-regression row — job 359102 + +- Hardware: `euclid-ral-gpu-1`, NVIDIA A100 80 GB PCIe (driver 610.57.04), host EPYC 7702, idle + (loadavg 0.08 → 1.54). Wall 270 s. +- Run: `JAX_PLATFORMS=cuda` + `JAX_PLATFORM_NAME=cuda`, and the job asserted the `gpu` backend. + Configs `control,mcs20`, with the same mirror revisions as the 8490H row. Profiling `add12a2`. +- Submit + `hpc/batch_gpu/submit_breakdown_point_source_image_solver_config_sweep_mcs_a100_fp64`. + `all_gates_pass: true`. +- JSON + [`solver_config_sweep_mcs_hpc_ral_a100_fp64.json`](../breakdown/point_source_image/solver_config_sweep_mcs_hpc_ral_a100_fp64.json); + log [`point_source_cpu_2026_09_27_ral_job_359102_mcs_headroom_a100.out`](point_source_cpu_2026_09_27_ral_job_359102_mcs_headroom_a100.out). + +| row | median ms | row / control | control / row [90 % CI] | paired-round | vmap-1 / 4 / 16 ms/L | compile s (vs ctrl) | XLA temp KB | +|---|---:|---:|---:|---:|---|---:|---:| +| control (15) | 0.827 | 1.000 | 1.000 [0.997, 1.003] | 1.000 | 0.837 / 0.235 / 0.071 | 5.60 | 381 | +| mcs20 | 0.825 | 0.997 | 1.003 [0.999, 1.005] | 1.001 | 0.838 / 0.254 / 0.071 | 5.78 (+3.2 %) | 380 | + +**No regression on the launch-bound A100:** the scalar call is ~1.00× and vmap-16 is flat. vmap-4 +reads +8 % (0.254 vs 0.235 ms/L), a 19 µs single-cell difference that vmap-1 and vmap-16 do not +show. The fiducial `7.743201200876806` (the established A100 value) is bit-identical at both caps. + +### Completeness, truncation and draw 12 + +- Every row on every run: 200/200 prior and 200/200 stress, multiplicity agreement 1.0, max position + error 8.51e-4″ (unchanged from phase 4a). **Zero image-set, position or log L changes** against the + control on 200 prior + 200 stress + 16 stream draws. +- Uncapped containing counts per step (8490H; identical on the laptop and A100, NumPy path): + + | sample | max per step 0–7 | p99 per step | median | draws > 15 per step | + |---|---|---|---|---| + | prior (200) | 17 / 13 / 11 / 9 / 7 / 5 / 5 / 5 | 15 / 11 / 9 / 7 / 5 / 5 / 5 / 5 | 9 / 5 / … / 5 | 1 / 0 / 0 / 0 / 0 / 0 / 0 / 0 | + | stress (200) | 7 / 5 / 5 / 5 / 5 / 5 / 5 / 5 | 5 | 3 | none | + | stream (16) | 13 / 9 / 5 / 5 / 5 / 5 / 5 / 5 | — | 9 / 5 / … | none | + + The uncapped maximum over all samples and steps is **17**. With 20 no draw exceeds the cap at any + step, a margin of 3. +- **Draw 12 explained.** It is the only draw over 15, at step 0 only (17 containing triangles). At + MCS 15 the two highest-index entries are dropped (`jnp.where(size=...)` keeps the first 15 in + index order). Phase 4a identified them as spurious fold-line candidates; that was not + re-verified triangle by triangle here, and the bit-identical result below does not depend on it. Its later steps (≤ 13) are + never truncated, and its positions and log L are **bit-identical at 15, 18, 20 and 24**. The old + cap was truncating, but on this draw the truncation happened to be harmless. At 20 nothing is + dropped. The gate records it as a draw the control's cap truncated, with no change. + +### Gradient allowance (scoped) + +A padded `(MCS, 2)` positions array changes the length of the backward pass's reductions, so XLA +may reorder a sum. +- `gates.mcs_no_unexplained_change` therefore allows a `jax.grad` difference against the control of + at most `GRAD_ROUNDING_RTOL = 1e-12` relative, and only under two conditions: + - the row is an MCS row; step-0 route rows and the control stay strictly bit-identical; + - the log L is bit-identical. +- A log L difference is never tolerated. It is only ever an explained truncation change. +- **Observed maximum:** 6.08e-14 on the 8490H (stream instances 0 and 2), 5.58e-15 on the laptop and + 1.98e-14 on the A100, all "padded-length reduction rounding (log L bit-identical)". +- `jax.grad` is finite and non-zero on every row. The patch is restored, and the traced positions + shape is `(mcs, 2)` on every row (`gates.max_containing_size_patch`). + +### Fiducial + +`7.743201200876812` (CPU: 8490H and laptop) and `7.743201200876806` (A100) are **bit-identical at +every cap**. The padded rows are `inf` sentinels that contribute nothing, so no re-pin is needed. +`FIDUCIAL_SOLVED_LOG_L_BY_BACKEND` is unchanged. + +### Library suites, pins and downstream (branch libraries, laptop) + +- Suites: PyAutoArray **1738 passed**; PyAutoLens **759 passed, 1 xfailed** (the deferred + `ShapeSolver` JAX parity xfail). Both ran with the branch PyAutoArray first on `PYTHONPATH`. +- autolens_workspace_test pins: `scripts/point_source/jax_likelihood/{point,image_plane,source_plane,fluxes_time_delays}.py` + and `scripts/point_source/jax_grad/gradient.py` **all pass unchanged** against the branch PyAutoArray + + PyAutoLens (`MAX_CONTAINING_SIZE` 20 asserted at import). The exact `-83.38049777774609` point pin + holds and every gradient check passes, so **no pin changes** and no workspace_test PR. The scripts + ran in scratch detached worktrees of workspace main. +- No workspace, workspace_test or HowToLens script assumes a `(15, 2)` positions shape. The grep for + `(15, 2)`, `MAX_CONTAINING_SIZE` and `max_containing_size` finds nothing. +- Targeted smoke, the #580 selection of 31 point-source scripts, under each workspace's + `profile_smoke.yaml`: HowToLens **3/3**, autolens_workspace **19/19**, autolens_workspace_test + **9/9**: 31/31 pass. + +### Revisions + +| repo | revision | +|---|---| +| PyAutoArray (branch, local) | `462ad094` (on `e281abf3`) | +| PyAutoLens (branch, local) | `ae95341d` (on `dcbd4b71`) | +| RAL mirror (both jobs) | PyAutoArray `e281abf3`, PyAutoLens `dcbd4b71`, PyAutoGalaxy `ba8a08fa`, PyAutoFit `c156a9d8`, PyAutoNerves `bf104102` | +| autolens_profiling | `d6757ad` (8490H job 358976, laptop), `add12a2` (A100 job 359102) | + +### Reproduce (RAL) + +```bash +# RAL worktree of feature/pointsolver-mcs-headroom; libraries are the shared mirror (MCS 15 = control) +hpc/sync submit --cpu submit_breakdown_point_source_image_solver_config_sweep_mcs_ral_cpu_fp64 # quotable, 8490H +hpc/sync submit --gpu submit_breakdown_point_source_image_solver_config_sweep_mcs_a100_fp64 # A100 +``` 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 3e1efe95c..61a9359f9 100644 --- a/scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py +++ b/scripts/point_source_image/likelihood_breakdown/solver_config_sweep.py @@ -114,6 +114,30 @@ gradients and the ``vmap`` values (``gates["step0_route_bit_identity"]``). Output ``solver_config_sweep_step0_``. +MAX_CONTAINING_SIZE headroom (phase 4c) +--------------------------------------- + +``--mcs-headroom`` replaces the geometry sweep with the production-geometry A/B of the +cap ABOVE the library value (PyAutoArray#583): ``control`` (the library +``MAX_CONTAINING_SIZE``, 15) beside ``mcs18`` / ``mcs20`` / ``mcs24`` (``--configs`` +narrows the set), each patched for tracing through :func:`max_containing_size` and proved +from the traced ``(mcs, 2)`` shape; ``gates["patch_keeps_later_defaults"]`` re-proves the +``__defaults__`` patch binds by name (``step0_layout=None`` kept). Every row is timed, +completeness-checked, grad-checked and ``vmap``-ed at 1 / 4 / 16 and gets its own step-0 +prefix split (the containment pads to the cap). The NumPy uncapped containing counts are +taken on the prior, stress and timing-stream draws, and each row reports, for EVERY +refinement step, the max and the draws exceeding its cap. The gate is "no unexplained +change" rather than bit-identity (``gates["mcs_no_unexplained_change"]``): a draw may +differ from the control (finite positions, log L, gradient, ``vmap`` value) only when its +uncapped count exceeds the control cap (or the row's own) at some step -- the capped +trajectory is a subset of the uncapped one, so a count within the cap at every step means +the cap never bit. Every differing draw is listed with its per-step uncapped counts. +One further class is explained explicitly: a gradient within ``GRAD_ROUNDING_RTOL`` +(1e-12 relative) of the control's while the log L is bit-identical -- the backward pass +accumulates over the padded ``(mcs, ...)`` axis, so a different padded length changes +XLA's reduction order (the first laptop witness saw 3e-15 on one stream instance). +Output ``solver_config_sweep_mcs_``. + Output ------ @@ -196,6 +220,16 @@ def _profiling_root() -> Path: "at the production geometry (phase 4b, PyAutoArray#579)" ), ) +_cell_parser.add_argument( + "--mcs-headroom", + action="store_true", + help=( + "phase 4c (PyAutoArray#583): replace the geometry sweep with control (the library " + "MAX_CONTAINING_SIZE) + mcs18,mcs20,mcs24 at the production geometry; --configs " + "narrows that set. Adds the per-step uncapped counts, per-MCS draws exceeding the " + "cap and the no-unexplained-change gate" + ), +) _cell_parser.add_argument( "--quick", action="store_true", @@ -238,6 +272,9 @@ def _profiling_root() -> Path: PRODUCTION_MCS = int(_triangles_array.MAX_CONTAINING_SIZE) ADMISSIBLE_POSITION_TOL = 0.002 DISTINCT_TOL = 0.005 +# A gradient that differs from the control by <= this relative amount, with the log L +# bit-identical, is floating-point reduction order (phase 4c), not a solver change. +GRAD_ROUNDING_RTOL = 1.0e-12 BOOTSTRAP_SAMPLES = 2000 BOOTSTRAP_SEED = 12345 GRID_SHAPE = (100, 100) @@ -308,16 +345,35 @@ def _cfg( REFERENCE = _cfg("reference", "reference", extent=12.0, scale=0.05, precision=1.0e-4, mcs=60) REFERENCE_B = _cfg("reference_b", "reference", extent=11.0, scale=0.07, precision=1.0e-4, mcs=60) +# (d) MAX_CONTAINING_SIZE headroom (phase 4c, PyAutoArray#583): ABOVE the production cap, +# at the production geometry. Not in the default grid (selected by --mcs-headroom, or by +# name through --configs), so the phase-4a default run is unchanged. +MCS_HEADROOM_CONFIGS = [ + _cfg("mcs18", "max_containing_size_headroom", mcs=18), + _cfg("mcs20", "max_containing_size_headroom", mcs=20), + _cfg("mcs24", "max_containing_size_headroom", mcs=24), +] + if _args.list_configs: - for c in CONFIGS: + for c in CONFIGS + MCS_HEADROOM_CONFIGS: print(c) sys.exit(0) +MCS_MODE = bool(_args.mcs_headroom) +if MCS_MODE and _args.step0_route: + raise SystemExit("--mcs-headroom and --step0-route are separate A/Bs; pass one") +_POOL = ( + [c for c in CONFIGS if c["name"] == "control"] + MCS_HEADROOM_CONFIGS + if MCS_MODE + else CONFIGS + MCS_HEADROOM_CONFIGS +) if _args.configs: wanted = [c.strip() for c in _args.configs.split(",") if c.strip()] - unknown = [w for w in wanted if w not in {c["name"] for c in CONFIGS}] + unknown = [w for w in wanted if w not in {c["name"] for c in _POOL}] 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] + CONFIGS = [c for c in _POOL if c["name"] == "control" or c["name"] in wanted] +elif MCS_MODE: + CONFIGS = _POOL STEP0_ROUTES = None if _args.step0_route: if not hasattr(_triangles_array, "_STEP0_CONTAINMENT"): @@ -425,6 +481,42 @@ def max_containing_size(mcs: int): _ORIGINAL_INIT_DEFAULTS = _triangles_array.ArrayTriangles.__init__.__defaults__ +def patch_default_binding_probe(mcs: int) -> dict: + """Prove the ``__defaults__`` patch binds BY NAME: under the patch ``max_containing_size`` + reads ``mcs`` and every later default (``step0_layout=None``, PyAutoArray#579) keeps its + original value, for both patched functions (phase 4b's fix, re-verified in 4c).""" + import inspect + + out = {"mcs": int(mcs)} + ok = True + for label, fn in ( + ("__init__", _triangles_array.ArrayTriangles.__init__), + ("for_limits_and_scale", _triangles_array.ArrayTriangles.for_limits_and_scale), + ): + before = { + k: v.default + for k, v in inspect.signature(fn).parameters.items() + if v.default is not inspect.Parameter.empty + } + with max_containing_size(mcs): + during = { + k: v.default + for k, v in inspect.signature(fn).parameters.items() + if v.default is not inspect.Parameter.empty + } + expected = {**before, "max_containing_size": int(mcs)} + out[label] = {"during": {k: repr(v) for k, v in during.items()}} + ok = ok and during == expected + with max_containing_size(mcs): + tri = _triangles_array.ArrayTriangles( + indices=np.zeros((1, 3), dtype=int), vertices=np.zeros((3, 2)) + ) + out["constructed_max_containing_size"] = int(tri.max_containing_size) + out["constructed_step0_layout"] = repr(tri.step0_layout) + out["pass"] = bool(ok and tri.max_containing_size == int(mcs) and tri.step0_layout is None) + return out + + @contextlib.contextmanager def step0_containment(route): """Set the library's step-0 containment route for the duration of tracing. @@ -1138,6 +1230,15 @@ def _image_extent(pos_list): and getattr(_triangles_array, "_STEP0_CONTAINMENT", None) == LIBRARY_STEP0_DEFAULT, }, } +_probes = { + c["name"]: patch_default_binding_probe(c["max_containing_size"]) + for c in CONFIGS + if c["max_containing_size"] != PRODUCTION_MCS +} +gates["patch_keeps_later_defaults"] = { + "probes": _probes, + "pass": all(p["pass"] for p in _probes.values()), +} note( f"fiducial gate: {repr(fid)} == {FIDUCIAL_SOLVED_LOG_L!r}: {gates['fiducial_bit_exact']['pass']}" ) @@ -1145,7 +1246,7 @@ def _image_extent(pos_list): grad_gate = {} for cfg in CONFIGS: name = cfg["name"] - if not (admissibility[name] or name == "control" or STEP0_MODE): + if not (admissibility[name] or name == "control" or STEP0_MODE or MCS_MODE): continue def gfactory(cfg=cfg): @@ -1192,8 +1293,8 @@ def _fastest(names): vmap_block = None vvals = {} -if best is not None or STEP0_MODE: - vmap_names = CONFIG_NAMES if STEP0_MODE else ["control", best] +if best is not None or STEP0_MODE or MCS_MODE: + vmap_names = CONFIG_NAMES if (STEP0_MODE or MCS_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: @@ -1392,6 +1493,9 @@ def fn(vector): geoms = {} for cfg in CONFIGS: key = (cfg["extent"], cfg["scale"], cfg.get("step0_route")) + if MCS_MODE: + # containing_indices pads to the route's MAX_CONTAINING_SIZE: time each cap. + key = key + (cfg["max_containing_size"],) geoms.setdefault(key, cfg) s0_exec = {} stages = ("source_centre", "ray_trace", "general_gather", "route_inputs", "containment") @@ -1463,17 +1567,22 @@ def fn(vector): note("uncapped containing counts (NumPy path) on the prior draws") -def containing_counts(cfg, draws): +def containing_count_matrix(cfg, draws, model=None, fit_cls=None): + """Per draw, the uncapped containing-triangle count of EVERY step (NumPy, no cap). + + The NumPy path keeps every containing triangle, so its trajectory is the untruncated + one. A capped (JAX) trajectory keeps a subset at each step, so its later sets are + subsets too: an uncapped count <= the cap at every step means the cap never bit. + """ + model = MODEL_SOLVED if model is None else model + fit_cls = al.FitPositionsImagePairAllSolved if fit_cls is None else fit_cls solver = make_solver(cfg) analysis = al.AnalysisPoint( - dataset=DATASET, - solver=solver, - fit_positions_cls=al.FitPositionsImagePairAllSolved, - use_jax=False, + dataset=DATASET, solver=solver, fit_positions_cls=fit_cls, use_jax=False ) per_draw = [] for v in draws: - fit = analysis.fit_from(instance=MODEL_SOLVED.instance_from_vector(vector=v)).positions + fit = analysis.fit_from(instance=model.instance_from_vector(vector=v)).positions shape = Point(*fit.source_plane_coordinate) counts = [] for step in solver.steps( @@ -1482,36 +1591,249 @@ def containing_counts(cfg, draws): t = np.asarray(step.filtered_triangles.triangles) counts.append(int(np.isfinite(t).all(axis=(1, 2)).sum())) per_draw.append(counts) - arr = np.asarray(per_draw) + return np.asarray(per_draw) + + +def summarise_counts(arr, cap): + """Per-step and over-steps statistics of an uncapped count matrix against ``cap``.""" worst = arr.max(axis=1) return { "n_draws": int(arr.shape[0]), + "cap": int(cap), "max_per_step": arr.max(axis=0).tolist(), "p99_per_step": np.percentile(arr, 99, axis=0).tolist(), "median_per_step": np.median(arr, axis=0).tolist(), "max_over_steps": int(arr.max()), - "draws_exceeding_cap": [int(i) for i in np.where(worst > cfg["max_containing_size"])[0]], - "n_draws_exceeding": {str(k): int((worst > k).sum()) for k in (6, 8, 10, 12, 15)}, + "draws_exceeding_cap": [int(i) for i in np.where(worst > cap)[0]], + "draws_exceeding_cap_per_step": [ + [int(i) for i in np.where(arr[:, s] > cap)[0]] for s in range(arr.shape[1]) + ], + "n_draws_exceeding_cap_per_step": [ + int((arr[:, s] > cap).sum()) for s in range(arr.shape[1]) + ], + "headroom_over_steps": int(cap) - int(arr.max()), + "n_draws_exceeding": { + str(k): int((worst > k).sum()) for k in (6, 8, 10, 12, 15, 17, 18, 20, 24) + }, "histogram_max_over_steps": { str(k): int(c) for k, c in zip(*np.unique(worst, return_counts=True)) }, } +def containing_counts(cfg, draws): + return summarise_counts(containing_count_matrix(cfg, draws), cfg["max_containing_size"]) + + uncapped_counts = {} -for name in dict.fromkeys(n for n in ("control", best, best_any_precision) if n): - cfg = next(c for c in CONFIGS if c["name"] == name) - uncapped_counts[name] = containing_counts(cfg, prior_draws) - u = uncapped_counts[name] - note( - f"uncapped {name}: max per step {u['max_per_step']}; draws exceeding cap " - f"{cfg['max_containing_size']}: {u['draws_exceeding_cap']}" - ) +count_matrices = {} +if MCS_MODE: + # Every MCS row shares the control geometry, so the uncapped trajectory is one matrix + # per sample; each MCS is summarised against its own cap. + _ctrl = next(c for c in CONFIGS if c["name"] == "control") + count_matrices["prior"] = containing_count_matrix(_ctrl, prior_draws) + count_matrices["stream"] = containing_count_matrix(_ctrl, stream) + if N_STRESS: + count_matrices["stress"] = containing_count_matrix( + _ctrl, stress_draws, model=MODEL_STRESS, fit_cls=al.FitPositionsImagePairAll + ) + for cfg in CONFIGS: + uncapped_counts[cfg["name"]] = { + s: summarise_counts(m, cfg["max_containing_size"]) for s, m in count_matrices.items() + } + for s, m in count_matrices.items(): + note( + f"uncapped {s}: max per step {m.max(axis=0).tolist()}; " + + ", ".join( + f"{c['name']} exceed/step " + f"{uncapped_counts[c['name']][s]['n_draws_exceeding_cap_per_step']}" + for c in CONFIGS + ) + ) +else: + for name in dict.fromkeys(n for n in ("control", best, best_any_precision) if n): + cfg = next(c for c in CONFIGS if c["name"] == name) + uncapped_counts[name] = containing_counts(cfg, prior_draws) + u = uncapped_counts[name] + note( + f"uncapped {name}: max per step {u['max_per_step']}; draws exceeding cap " + f"{cfg['max_containing_size']}: {u['draws_exceeding_cap']}" + ) + +# --- 8. MCS no-unexplained-change gate (phase 4c) -------------------------------- +# A row with a LARGER cap than the control may change the image set only where the +# control's cap was truncating: an uncapped count > the control cap at some step of that +# draw (or, for a cap still too small, > the row's own cap). Every other draw must be +# bit-identical to the control (finite positions, log L, gradients, vmap values). + + +def _explain(sample, i, cap): + counts = count_matrices[sample][i].tolist() + ctrl_steps = [s for s, n in enumerate(counts) if n > PRODUCTION_MCS] + own_steps = [s for s, n in enumerate(counts) if n > cap] + return { + "uncapped_counts_per_step": counts, + "control_truncated_steps": ctrl_steps, + "row_truncated_steps": own_steps, + "explained": bool(ctrl_steps or own_steps), + } + + +def _position_change(sample, i, name): + a = finite_positions(raw_positions[sample]["control"][i]) + b = finite_positions(raw_positions[sample][name][i]) + if _same(a, b): + return None + ref = raw_positions[sample]["reference"][i] + cc, cr = compare_sets(ref, a), compare_sets(ref, b) + da, db = distinct(a), distinct(b) + if da.size and db.size: + d = np.hypot(da[:, None, 0] - db[None, :, 0], da[:, None, 1] - db[None, :, 1]) + shift = float(max(d.min(axis=1).max(), d.min(axis=0).max())) + else: + shift = None + return { + "draw": int(i), + "control_raw": int(a.shape[0]), + "row_raw": int(b.shape[0]), + "control_distinct": int(da.shape[0]), + "row_distinct": int(db.shape[0]), + "reference_distinct": cc["ref_distinct"], + "control_matches_reference": cc["multiplicity_match"], + "row_matches_reference": cr["multiplicity_match"], + "control_max_err_vs_reference": max(cc["errors"]) if cc["errors"] else None, + "row_max_err_vs_reference": max(cr["errors"]) if cr["errors"] else None, + "distinct_set_hausdorff_vs_control": shift, + "image_set_changed": bool(cc["cfg_distinct"] != cr["cfg_distinct"]) + or (shift is not None and shift > DISTINCT_TOL), + } + + +mcs_change = {} +if MCS_MODE: + ctrl_stream = [values["control"][k] for k in sorted(values["control"])] + for cfg in CONFIGS: + name = cfg["name"] + if name == "control": + continue + cap = cfg["max_containing_size"] + changes = [] + for sample in [s for s in ("prior", "stress") if raw_positions[s].get(name)]: + for i in range(len(raw_positions[sample]["control"])): + ch = _position_change(sample, i, name) + logl_differs = sample == "prior" and not _same( + config_logl[name][i], config_logl["control"][i] + ) + if ch is None and not logl_differs: + continue + ch = ch or {"draw": int(i), "positions_bit_identical": True} + ch["sample"] = sample + if sample == "prior": + ch["log_l_control"] = config_logl["control"][i] + ch["log_l_row"] = config_logl[name][i] + ch.update(_explain(sample, i, cap)) + changes.append(ch) + stream_changes = [] + for k in sorted(values["control"]): + if not _same(values[name].get(k), values["control"][k]): + stream_changes.append( + { + "stream_index": int(k), + "log_l_control": values["control"][k], + "log_l_row": values[name].get(k), + **_explain("stream", k, cap), + } + ) + grad_changes = [] + if name in grad_gate: + for k in range(len(grad_gate["control"]["gradients"])): + ga = np.asarray(grad_gate[name]["gradients"][k], dtype=float) + gc = np.asarray(grad_gate["control"]["gradients"][k], dtype=float) + if not _same(ga, gc): + ex = _explain("stream", k, cap) + rel = float(np.max(np.abs(ga - gc) / np.maximum(np.abs(gc), 1e-300))) + ex["max_rel_delta_vs_control"] = rel + if ( + not ex["explained"] + and rel <= GRAD_ROUNDING_RTOL + and _same(values[name].get(k), values["control"].get(k)) + ): + # log L bit-identical, gradient off by a few ulp: the backward + # pass accumulates cotangents over the padded (MCS, ...) axis, + # and a different padded length changes XLA's reduction order. + ex["explained"] = True + ex["explanation"] = "padded-length reduction rounding (log L bit-identical)" + grad_changes.append({"stream_index": int(k), **ex}) + vmap_changes = [] + for b in VMAP_BATCHES: + for bk, vals in (vvals.get((name, b)) or {}).items(): + cvals = (vvals.get(("control", b)) or {}).get(bk) + for j, (x, y) in enumerate(zip(vals, cvals or [])): + if not _same(x, y): + k = (bk * b + j) % len(stream) + vmap_changes.append( + { + "batch": b, + "batch_index": int(bk), + "stream_index": int(k), + **_explain("stream", k, cap), + } + ) + everything = changes + stream_changes + grad_changes + vmap_changes + unexplained = [c for c in everything if not c["explained"]] + fid_row = values[name].get(0) + mcs_change[name] = { + "max_containing_size": cap, + "fiducial_log_likelihood": fid_row, + "fiducial_repr": repr(fid_row), + "fiducial_bit_identical_to_expected": fid_row == FIDUCIAL_SOLVED_LOG_L, + "fiducial_bit_identical_to_control": fid_row == values["control"].get(0), + "fiducial_explanation": _explain("stream", 0, cap), + "stream_log_likelihood_bit_identical": [ + values[name].get(k) for k in sorted(values["control"]) + ] + == ctrl_stream, + "draw_changes": changes, + "n_image_set_changes": int(sum(bool(c.get("image_set_changed")) for c in changes)), + "stream_changes": stream_changes, + "grad_changes": grad_changes, + # Observed max relative gradient difference vs the control over the grad + # instances. The GRAD_ROUNDING_RTOL allowance applies ONLY here (MCS rows, + # whose padded (mcs, 2) shape reorders the backward sum) and only with log L + # bit-identical; step-0 route rows and the control stay strictly bit-identical. + "grad_max_rel_delta_vs_control": (grad_gate.get(name) or {}).get( + "max_rel_delta_vs_control" + ), + "grad_rounding_rtol": GRAD_ROUNDING_RTOL, + "vmap_changes": vmap_changes, + "n_unexplained": len(unexplained), + "unexplained": unexplained, + "pass": not unexplained, + } + note( + f"mcs gate {name}: {len(changes)} draw changes " + f"({mcs_change[name]['n_image_set_changes']} image-set), stream {len(stream_changes)}, " + f"grad {len(grad_changes)}, vmap {len(vmap_changes)}; unexplained {len(unexplained)}; " + f"fiducial {fid_row!r} bit-identical {fid_row == FIDUCIAL_SOLVED_LOG_L}" + ) + for c in changes: + note( + f" {name} {c['sample']} draw {c['draw']}: raw {c.get('control_raw')}->" + f"{c.get('row_raw')} distinct {c.get('control_distinct')}->{c.get('row_distinct')} " + f"(ref {c.get('reference_distinct')}); uncapped {c['uncapped_counts_per_step']}; " + f"explained {c['explained']}" + ) + gates["mcs_no_unexplained_change"] = mcs_change # =========================================================================== # Summary # =========================================================================== +CELL = ( + "solver_config_sweep_step0" + if STEP0_MODE + else ("solver_config_sweep_mcs" if MCS_MODE else "solver_config_sweep") +) config_name = _cli.config_name or ( "local_cpu_fp64" if jax.default_backend() == "cpu" else "unlabelled_device_fp64" ) @@ -1563,18 +1885,83 @@ def containing_counts(cfg, draws): } ) +mcs_headroom = None +if MCS_MODE: + _ctrl_compile = rows["control"]["compile"]["compile_s"] + mcs_headroom = {"control_max_containing_size": PRODUCTION_MCS, "rows": {}} + for t in table: + name = t["config"] + r = rows[name] + v16 = ((vmap_block or {}).get("rows") or {}).get(f"{name}_vmap16") or {} + u = uncapped_counts.get(name, {}) + mcs_headroom["rows"][name] = { + "mcs": t["mcs"], + "median_ms": t["median_ms"], + "control_over_row": r["speedup_vs_control"], + "row_over_control_median": 1.0 / t["speedup"] if t["speedup"] else None, + "compile_s": t["compile_s"], + "compile_ratio_vs_control": t["compile_s"] / _ctrl_compile if _ctrl_compile else None, + "temp_bytes": t["temp_bytes"], + "flops": t["flops"], + "vmap16_ms_per_likelihood": v16.get("median_ms_per_likelihood"), + "vmap16_control_over_row": v16.get("speedup_vs_control_same_batch"), + "prior_multiplicity_agreement": t["prior_multiplicity_agreement"], + "stress_multiplicity_agreement": t["stress_multiplicity_agreement"], + "prior_max_err": t["prior_max_err"], + "uncapped_max_per_step": {s: v["max_per_step"] for s, v in u.items()}, + "uncapped_max_over_steps": {s: v["max_over_steps"] for s, v in u.items()}, + "draws_exceeding_cap_per_step": { + s: v["draws_exceeding_cap_per_step"] for s, v in u.items() + }, + "n_draws_exceeding_cap": {s: len(v["draws_exceeding_cap"]) for s, v in u.items()}, + "fiducial_log_likelihood": r["fiducial_log_likelihood"], + "fiducial_bit_identical": r["fiducial_log_likelihood"] == FIDUCIAL_SOLVED_LOG_L, + "no_unexplained_change": (mcs_change.get(name) or {}).get("pass", True), + "n_image_set_changes": (mcs_change.get(name) or {}).get("n_image_set_changes", 0), + "grad_max_rel_delta_vs_control": (grad_gate.get(name) or {}).get( + "max_rel_delta_vs_control" + ), + } + _umax = max( + (max(v["max_over_steps"] for v in uncapped_counts["control"].values())), + 0, + ) + mcs_headroom["uncapped_max_over_all_samples_and_steps"] = int(_umax) + mcs_headroom["decision_rule"] = ( + "smallest N >= 18 with uncapped max <= N - 3, no unexplained change, compile <= +20 %, " + "scalar median cost <= ~5 % (human picks N at the step-2 checkpoint)" + ) + mcs_headroom["rule_candidates"] = [ + n + for n, v in mcs_headroom["rows"].items() + if n != "control" + and v["mcs"] >= 18 + and _umax <= v["mcs"] - 3 + and v["no_unexplained_change"] + and (v["compile_ratio_vs_control"] or 0) <= 1.20 + and (v["row_over_control_median"] or 0) <= 1.05 + ] + all_gates_pass = bool( gates["fiducial_bit_exact"]["pass"] 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()) + and all(g["pass"] for g in gates.get("mcs_no_unexplained_change", {}).values()) + and gates["patch_keeps_later_defaults"]["pass"] ) summary = { - "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", + "cell": CELL, + "issue": ( + "PyAutoLabs/PyAutoArray#579" + if STEP0_MODE + else ("PyAutoLabs/PyAutoArray#583" if MCS_MODE else "PyAutoLabs/autolens_profiling#314") + ), + "phase": "4b" if STEP0_MODE else ("4c" if MCS_MODE else "4a"), + "mcs_headroom_mode": MCS_MODE, + "production_max_containing_size": PRODUCTION_MCS, "step0_routes": STEP0_ROUTES, "library_step0_default": LIBRARY_STEP0_DEFAULT, "config_name": config_name, @@ -1659,6 +2046,7 @@ def containing_counts(cfg, draws): "vmap": vmap_block, "step0_split": step0_split, "uncapped_containing_counts": uncapped_counts, + "mcs_headroom": mcs_headroom, "gates": gates, "all_gates_pass": all_gates_pass, "completeness_compile": { @@ -1671,10 +2059,8 @@ 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_step0_local" - if STEP0_MODE - else "solver_config_sweep_local", - cell="solver_config_sweep_step0" if STEP0_MODE else "solver_config_sweep", + default_basename=f"{CELL}_local", + cell=CELL, ) dict_path.write_text(json.dumps(_scrub(summary), indent=2, default=str)) @@ -1749,6 +2135,30 @@ def f(x, fmt): print(f" best admissible (precision-equivalent): {best}; any precision: {best_any_precision}") print(f" reference image extent: {reference_image_extent}") print(f" fiducial gate: {gates['fiducial_bit_exact']}") +if mcs_headroom: + print("-" * 150) + print( + f" {'config':<7} {'mcs':>3} {'med_ms':>7} {'row/ctrl':>8} {'ctrl/row [90% CI]':>22} " + f"{'compile':>7} {'temp_B':>10} {'flops':>10} {'v16ms/L':>8} {'mult':>5} {'s_mult':>6} " + f"{'img-chg':>7} {'ok':>3} uncapped max/step (prior) | exceed/step (prior; stress)" + ) + for n, v in mcs_headroom["rows"].items(): + c = v["control_over_row"] + print( + f" {n:<7} {v['mcs']:3d} {v['median_ms']:7.3f} {v['row_over_control_median']:8.4f} " + f"{c['ratio']:6.4f} [{c['ci90_low']:.4f}, {c['ci90_high']:.4f}] " + f"{v['compile_s']:7.2f} {str(v['temp_bytes']):>10} {str(v['flops']):>10} " + f"{(v['vmap16_ms_per_likelihood'] or float('nan')):8.4f} " + f"{v['prior_multiplicity_agreement']:5.3f} {(v['stress_multiplicity_agreement'] or float('nan')):6.3f} " + f"{v['n_image_set_changes']:7d} {str(v['no_unexplained_change'])[0]:>3} " + f"{v['uncapped_max_per_step'].get('prior')} | " + f"{[len(x) for x in v['draws_exceeding_cap_per_step'].get('prior', [])]}; " + f"{[len(x) for x in v['draws_exceeding_cap_per_step'].get('stress', [])]}" + ) + print( + f" uncapped max over all samples and steps: {mcs_headroom['uncapped_max_over_all_samples_and_steps']}" + ) + print(f" rule candidates: {mcs_headroom['rule_candidates']}") print(f" all_gates_pass: {all_gates_pass}") print(f" wall: {summary['wall_s']:.0f} s") print(f" Results JSON: {dict_path}")