SPB Git

spb/wp33_uqo

Public MIT

docs/FINAL-REPORT.md (session 1)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Nov 1, 2026) parent f5650ca Browse files

3 changed files +103 −0

modified benchmarks/raw/gateG/energy_laptop/bench.jsonl +4 −0
@@ -30,3 +30,7 @@
30 {"backend": "titan", "capacity": 64, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": false, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 64 --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "7c1fb41"}, "seed": 0, "warmup": false, "repeat": 2, "family": "general", "prompt": "Describe the main differences between a Mac Studio and a Mac", "ts": "2026-11-01T01:25:31", "prompt_tokens": 18, "gen_tokens": 256, "ttft_ms": 18.278000061400235, "prompt_tps": 1000.6925920853079, "gen_tps": 461.85046685233317, "decode_tps_wall": 460.05774178287794, "itl_ms_p50": 2.151958062313497, "itl_ms_p95": 2.234625048004091, "itl_ms_p99": 2.319667022675276, "itl_ms_mean": 2.173640195955979, "total_s": 0.5725562500301749, "peak_mem_gb": 3.96817326, "text": "\n\nMac Studio:\n- More powerful hardware options, including multiple GPUs and more RAM.\n- Higher-end CPU options, often with more cores and higher clock speeds.\n- Larger display with a higher resolution", "t_start_epoch": 1793514330.503915, "t_end_epoch": 1793514331.078241, "t_first_epoch": 1793514330.522193, "cache_hit_rate": 1.0, "cache_misses": 0, "cache_hits": 35072, "stall_s": 0.0, "hits_device": 35072, "layers_complete": 16, "prefetch": null, "host_time_s": {"sync": 0.0, "prefetch": 0.0, "ensure": 0.0, "build": 0.0}, "ssd_bytes": 0, "ssd_read_s": 0.0} 30 {"backend": "titan", "capacity": 64, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": false, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 64 --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "7c1fb41"}, "seed": 0, "warmup": false, "repeat": 2, "family": "general", "prompt": "Describe the main differences between a Mac Studio and a Mac", "ts": "2026-11-01T01:25:31", "prompt_tokens": 18, "gen_tokens": 256, "ttft_ms": 18.278000061400235, "prompt_tps": 1000.6925920853079, "gen_tps": 461.85046685233317, "decode_tps_wall": 460.05774178287794, "itl_ms_p50": 2.151958062313497, "itl_ms_p95": 2.234625048004091, "itl_ms_p99": 2.319667022675276, "itl_ms_mean": 2.173640195955979, "total_s": 0.5725562500301749, "peak_mem_gb": 3.96817326, "text": "\n\nMac Studio:\n- More powerful hardware options, including multiple GPUs and more RAM.\n- Higher-end CPU options, often with more cores and higher clock speeds.\n- Larger display with a higher resolution", "t_start_epoch": 1793514330.503915, "t_end_epoch": 1793514331.078241, "t_first_epoch": 1793514330.522193, "cache_hit_rate": 1.0, "cache_misses": 0, "cache_hits": 35072, "stall_s": 0.0, "hits_device": 35072, "layers_complete": 16, "prefetch": null, "host_time_s": {"sync": 0.0, "prefetch": 0.0, "ensure": 0.0, "build": 0.0}, "ssd_bytes": 0, "ssd_read_s": 0.0}
31 {"backend": "titan", "capacity": 64, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": false, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 64 --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "7c1fb41"}, "seed": 0, "warmup": false, "repeat": 2, "family": "code", "prompt": "Write a bash script that lists the ten largest files under a", "ts": "2026-11-01T01:25:31", "prompt_tokens": 19, "gen_tokens": 256, "ttft_ms": 18.404333968646824, "prompt_tps": 1049.8107592380431, "gen_tps": 460.615534664283, "decode_tps_wall": 458.8322514676528, "itl_ms_p50": 2.1516670240089297, "itl_ms_p95": 2.2910829866304994, "itl_ms_p99": 2.730917069129646, "itl_ms_mean": 2.1794457490756813, "total_s": 0.5741629999829456, "peak_mem_gb": 3.968485162, "text": "#!/bin/bash\n\n# Specify the directory\ndir=\"/path/to/directory\"\n\n# Get the size of each file and store it in an array\nfiles=( $(ls -l \"$dir\" | awk '{print $5, $9}') )\n\n# Sort the array in descending ord", "t_start_epoch": 1793514331.0783691, "t_end_epoch": 1793514331.654183, "t_first_epoch": 1793514331.0967734, "cache_hit_rate": 1.0, "cache_misses": 0, "cache_hits": 35200, "stall_s": 0.0, "hits_device": 35200, "layers_complete": 16, "prefetch": null, "host_time_s": {"sync": 0.0, "prefetch": 0.0, "ensure": 0.0, "build": 0.0}, "ssd_bytes": 0, "ssd_read_s": 0.0} 31 {"backend": "titan", "capacity": 64, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": false, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 64 --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "7c1fb41"}, "seed": 0, "warmup": false, "repeat": 2, "family": "code", "prompt": "Write a bash script that lists the ten largest files under a", "ts": "2026-11-01T01:25:31", "prompt_tokens": 19, "gen_tokens": 256, "ttft_ms": 18.404333968646824, "prompt_tps": 1049.8107592380431, "gen_tps": 460.615534664283, "decode_tps_wall": 458.8322514676528, "itl_ms_p50": 2.1516670240089297, "itl_ms_p95": 2.2910829866304994, "itl_ms_p99": 2.730917069129646, "itl_ms_mean": 2.1794457490756813, "total_s": 0.5741629999829456, "peak_mem_gb": 3.968485162, "text": "#!/bin/bash\n\n# Specify the directory\ndir=\"/path/to/directory\"\n\n# Get the size of each file and store it in an array\nfiles=( $(ls -l \"$dir\" | awk '{print $5, $9}') )\n\n# Sort the array in descending ord", "t_start_epoch": 1793514331.0783691, "t_end_epoch": 1793514331.654183, "t_first_epoch": 1793514331.0967734, "cache_hit_rate": 1.0, "cache_misses": 0, "cache_hits": 35200, "stall_s": 0.0, "hits_device": 35200, "layers_complete": 16, "prefetch": null, "host_time_s": {"sync": 0.0, "prefetch": 0.0, "ensure": 0.0, "build": 0.0}, "ssd_bytes": 0, "ssd_read_s": 0.0}
32 {"backend": "titan", "capacity": 64, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": false, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 64 --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "7c1fb41"}, "seed": 0, "warmup": false, "repeat": 2, "family": "code", "prompt": "Write a C function that computes the dot product of two floa", "ts": "2026-11-01T01:25:32", "prompt_tokens": 24, "gen_tokens": 256, "ttft_ms": 20.47570899594575, "prompt_tps": 1189.8515750321321, "gen_tps": 459.3398270654975, "decode_tps_wall": 457.5545624763554, "itl_ms_p50": 2.160334028303623, "itl_ms_p95": 2.314708079211414, "itl_ms_p99": 2.6427090633660555, "itl_ms_mean": 2.185531698313414, "total_s": 0.5777862920658663, "peak_mem_gb": 3.96819798, "text": "#include <arm_neon.h>\n\nfloat dot_product_neon(const float *a, const float *b, int len) {\n // TODO: Implement the dot product computation using NEON intrinsics\n // Start by loading the arrays int", "t_start_epoch": 1793514331.654289, "t_end_epoch": 1793514332.23374, "t_first_epoch": 1793514331.6747646, "cache_hit_rate": 1.0, "cache_misses": 0, "cache_hits": 35840, "stall_s": 0.0, "hits_device": 35840, "layers_complete": 16, "prefetch": null, "host_time_s": {"sync": 0.0, "prefetch": 0.0, "ensure": 0.0, "build": 0.0}, "ssd_bytes": 0, "ssd_read_s": 0.0} 32 {"backend": "titan", "capacity": 64, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": false, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 64 --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "7c1fb41"}, "seed": 0, "warmup": false, "repeat": 2, "family": "code", "prompt": "Write a C function that computes the dot product of two floa", "ts": "2026-11-01T01:25:32", "prompt_tokens": 24, "gen_tokens": 256, "ttft_ms": 20.47570899594575, "prompt_tps": 1189.8515750321321, "gen_tps": 459.3398270654975, "decode_tps_wall": 457.5545624763554, "itl_ms_p50": 2.160334028303623, "itl_ms_p95": 2.314708079211414, "itl_ms_p99": 2.6427090633660555, "itl_ms_mean": 2.185531698313414, "total_s": 0.5777862920658663, "peak_mem_gb": 3.96819798, "text": "#include <arm_neon.h>\n\nfloat dot_product_neon(const float *a, const float *b, int len) {\n // TODO: Implement the dot product computation using NEON intrinsics\n // Start by loading the arrays int", "t_start_epoch": 1793514331.654289, "t_end_epoch": 1793514332.23374, "t_first_epoch": 1793514331.6747646, "cache_hit_rate": 1.0, "cache_misses": 0, "cache_hits": 35840, "stall_s": 0.0, "hits_device": 35840, "layers_complete": 16, "prefetch": null, "host_time_s": {"sync": 0.0, "prefetch": 0.0, "ensure": 0.0, "build": 0.0}, "ssd_bytes": 0, "ssd_read_s": 0.0}
33+{"backend": "titan", "capacity": 16, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": true, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 16 --nocache --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "f5650ca"}, "seed": 0, "warmup": true, "repeat": -1, "family": "code", "prompt": "Write a C function that computes the dot product of two floa", "ts": "2026-11-01T01:25:49", "prompt_tokens": 24, "gen_tokens": 256, "ttft_ms": 681.5088340081275, "prompt_tps": 35.92091785376569, "gen_tps": 36.04984905510773, "decode_tps_wall": 35.90935907814803, "itl_ms_p50": 27.118458994664252, "itl_ms_p95": 39.64587510563433, "itl_ms_p99": 45.41833302937448, "itl_ms_mean": 27.847893297781837, "total_s": 7.782721624942496, "peak_mem_gb": 1.910503152, "text": "#include <arm_neon.h>\n\nfloat dot_product_neon(const float *a, const float *b, int len) {\n // TODO: Implement the dot product computation using NEON intrinsics\n // Start by loading the arrays int", "t_start_epoch": 1793514342.1837912, "t_end_epoch": 1793514349.968086, "t_first_epoch": 1793514342.8653, "cache_hit_rate": 0.6260782347041124, "cache_misses": 13048, "cache_hits": 21847, "stall_s": 4.144288406940177, "hits_device": 0, "layers_complete": 0, "prefetch": null, "host_time_s": {"sync": 3.2574736948590726, "prefetch": 0.0, "ensure": 4.2452745117479935, "build": 0.04861709603574127}, "ssd_bytes": 46176141312, "ssd_read_s": 9.930979262571782}
34+{"backend": "titan", "capacity": 16, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": true, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 16 --nocache --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "f5650ca"}, "seed": 0, "warmup": true, "repeat": -1, "family": "general", "prompt": "Describe the main differences between a Mac Studio and a Mac", "ts": "2026-11-01T01:25:58", "prompt_tokens": 18, "gen_tokens": 256, "ttft_ms": 473.99025002960116, "prompt_tps": 38.02749282251309, "gen_tps": 30.149703436329805, "decode_tps_wall": 30.03199408681774, "itl_ms_p50": 32.685291953384876, "itl_ms_p95": 43.34554204251617, "itl_ms_p99": 49.13512500934303, "itl_ms_mean": 33.29782221950225, "total_s": 8.964934916002676, "peak_mem_gb": 1.779299288, "text": "\n\nMac Studio:\n- More powerful hardware options, including multiple GPUs and more RAM.\n- Higher-end CPU options, often with more cores and higher clock speeds.\n- Larger display with a higher resolution", "t_start_epoch": 1793514349.968512, "t_end_epoch": 1793514358.9347358, "t_first_epoch": 1793514350.4425023, "cache_hit_rate": 0.5059072218683037, "cache_misses": 17063, "cache_hits": 17471, "stall_s": 4.963466331246309, "hits_device": 0, "layers_complete": 0, "prefetch": null, "host_time_s": {"sync": 3.586632123333402, "prefetch": 0.0, "ensure": 5.089648996130563, "build": 0.053854094934649765}, "ssd_bytes": 60385001472, "ssd_read_s": 12.836250820546411}
35+{"backend": "titan", "capacity": 16, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": true, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 16 --nocache --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "f5650ca"}, "seed": 0, "warmup": true, "repeat": -1, "family": "general", "prompt": "Summarize the history of the Rideau Canal in one paragraph.", "ts": "2026-11-01T01:26:07", "prompt_tokens": 14, "gen_tokens": 256, "ttft_ms": 449.9966250732541, "prompt_tps": 31.15616929910054, "gen_tps": 32.46190672778869, "decode_tps_wall": 32.33514887274489, "itl_ms_p50": 31.00487496703863, "itl_ms_p95": 41.70525004155934, "itl_ms_p99": 44.96754193678498, "itl_ms_mean": 30.926098529358995, "total_s": 8.336151750059798, "peak_mem_gb": 1.74502108, "text": "\n\nThe Rideau Canal, officially opened in 1832, was constructed by the British to connect Ottawa to Montreal via the Ottawa River. It was designed by Colonel John By and took approximately three years ", "t_start_epoch": 1793514358.934883, "t_end_epoch": 1793514367.2724721, "t_first_epoch": 1793514359.3848798, "cache_hit_rate": 0.49322548618816797, "cache_misses": 17355, "cache_hits": 16891, "stall_s": 4.965477578341961, "hits_device": 0, "layers_complete": 0, "prefetch": null, "host_time_s": {"sync": 3.010114970151335, "prefetch": 0.0, "ensure": 5.079476987943053, "build": 0.04450405645184219}, "ssd_bytes": 61418373120, "ssd_read_s": 13.378405682509765}
36+{"backend": "titan", "capacity": 16, "policy": "lru", "predictor": "none", "m": 8, "prefetch_workers": 2, "fused_upgate": false, "nocache": true, "max_tokens": 256, "split": "heldout", "tag": "energy", "model": "/Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b", "cmd": "benchmarks/scripts/bench_decode.py --model /Users/simon-pierreboucher/.cache/huggingface/hub/models--mlx-community--OLMoE-1B-7B-0125-Instruct-4bit/snapshots/e23844197887b031e7ddddbb0b8959c5a6853a7b --backend titan --capacity 16 --nocache --families general,code --split heldout --repeats 3 --max-tokens 256 --tag energy --out benchmarks/raw/gateG/energy_laptop/bench.jsonl", "env": {"host": "MacBookPro-de-simon-pierre-2.local", "chip": "Apple M5 Max", "ram_gb": 48, "macos": "27.0", "python": "3.12.13", "mlx": "0.32.4", "mlx_lm": "0.32.2", "numpy": "2.5.4", "git": "f5650ca"}, "seed": 0, "warmup": true, "repeat": -1, "family": "code", "prompt": "Write a bash script that lists the ten largest files under a", "ts": "2026-11-01T01:26:14", "prompt_tokens": 19, "gen_tokens": 256, "ttft_ms": 430.6972920894623, "prompt_tps": 44.19175033284113, "gen_tps": 35.12275901609846, "decode_tps_wall": 34.985638138366845, "itl_ms_p50": 27.491708053275943, "itl_ms_p95": 44.86395907588303, "itl_ms_p99": 47.699542017653584, "itl_ms_mean": 28.583157352884026, "total_s": 7.719402417074889, "peak_mem_gb": 1.775334664, "text": "#!/bin/bash\n\n# Specify the directory\ndir=\"/path/to/directory\"\n\n# Get the size of each file and store it in an array\nfiles=( $(ls -l \"$dir\" | awk '{print $5, $9}') )\n\n# Sort the array in descending ord", "t_start_epoch": 1793514367.272643, "t_end_epoch": 1793514374.9930902, "t_first_epoch": 1793514367.7033403, "cache_hit_rate": 0.6598117811084001, "cache_misses": 11712, "cache_hits": 22716, "stall_s": 4.332302771508694, "hits_device": 0, "layers_complete": 0, "prefetch": null, "host_time_s": {"sync": 3.0599256032146513, "prefetch": 0.0, "ensure": 4.420602378551848, "build": 0.04536858550272882}, "ssd_bytes": 41448112128, "ssd_read_s": 10.390336600947194}
modified benchmarks/raw/gateG/energy_laptop/power.jsonl +49 −0
@@ -36,3 +36,52 @@
36 {"t": 1793514332.299674, "elapsed_ns": 1021573166, "cpu_mW": 15170.7, "gpu_mW": 31157.8, "ane_mW": 0.0, "combined_mW": 46328.5, "thermal_pressure": "Nominal"} 36 {"t": 1793514332.299674, "elapsed_ns": 1021573166, "cpu_mW": 15170.7, "gpu_mW": 31157.8, "ane_mW": 0.0, "combined_mW": 46328.5, "thermal_pressure": "Nominal"}
37 {"t": 1793514333.3209531, "elapsed_ns": 1021180500, "cpu_mW": 17384.8, "gpu_mW": 29319.0, "ane_mW": 0.0, "combined_mW": 46703.8, "thermal_pressure": "Nominal"} 37 {"t": 1793514333.3209531, "elapsed_ns": 1021180500, "cpu_mW": 17384.8, "gpu_mW": 29319.0, "ane_mW": 0.0, "combined_mW": 46703.8, "thermal_pressure": "Nominal"}
38 {"t": 1793514334.343148, "elapsed_ns": 1021683166, "cpu_mW": 7718.64, "gpu_mW": 564.754, "ane_mW": 0.0, "combined_mW": 8283.39, "thermal_pressure": "Nominal"} 38 {"t": 1793514334.343148, "elapsed_ns": 1021683166, "cpu_mW": 7718.64, "gpu_mW": 564.754, "ane_mW": 0.0, "combined_mW": 8283.39, "thermal_pressure": "Nominal"}
39+{"t": 1793514335.364529, "elapsed_ns": 1021338791, "cpu_mW": 8450.67, "gpu_mW": 54.83, "ane_mW": 0.0, "combined_mW": 8505.5, "thermal_pressure": "Nominal"}
40+{"t": 1793514337.409098, "elapsed_ns": 1022017208, "cpu_mW": 14203.3, "gpu_mW": 71.4274, "ane_mW": 0.0, "combined_mW": 14274.7, "thermal_pressure": "Nominal"}
41+{"t": 1793514337.410677, "elapsed_ns": 1021429083, "cpu_mW": 12358.2, "gpu_mW": 57.7622, "ane_mW": 0.0, "combined_mW": 12415.9, "thermal_pressure": "Nominal"}
42+{"t": 1793514338.436251, "elapsed_ns": 1021987958, "cpu_mW": 13322.1, "gpu_mW": 59.6876, "ane_mW": 0.0, "combined_mW": 13381.8, "thermal_pressure": "Nominal"}
43+{"t": 1793514339.451741, "elapsed_ns": 1022769583, "cpu_mW": 9894.7, "gpu_mW": 58.6642, "ane_mW": 0.0, "combined_mW": 9953.37, "thermal_pressure": "Nominal"}
44+{"t": 1793514340.473356, "elapsed_ns": 1021216916, "cpu_mW": 6859.46, "gpu_mW": 64.6288, "ane_mW": 0.0, "combined_mW": 6924.09, "thermal_pressure": "Nominal"}
45+{"t": 1793514341.494365, "elapsed_ns": 1021385625, "cpu_mW": 10634.6, "gpu_mW": 50.9112, "ane_mW": 0.0, "combined_mW": 10685.5, "thermal_pressure": "Nominal"}
46+{"t": 1793514342.518663, "elapsed_ns": 1020562125, "cpu_mW": 18812.2, "gpu_mW": 58.7911, "ane_mW": 0.0, "combined_mW": 18871.0, "thermal_pressure": "Nominal"}
47+{"t": 1793514343.536535, "elapsed_ns": 1020704333, "cpu_mW": 17817.1, "gpu_mW": 347.799, "ane_mW": 0.0, "combined_mW": 18164.9, "thermal_pressure": "Nominal"}
48+{"t": 1793514345.579092, "elapsed_ns": 1021848125, "cpu_mW": 15409.3, "gpu_mW": 1246.76, "ane_mW": 0.0, "combined_mW": 16656.1, "thermal_pressure": "Nominal"}
49+{"t": 1793514345.581203, "elapsed_ns": 1020542875, "cpu_mW": 19606.2, "gpu_mW": 1345.36, "ane_mW": 0.0, "combined_mW": 20951.6, "thermal_pressure": "Nominal"}
50+{"t": 1793514346.600909, "elapsed_ns": 1021270791, "cpu_mW": 19897.8, "gpu_mW": 1264.11, "ane_mW": 0.0, "combined_mW": 21161.9, "thermal_pressure": "Nominal"}
51+{"t": 1793514347.622017, "elapsed_ns": 1021507666, "cpu_mW": 19872.6, "gpu_mW": 1287.31, "ane_mW": 0.0, "combined_mW": 21159.9, "thermal_pressure": "Nominal"}
52+{"t": 1793514348.644427, "elapsed_ns": 1021215666, "cpu_mW": 19137.0, "gpu_mW": 1306.29, "ane_mW": 0.0, "combined_mW": 20443.3, "thermal_pressure": "Nominal"}
53+{"t": 1793514349.666456, "elapsed_ns": 1022055624, "cpu_mW": 21385.3, "gpu_mW": 1230.85, "ane_mW": 0.0, "combined_mW": 22616.2, "thermal_pressure": "Nominal"}
54+{"t": 1793514350.688239, "elapsed_ns": 1022623416, "cpu_mW": 18802.6, "gpu_mW": 1345.56, "ane_mW": 0.0, "combined_mW": 20148.2, "thermal_pressure": "Nominal"}
55+{"t": 1793514351.7116008, "elapsed_ns": 1022075041, "cpu_mW": 19923.2, "gpu_mW": 1259.2, "ane_mW": 0.0, "combined_mW": 21182.4, "thermal_pressure": "Nominal"}
56+{"t": 1793514353.7542431, "elapsed_ns": 1021890708, "cpu_mW": 20088.3, "gpu_mW": 1219.31, "ane_mW": 0.0, "combined_mW": 21307.6, "thermal_pressure": "Nominal"}
57+{"t": 1793514353.7564192, "elapsed_ns": 1022487208, "cpu_mW": 19738.1, "gpu_mW": 1273.37, "ane_mW": 0.0, "combined_mW": 21011.5, "thermal_pressure": "Nominal"}
58+{"t": 1793514354.7763982, "elapsed_ns": 1021383291, "cpu_mW": 22452.9, "gpu_mW": 1262.01, "ane_mW": 0.0, "combined_mW": 23714.9, "thermal_pressure": "Nominal"}
59+{"t": 1793514355.798235, "elapsed_ns": 1021724249, "cpu_mW": 20232.5, "gpu_mW": 1188.19, "ane_mW": 0.0, "combined_mW": 21420.7, "thermal_pressure": "Nominal"}
60+{"t": 1793514356.820079, "elapsed_ns": 1022284791, "cpu_mW": 20030.6, "gpu_mW": 1200.25, "ane_mW": 0.0, "combined_mW": 21230.9, "thermal_pressure": "Nominal"}
61+{"t": 1793514357.842001, "elapsed_ns": 1021075583, "cpu_mW": 20431.4, "gpu_mW": 1194.82, "ane_mW": 0.0, "combined_mW": 21626.2, "thermal_pressure": "Nominal"}
62+{"t": 1793514358.863903, "elapsed_ns": 1021810583, "cpu_mW": 21001.0, "gpu_mW": 1142.09, "ane_mW": 0.0, "combined_mW": 22143.0, "thermal_pressure": "Nominal"}
63+{"t": 1793514359.885142, "elapsed_ns": 1021967041, "cpu_mW": 21009.5, "gpu_mW": 1142.89, "ane_mW": 0.0, "combined_mW": 22152.4, "thermal_pressure": "Nominal"}
64+{"t": 1793514360.906668, "elapsed_ns": 1021977208, "cpu_mW": 19943.7, "gpu_mW": 1056.78, "ane_mW": 0.0, "combined_mW": 21000.5, "thermal_pressure": "Nominal"}
65+{"t": 1793514362.950165, "elapsed_ns": 1021962208, "cpu_mW": 17685.6, "gpu_mW": 1181.06, "ane_mW": 0.0, "combined_mW": 18866.6, "thermal_pressure": "Nominal"}
66+{"t": 1793514362.951874, "elapsed_ns": 1021658458, "cpu_mW": 18158.7, "gpu_mW": 1231.33, "ane_mW": 0.0, "combined_mW": 19390.0, "thermal_pressure": "Nominal"}
67+{"t": 1793514363.9721038, "elapsed_ns": 1021984041, "cpu_mW": 17573.7, "gpu_mW": 1425.66, "ane_mW": 0.0, "combined_mW": 18999.3, "thermal_pressure": "Nominal"}
68+{"t": 1793514364.994241, "elapsed_ns": 1021676166, "cpu_mW": 17695.4, "gpu_mW": 1448.6, "ane_mW": 0.0, "combined_mW": 19144.0, "thermal_pressure": "Nominal"}
69+{"t": 1793514366.015382, "elapsed_ns": 1021885791, "cpu_mW": 18167.4, "gpu_mW": 1393.5, "ane_mW": 0.0, "combined_mW": 19560.9, "thermal_pressure": "Nominal"}
70+{"t": 1793514367.039737, "elapsed_ns": 1022064249, "cpu_mW": 17781.7, "gpu_mW": 1400.11, "ane_mW": 0.0, "combined_mW": 19181.8, "thermal_pressure": "Nominal"}
71+{"t": 1793514368.057848, "elapsed_ns": 1021374291, "cpu_mW": 17115.2, "gpu_mW": 1439.24, "ane_mW": 0.0, "combined_mW": 18554.4, "thermal_pressure": "Nominal"}
72+{"t": 1793514369.0798411, "elapsed_ns": 1021161374, "cpu_mW": 17220.6, "gpu_mW": 1634.41, "ane_mW": 0.0, "combined_mW": 18855.0, "thermal_pressure": "Nominal"}
73+{"t": 1793514371.122431, "elapsed_ns": 1021361750, "cpu_mW": 14153.7, "gpu_mW": 2055.1, "ane_mW": 0.0, "combined_mW": 16208.8, "thermal_pressure": "Nominal"}
74+{"t": 1793514371.1244779, "elapsed_ns": 1021877624, "cpu_mW": 15717.1, "gpu_mW": 1509.97, "ane_mW": 0.0, "combined_mW": 17227.1, "thermal_pressure": "Nominal"}
75+{"t": 1793514372.143944, "elapsed_ns": 1020926791, "cpu_mW": 16651.5, "gpu_mW": 1158.75, "ane_mW": 0.0, "combined_mW": 17810.3, "thermal_pressure": "Nominal"}
76+{"t": 1793514373.165526, "elapsed_ns": 1021312583, "cpu_mW": 19173.4, "gpu_mW": 1071.17, "ane_mW": 0.0, "combined_mW": 20244.5, "thermal_pressure": "Nominal"}
77+{"t": 1793514374.187138, "elapsed_ns": 1021745083, "cpu_mW": 20283.9, "gpu_mW": 1136.29, "ane_mW": 0.0, "combined_mW": 21420.2, "thermal_pressure": "Nominal"}
78+{"t": 1793514375.208361, "elapsed_ns": 1021618583, "cpu_mW": 20986.3, "gpu_mW": 1054.21, "ane_mW": 0.0, "combined_mW": 22040.5, "thermal_pressure": "Nominal"}
79+{"t": 1793514376.229694, "elapsed_ns": 1020768458, "cpu_mW": 20639.4, "gpu_mW": 910.099, "ane_mW": 0.0, "combined_mW": 21549.5, "thermal_pressure": "Nominal"}
80+{"t": 1793514377.25186, "elapsed_ns": 1021746541, "cpu_mW": 22732.6, "gpu_mW": 1132.37, "ane_mW": 0.0, "combined_mW": 23865.0, "thermal_pressure": "Nominal"}
81+{"t": 1793514378.27372, "elapsed_ns": 1021494583, "cpu_mW": 23866.0, "gpu_mW": 1140.49, "ane_mW": 0.0, "combined_mW": 25006.5, "thermal_pressure": "Nominal"}
82+{"t": 1793514380.316034, "elapsed_ns": 1021960999, "cpu_mW": 22522.4, "gpu_mW": 986.339, "ane_mW": 0.0, "combined_mW": 23508.7, "thermal_pressure": "Nominal"}
83+{"t": 1793514380.317816, "elapsed_ns": 1021451416, "cpu_mW": 21936.4, "gpu_mW": 985.852, "ane_mW": 0.0, "combined_mW": 22922.3, "thermal_pressure": "Nominal"}
84+{"t": 1793514381.338368, "elapsed_ns": 1021538916, "cpu_mW": 27084.6, "gpu_mW": 1013.18, "ane_mW": 0.0, "combined_mW": 28097.8, "thermal_pressure": "Nominal"}
85+{"t": 1793514382.3597271, "elapsed_ns": 1020930916, "cpu_mW": 33065.9, "gpu_mW": 921.708, "ane_mW": 0.0, "combined_mW": 33987.6, "thermal_pressure": "Nominal"}
86+{"t": 1793514383.381633, "elapsed_ns": 1022480000, "cpu_mW": 33172.3, "gpu_mW": 973.124, "ane_mW": 0.0, "combined_mW": 34145.4, "thermal_pressure": "Nominal"}
87+{"t": 1793514384.4036071, "elapsed_ns": 1021607958, "cpu_mW": 31626.6, "gpu_mW": 989.616, "ane_mW": 0.0, "combined_mW": 32616.2, "thermal_pressure": "Nominal"}
added docs/FINAL-REPORT.md +50 −0
@@ -0,0 +1,50 @@
1+# WP33 TITAN-MoE — final report of session 1 (2026-11-01)
2+
3+Everything below links to a file in this repository; nothing is claimed without one. Status words: **implemented** (code exists and is
4+exercised by a test or a benchmark), **verified** (a raw log under `benchmarks/raw/` supports the stated number), **unverified**
5+(implemented, no measurement yet), **blocked** (needs a resource or authorization the agent does not have).
6+
7+## 1. Implemented and verified
8+
9+| Deliverable | Evidence |
10+|---|---|
11+| Live hardware inventory (21 reachable Macs; 8 aliases unreachable), 1 GbE everywhere, no active Thunderbolt link | `artifacts/environment.json`; raw probes in `artifacts/private/` (not committed); `research/LOG.md` 2026-11-01 |
12+| Network characterization: iperf3 0.945–0.947 Gbit/s between Studios, RTT 0.5–1.0 ms, app-level ping 0.74–1.17 ms | `artifacts/private/netprobe*.txt`, `benchmarks/raw/gateE/remote_cost_breakdown_m3u96a_m3u96b.txt` |
13+| Prior-art audit: 59 verified works + code audit of colibri/mlx/mlx-lm/llama.cpp at recorded commits; novelty matrix | `research/prior_art.csv`, `research/RELATED_WORK.md`, `paper/references.bib` |
14+| Expert registry (per-expert and stacked safetensors layouts; byte ranges; routing semantics) | `titan/registry.py`, `tests/test_registry_store.py`, `tests/test_registry_stacked.py` (M3U96a) |
15+| SSD tier: `pread` store, parallel demand reads, expert-contiguous TITAN layout (one read per expert) | `titan/store.py`, `scripts/convert_layout.py`; cold 16-slot decode 8–10 → 18 → 36 tok/s (`benchmarks/raw/gateC/cold_nvme_laptop/`) |
16+| Slot tables (LRU/LFU), exact execution block over `gather_qmm`, sync-free fast path, lazy batched installs | `titan/slots.py`, `titan/moe.py`; bit-identical logits vs mlx-lm (OLMoE 64/32/16/8 slots; Qwen3-30B 128/64/32/16): `benchmarks/raw/tests/` |
17+| All-resident parity: 489.1 [488.2, 489.5] vs 495.0 tok/s (laptop); 121.6 vs 121.7 (M3U96a, Qwen3-30B) | `benchmarks/processed/audit.json`, `benchmarks/raw/gateB/capacity_sweep_laptop/`, `benchmarks/raw/gateC/qwen3_m3u96a/` |
18+| Routing traces (18 + 65 prompts OLMoE; 65 prompts Qwen3-30B) and trace-driven simulator | `benchmarks/raw/gateC/traces_*`, `benchmarks/raw/gateF/traces_qwen3_m3u96a`, `benchmarks/scripts/simulate_cache.py`, `benchmarks/processed/gateC/` |
19+| Predictors (prev-rank, transition depth 1–4 ± confidence threshold, logistic probe depth 1–4, oracle) and async prefetcher | `titan/predictors.py`, `titan/prefetch.py`; probe recall@8 0.761 held-out |
20+| **H1 verdict (not supported on OLMoE / laptop NVMe)** with full host-time attribution | `benchmarks/raw/gateC/cold_nvme_laptop/{sweep,attribution}.jsonl`, `figures/attribution.pdf`, audit CIs |
21+| Gate D profiling (launch-bound decode, 151 GB/s = 28 % of nominal) and fused up+gate option (bit-identical, ±2 %) → **H4 not supported** | `benchmarks/raw/gateD/`, `tests/test_fused_upgate.py` |
22+| Authenticated TCP transport (HMAC per frame, allow-list, timeouts), expert worker, remote executor with local fallback; bit-identical on localhost and across M3U96a↔M3U96b | `transport/`, `titan/distributed.py`, `tests/test_distributed_local.py`, `benchmarks/raw/tests/m3u96a/distributed_localhost_*.json`, `benchmarks/raw/gateE/two_node_m3u96a_m3u96b.jsonl` |
23+| **Two-node result**: odd experts remote over 1 GbE = 15 vs 81 tok/s local (−66 [−72, −55]); 2.5 ms per layer round trip | same + `remote_cost_breakdown_*.txt` |
24+| Statistical audit (bootstrap CIs for every comparison), figures and tables generated from logs, manifest with SHA-256 | `scripts/audit_stats.py`, `scripts/make_figures.py`, `scripts/make_tables.py`, `artifacts/manifest.json` |
25+| Paper v0.1 (30 pages, compiles, 0 undefined references), preliminary/negative results labelled | `paper/main.pdf` |
26+
27+## 2. Implemented, running or unverified at the time of writing
28+| Item | State |
29+|---|---|
30+| Gate F: Qwen3-30B two-node sweep (local cold NVMe vs odd vs frequency-based placement, 32/64 slots) | script `benchmarks/scripts/run_gateF_qwen3.sh`; worker on M3U96b; **running / to be read from `benchmarks/raw/gateF/`** |
31+| H5 energy per token (powermetrics) for 4 single-node configurations | `benchmarks/scripts/run_energy_laptop.sh`, `scripts/analyze_energy.py`; **running** |
32+| Adaptive scheduler (online cost re-estimation, bandits) | not implemented; the deterministic heuristic (Algorithm 2) is specified and its static version is exercised by Gate F |
33+| Replication of a hot set on the coordinator | not implemented |
34+| Colibri and llama.cpp speed baselines | not run (non-comparable precision; flagged in the protocol) |
35+| Core ML / ANE feasibility | not explored (documented as out of scope for v0.1) |
36+
37+## 3. Blocked (needs the author)
38+| Item | Why |
39+|---|---|
40+| Thunderbolt 5 / RDMA (JACCL) tier | no Thunderbolt cable between any two nodes (all TB interfaces inactive); physical cabling required |
41+| Large model tier (gpt-oss-120b, 62 GB) — the regime where a node cannot hold the experts | download > 20 GB requires explicit authorization (D-003, D-008) |
42+| 8 unreachable aliases (M2M32, M2M32b, M4M36, m4ma, m4mb, m4mc, m2m16, M4BP48) | SSH timeout at inventory time |
43+| Push to spbgit (`wp33_uqo.git`) | mandate: no push without authorization; local commits only |
44+
45+## 4. What the evidence says, in one paragraph
46+The runtime is exact and free when everything fits; when it does not, the storage layout and the number of host-side operations
47+per missed expert dominate, not prediction accuracy and not kernel fusion; and gigabit Ethernet makes remote execution a capacity
48+tool rather than a speed tool. The next version should (i) install an expert with one copy instead of nine slice writes, then re-run
49+the probe experiments; (ii) run the medium model on the 36–48 GB nodes with experts beyond their budget; (iii) measure energy on the
50+cluster, not only on the laptop; (iv) if cabled, add the Thunderbolt tier.
51
Menu

Theme