From 6cae9d47a218376b7a0956377ded383029ab2ea0 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Sun, 24 May 2026 17:35:21 +0100 Subject: [PATCH] jax_profiling/results/jit: A100 alma_high results (interferometer + datacube delaunay) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds 4 alma_high JSON artifacts and 2 per-cell comparison outputs from the 2026-05-24 HPC sweep. Unblocked by PyAutoArray#330 (TransformerNUFFT chunk_size knob) + autolens_profiling#TBD (chunk_size wiring + pixel_scale fix 0.125 → 0.025). Headlines: - interferometer/delaunay × alma_high (5M vis, 280-px mask) = 98 ms / call - datacube/delaunay × alma_high = eager log_evidence verified Completes the 12-cell A100 sweep: {sma, alma, alma_high} × {interferometer, datacube} × {fp64, mp}. Per-call cost tracks mask FFT extent, not visibility count — going sma → alma → alma_high, n_vis scales 5263× but per-call time only scales 3× (33 → 45 → 98 ms). See autolens_profiling/likelihood_runtime/OPTIMIZATION_NOTES.md alma_high sections for the full scaling table. Co-Authored-By: Claude Opus 4.7 --- .../delaunay/alma_high/comparison.json | 136 ++++++++++++++++++ .../delaunay/alma_high/hpc_a100_fp64.json | 65 +++++++++ .../delaunay/alma_high/hpc_a100_mp.json | 65 +++++++++ .../delaunay/alma_high/comparison.json | 66 +++++++++ .../delaunay/alma_high/comparison.png | Bin 0 -> 34617 bytes .../delaunay/alma_high/hpc_a100_fp64.json | 29 ++++ .../delaunay/alma_high/hpc_a100_mp.json | 29 ++++ 7 files changed, 390 insertions(+) create mode 100644 jax_profiling/results/jit/datacube/delaunay/alma_high/comparison.json create mode 100644 jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_fp64.json create mode 100644 jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_mp.json create mode 100644 jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.json create mode 100644 jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.png create mode 100644 jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_fp64.json create mode 100644 jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_mp.json diff --git a/jax_profiling/results/jit/datacube/delaunay/alma_high/comparison.json b/jax_profiling/results/jit/datacube/delaunay/alma_high/comparison.json new file mode 100644 index 0000000..9081f16 --- /dev/null +++ b/jax_profiling/results/jit/datacube/delaunay/alma_high/comparison.json @@ -0,0 +1,136 @@ +{ + "configs": { + "hpc_a100_fp64": { + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33287 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "n_channels": 34, + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities_per_channel": 5000000, + "hilbert_pixels": 500, + "delaunay_vertices": 500, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "cube_log_evidence_eager": -2048222823.6831546, + "cube_log_evidence_jit": null, + "log_evidence_per_channel_eager": [ + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695 + ], + "full_pipeline_cube_single_jit": NaN, + "shared_lwl_savings_estimate": null, + "vmap": "SKIPPED \u2014 cube batching axis is 'datasets', not 'parameters'", + "config_name": "hpc_a100_fp64" + }, + "hpc_a100_mp": { + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33287 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "n_channels": 34, + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities_per_channel": 5000000, + "hilbert_pixels": 500, + "delaunay_vertices": 500, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "cube_log_evidence_eager": -2048222823.6695518, + "cube_log_evidence_jit": null, + "log_evidence_per_channel_eager": [ + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686 + ], + "full_pipeline_cube_single_jit": NaN, + "shared_lwl_savings_estimate": null, + "vmap": "SKIPPED \u2014 cube batching axis is 'datasets', not 'parameters'", + "config_name": "hpc_a100_mp" + } + } +} \ No newline at end of file diff --git a/jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_fp64.json b/jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_fp64.json new file mode 100644 index 0000000..c6b32fa --- /dev/null +++ b/jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_fp64.json @@ -0,0 +1,65 @@ +{ + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33287 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "n_channels": 34, + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities_per_channel": 5000000, + "hilbert_pixels": 500, + "delaunay_vertices": 500, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "cube_log_evidence_eager": -2048222823.6831546, + "cube_log_evidence_jit": null, + "log_evidence_per_channel_eager": [ + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695, + -60241847.75538695 + ], + "full_pipeline_cube_single_jit": NaN, + "shared_lwl_savings_estimate": null, + "vmap": "SKIPPED \u2014 cube batching axis is 'datasets', not 'parameters'" +} \ No newline at end of file diff --git a/jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_mp.json b/jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_mp.json new file mode 100644 index 0000000..010799a --- /dev/null +++ b/jax_profiling/results/jit/datacube/delaunay/alma_high/hpc_a100_mp.json @@ -0,0 +1,65 @@ +{ + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33287 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "n_channels": 34, + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities_per_channel": 5000000, + "hilbert_pixels": 500, + "delaunay_vertices": 500, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "cube_log_evidence_eager": -2048222823.6695518, + "cube_log_evidence_jit": null, + "log_evidence_per_channel_eager": [ + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686, + -60241847.75498686 + ], + "full_pipeline_cube_single_jit": NaN, + "shared_lwl_savings_estimate": null, + "vmap": "SKIPPED \u2014 cube batching axis is 'datasets', not 'parameters'" +} \ No newline at end of file diff --git a/jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.json b/jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.json new file mode 100644 index 0000000..43e208c --- /dev/null +++ b/jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.json @@ -0,0 +1,66 @@ +{ + "configs": { + "hpc_a100_fp64": { + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33441 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities": 5000000, + "hilbert_pixels": 1000, + "delaunay_vertices": 1000, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "log_likelihood_eager": -60238977.636567496, + "figure_of_merit_eager": -60243535.85638879, + "log_evidence_jit": -60243535.85638878, + "full_pipeline_single_jit": 0.09768839629832655, + "vmap": "SKIPPED \u2014 opt-in via DELAUNAY_VMAP=1", + "memory_mb": null, + "full_pipeline_per_call": 0.09768839629832655, + "config_name": "hpc_a100_fp64" + }, + "hpc_a100_mp": { + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33441 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities": 5000000, + "hilbert_pixels": 1000, + "delaunay_vertices": 1000, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "log_likelihood_eager": -60238977.636564635, + "figure_of_merit_eager": -60243535.85614109, + "log_evidence_jit": -60243535.85614108, + "full_pipeline_single_jit": 0.10049871581140905, + "vmap": "SKIPPED \u2014 opt-in via DELAUNAY_VMAP=1", + "memory_mb": null, + "full_pipeline_per_call": 0.10049871581140905, + "config_name": "hpc_a100_mp" + } + } +} \ No newline at end of file diff --git a/jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.png b/jax_profiling/results/jit/interferometer/delaunay/alma_high/comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..6a9b4eece29e38c038167033d0e7363f3e7ecb4d GIT binary patch literal 34617 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 literal 0 HcmV?d00001 diff --git a/jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_fp64.json b/jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_fp64.json new file mode 100644 index 0000000..11040fe --- /dev/null +++ b/jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_fp64.json @@ -0,0 +1,29 @@ +{ + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33441 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities": 5000000, + "hilbert_pixels": 1000, + "delaunay_vertices": 1000, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "log_likelihood_eager": -60238977.636567496, + "figure_of_merit_eager": -60243535.85638879, + "log_evidence_jit": -60243535.85638878, + "full_pipeline_single_jit": 0.09768839629832655, + "vmap": "SKIPPED \u2014 opt-in via DELAUNAY_VMAP=1", + "memory_mb": null +} \ No newline at end of file diff --git a/jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_mp.json b/jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_mp.json new file mode 100644 index 0000000..c984ce5 --- /dev/null +++ b/jax_profiling/results/jit/interferometer/delaunay/alma_high/hpc_a100_mp.json @@ -0,0 +1,29 @@ +{ + "autolens_version": "2026.5.14.2", + "device": { + "backend": "gpu", + "device": "cuda:0", + "nvidia_smi": "NVIDIA A100 80GB PCIe, 33441 MiB, 81920 MiB" + }, + "instrument": "alma_high", + "model": "delaunay", + "configuration": { + "pixel_scale_arcsec": 0.025, + "mask_radius_arcsec": 3.5, + "real_space_shape": [ + 800, + 800 + ], + "visibilities": 5000000, + "hilbert_pixels": 1000, + "delaunay_vertices": 1000, + "edge_zeroed_pixels": 0, + "regularization_coefficient": 1.0 + }, + "log_likelihood_eager": -60238977.636564635, + "figure_of_merit_eager": -60243535.85614109, + "log_evidence_jit": -60243535.85614108, + "full_pipeline_single_jit": 0.10049871581140905, + "vmap": "SKIPPED \u2014 opt-in via DELAUNAY_VMAP=1", + "memory_mb": null +} \ No newline at end of file