SPB Git

spb/wp40_uqo

Public MIT

WP40 RAID: Phase 3 gate — primitives benchmark records, summary, figure; status/progress updated

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

8 changed files +5,287 −8

modified RESEARCH_STATUS.md +7 −8
@@ -1,6 +1,6 @@
1 1 # RESEARCH_STATUS.md — RAID (UQO WP 40)
2 2
3 −Last update: 2026-11-02 (Phase 2 passed). Legend: ✅ verified by tests/artifacts · 🧪 implemented, validation pending ·
3 +Last update: 2026-11-02 (Phase 3 passed). Legend: ✅ verified by tests/artifacts · 🧪 implemented, validation pending ·
4 4 🧭 experimental · ⛔ blocked · ⏳ planned · ✖ not implemented (deliberately).
5 5
6 6 ## Phases
@@ -9,7 +9,7 @@ Last update: 2026-11-02 (Phase 2 passed). Legend: ✅ verified by tests/artifact
9 9 | 0 Audit | scope & feasibility memo | ✅ passed 2026-11-02 | `docs/audit.md`, `docs/capabilities.md`, `docs/novelty_matrix.md`, `docs/risks.md`, `docs/PROGRESS.md` |
10 10 | 1 Foundation | clean build + tests + docs | ✅ passed 2026-11-02 | `ctest` 26/26 (314 assertions), `pytest` 7/7, `docs/PROGRESS.md` Phase 1 |
11 11 | 2 Data | offline synthetic tests + opt-in live tests | ✅ passed 2026-11-02 | offline `[findata]` 4/4, live `[live]` 2/2 (60 assertions), `docs/operations/findata.md` |
12 −| 3 Numerical primitives | accuracy + measured break-even | ⏳ | — |
12 +| 3 Numerical primitives | accuracy + measured break-even | ✅ passed 2026-11-02 | `[metal]` 6 cases / 6 411 assertions; `experiments/results/bench_primitives_summary.json` (Metal wins: fused realized ≥ 39 k elements up to 3.4×, GARCH NLL P=64 up to 7.9×; CPU wins: rolling sums, GARCH P=1, small panels) |
13 13 | 4 Econometrics (Tier A) | references + Monte Carlo | ⏳ | — |
14 14 | 5 Extensions (Tier B) | per-feature specs + tests | ⏳ | — |
15 15 | 6 Benchmarking E1–E7 | every claim traceable | ⏳ | — |
@@ -20,10 +20,10 @@ Last update: 2026-11-02 (Phase 2 passed). Legend: ✅ verified by tests/artifact
20 20 | Method | Tier | CPU FP64 | Metal FP32 | Reference software | Status |
21 21 |---|---|---|---|---|---|
22 22 | returns (log/arith), lag/lead, rolling windows, calendar-aware aggregation | A | ✅ | ⏳ (Phase 3) | numpy; exchange_calendars (calendar exact 2000–2026) | ✅ CPU |
23 −| RV, BPV, RSV±, RQ, jump proxy, TriPV, rCov/rCorr | A | ✅ (numpy truth 1e−12) | ⏳ (Phase 3) | highfrequency 1.0.3 (R comparison Phase 4) | ✅ CPU |
24 −| OLS/WLS/ridge, HC0–3, HAC, cluster, rolling OLS | A | ✅ (statsmodels 1e−9) | ⏳ (sufficient stats, Phase 3) | statsmodels 0.15, scipy 1.18 | ✅ CPU |
23 +| RV, BPV, RSV±, RQ, jump proxy, TriPV, rCov/rCorr | A | ✅ (numpy truth 1e−12) | ✅ fused kernel 1e−6 vs FP64 | highfrequency 1.0.3 (R comparison Phase 4) | ✅ CPU |
24 +| OLS/WLS/ridge, HC0–3, HAC, cluster, rolling OLS | A | ✅ (statsmodels 1e−9) | ✅ sufficient statistics 1e−6 (k ≤ 8) | statsmodels 0.15, scipy 1.18 | ✅ CPU |
25 25 | HAR-RV, log-HAR, HAR-X, HARQ | A | ⏳ | ⏳ | highfrequency `HARmodel`, statsmodels | ⏳ |
26 −| GARCH(1,1), GJR, EGARCH (N, t), QMLE/Hessian/OPG SE, forecasts | A | ✅ (arch 8.0: loglik 5e−4, params 5 %) | ⏳ (batched likelihood, Phase 3) | arch 8.0 ✅, rugarch 1.5.6 (Phase 4) | ✅ CPU |
26 +| GARCH(1,1), GJR, EGARCH (N, t), QMLE/Hessian/OPG SE, forecasts | A | ✅ (arch 8.0: loglik 5e−4, params 5 %) | ✅ batched NLL 2e−5 (grids) | arch 8.0 ✅, rugarch 1.5.6 (Phase 4) | ✅ CPU |
27 27 | Bootstrap (stationary / circular block), Monte Carlo | A | ⏳ | ⏳ | arch.bootstrap | ⏳ |
28 28 | VAR, GFEVD, Diebold–Yilmaz | B | ⏳ | ⏳ | statsmodels VAR | ⏳ |
29 29 | Realized GARCH, HEAVY, DCC, PCA/shrinkage, Kalman | B | ✖ until Tier A passes | | | ⏳ |
@@ -35,6 +35,5 @@ Last update: 2026-11-02 (Phase 2 passed). Legend: ✅ verified by tests/artifact
35 35 not tested unless they come back.
36 36
37 37 ## Next safe action
38 −Phase 3: Metal backend (device discovery, runtime + prebuilt shader library, buffer pool, batched reductions,
39 −rolling sums, regression sufficient statistics, GARCH likelihood batch), FP32-vs-FP64 accuracy tests, first break-even
40 −microbenchmarks (bench_reductions) with manifests.
38 +Phase 4: HAR family (fit, rolling, batched via GPU sufficient statistics), block bootstrap, R references
39 +(highfrequency / rugarch), Monte Carlo (bias/RMSE/coverage), gradient checks, registry completion.
modified docs/PROGRESS.md +39 −0
@@ -81,3 +81,42 @@ Executed:
81 81
82 82 Gate evidence: offline tests in `ctest`; live run transcript above; no vendor data in git (`scripts/check_no_secrets.sh`).
83 83 Open: least-privilege key for benchmarks (needs `findata create-key` on M3U96a — owner action, optional).
84 +
85 +## Phase 3 — Numerical primitives (2026-11-02, 15:40–16:30 ET) — GATE PASSED
86 +Plan: Metal backend with FP32 "double-float" (error-free-transform) accumulation, fused realized kernel, rolling sums,
87 +regression sufficient statistics, batched GARCH likelihood; CPU/GPU agreement tests; measured break-even analysis.
88 +
89 +Executed:
90 +- `backends/metal/shaders/raid_kernels.metal` (TwoSum/Fast2Sum double-float, deterministic threadgroup tree reductions,
91 + chunked partial sums combined in FP64 on the CPU) and `backends/metal/host/metal_backend.mm` (device discovery,
92 + prebuilt `raid.metallib` with runtime-MSL fallback, pipeline cache, buffer pool by power-of-two size class, GPU
93 + timing from `GPUStartTime/GPUEndTime`, `-fno-fast-math` / `fastMathEnabled = NO` so the compensation is not optimised
94 + away). Metal has no `lgamma`/`log1p`: Student-t constants are computed in FP64 on the host and passed per parameter
95 + vector.
96 +- Tests `[metal]` (6 cases, 6 411 assertions): fused and single-statistic accumulators vs CPU FP64 within 1e−6
97 + (Σx⁴ 1e−5) for n = 390/3 900/39 000 across chunk boundaries (4 096); bitwise determinism across runs; rolling sums
98 + 1e−5; regression statistics 1e−6 (and the solve from GPU statistics agrees with CPU QR to 1e−5); batched GARCH NLL
99 + 2e−5 relative (GJR + Student-t fixed ν 5e−5), argmin over a 16-point grid identical; +inf on invalid parameters.
100 + Full suite: `ctest` 38/38 (2 live skipped), `pytest` 7/7.
101 +- `bench_bench_primitives` (laptop M5 Max 40-core GPU, 18 CPU threads, load ≈ 3–4 from other sessions, no thermal
102 + warning, 5 repetitions, shuffled order, 2 warm-ups; raw records `experiments/results/raw/bench_primitives.jsonl`
103 + + manifest; summary `experiments/results/bench_primitives_summary.{json,csv}`, figure
104 + `fig_bench_primitives_throughput.pdf`). Medians of wall-clock including FP64→FP32 conversion and buffer traffic;
105 + verdicts use non-overlapping bootstrap 95 % CIs of the median:
106 + - realized_fused: Metal wins from 39 000 elements (100 × 390: 2.4×), 2.0–3.4× vs 18-thread CPU at 3.9 M–39 M
107 + elements (max 3.4× at 1 000 × 39 000); ties at 390 000 for 10 × 39 000 and 100 × 3 900 shapes; CPU 1 thread is
108 + 27–40× slower than Metal at 39 M.
109 + - regression_stats (k = 4): break-even ≈ 390 000 elements for a single long series (3.9×); ties for most shapes
110 + between 390 k and 3.9 M; 1.1–1.4× at 39 M. CPU wins below 39 000 elements.
111 + - rolling_sumsq (w = 22, direct O(w) kernel): **CPU wins at every size** (Metal 0.4–0.9× of CPU-MT); the GPU kernel
112 + is memory/arithmetic-bound by its O(w) design and the CPU running sum is O(1) per element — a negative result kept
113 + for the paper (a scan-based kernel is future work).
114 + - garch_nll: with one parameter vector per series (P = 1) the **CPU wins everywhere** (0.01–0.33×; the recursion is
115 + sequential and the GPU is launch-bound); with P = 64 parameter vectors per series Metal wins from 100 series
116 + (1.9×) up to 7.9× at 1 000 × 3 900 — batched likelihood evaluation is where the GPU pays off.
117 + - Device time is 5–20× smaller than wall time for the reductions: FP64→FP32 conversion and buffer fills dominate
118 + ("unified memory is not free computation"); E6 will add the FP32-resident ablation.
119 + - Shader library: prebuilt metallib loaded in 0.23 ms; first kernel call 14 ms (pipeline creation); runtime MSL
120 + compilation of the bundle is measured separately in E7 (toolchain-less nodes).
121 +
122 +Gate evidence: accuracy tests and the measured break-even table above; no claim beyond the tested shapes.
added experiments/results/bench_primitives_summary.csv +208 −0
@@ -0,0 +1,208 @@
1 +kernel,S,n,elements,backend,threads,median_s,ci_lo,ci_hi,device_s,elements_per_s,reps,precision,peak_rss_mb
2 +garch_nll_P1,1,390,390,cpu,1,1.7909333109855652e-06,1.7499551177024841e-06,1.8328428268432617e-06,0.0,217763552.44929796,5,fp64,3255.451648
3 +garch_nll_P1,1,390,390,cpu,18,1.7499551177024841e-06,1.6670674085617065e-06,1.8333084881305695e-06,0.0,222862858.62692922,5,fp64,3368.943616
4 +garch_nll_P1,1,390,390,metal,0,0.0009180000051856041,0.00044724997133016586,0.0009358339011669159,0.00032679166179150343,424836.59890736995,5,fp32,2962.440192
5 +garch_nll_P1,1,3900,3900,cpu,1,1.6250181943178177e-05,1.6207806766033173e-05,1.637497916817665e-05,0.0,239997312.86930108,5,fp64,2962.440192
6 +garch_nll_P1,1,3900,3900,cpu,18,1.695798709988594e-05,1.691700890660286e-05,1.9416213035583496e-05,0.0,229980125.41395503,5,fp64,3431.858176
7 +garch_nll_P1,1,3900,3900,metal,0,0.001348957885056734,0.0010095001198351383,0.0015331669710576534,0.0011987084290012717,2891120.6518771155,5,fp32,2962.440192
8 +garch_nll_P1,10,390,3900,cpu,1,2.1916814148426056e-05,2.1541956812143326e-05,7.208297029137611e-05,0.0,177945570.62847915,5,fp64,2962.440192
9 +garch_nll_P1,10,390,3900,cpu,18,2.929195761680603e-05,1.7000362277030945e-05,4.200031980872154e-05,0.0,133142347.50095384,5,fp64,2962.440192
10 +garch_nll_P1,10,390,3900,metal,0,0.0003432091325521469,0.0003193751908838749,0.0009956671856343746,0.00019762502051889896,11363333.98531415,5,fp32,2920.169472
11 +garch_nll_P1,10,3900,39000,cpu,1,0.0002155420370399952,0.00016279099509119987,0.00037720799446105957,0.0,180939182.60948467,5,fp64,576.782336
12 +garch_nll_P1,10,3900,39000,cpu,18,6.916606798768044e-05,6.245775148272514e-05,7.533328607678413e-05,0.0,563860302.2358668,5,fp64,781.43488
13 +garch_nll_P1,10,3900,39000,metal,0,0.0014300826005637646,0.0012115412391722202,0.0016847080551087856,0.0010766249615699053,27271152.019208886,5,fp32,3360.11264
14 +garch_nll_P1,100,390,39000,cpu,1,0.0001916671171784401,0.0001916252076625824,0.0002199173904955387,0.0,203477782.59580857,5,fp64,3431.87456
15 +garch_nll_P1,100,390,39000,cpu,18,0.00016116676852107048,0.00015066703781485558,0.00017320923507213593,0.0,241985369.30335766,5,fp64,3359.932416
16 +garch_nll_P1,100,390,39000,metal,0,0.0006238752976059914,0.0006115422584116459,0.0006384579464793205,0.0004310833755880594,62512492.720348835,5,fp32,3355.901952
17 +garch_nll_P1,100,3900,390000,cpu,1,0.0016154590994119644,0.0016071251593530178,0.0016200002282857895,0.0,241417439.87326083,5,fp64,3222.339584
18 +garch_nll_P1,100,3900,390000,cpu,18,0.00020695803686976433,0.00020262505859136581,0.0002222089096903801,0.0,1884439985.5098226,5,fp64,2962.440192
19 +garch_nll_P1,100,3900,390000,metal,0,0.0016493331640958786,0.0015722080133855343,0.004429208114743233,0.0009533748961985111,236459199.68740082,5,fp32,2962.440192
20 +garch_nll_P1,1000,390,390000,cpu,1,0.0016390001401305199,0.001627500168979168,0.0016581248492002487,0.0,237949949.14945084,5,fp64,3359.932416
21 +garch_nll_P1,1000,390,390000,cpu,18,0.0002765827812254429,0.00027295900508761406,0.00033191684633493423,0.0,1410066086.8042636,5,fp64,2962.440192
22 +garch_nll_P1,1000,390,390000,metal,0,0.0011531668715178967,0.0010962923988699913,0.0011774590238928795,0.00017799995839595795,338199101.65009224,5,fp32,3222.339584
23 +garch_nll_P1,1000,3900,3900000,cpu,1,0.018310166895389557,0.01771716633811593,0.019527375232428312,0.0,212996420.09172553,5,fp64,572.112896
24 +garch_nll_P1,1000,3900,3900000,cpu,18,0.0014978330582380295,0.001383374910801649,0.0015932917594909668,0.0,2603761466.306366,5,fp64,3432.742912
25 +garch_nll_P1,1000,3900,3900000,metal,0,0.0072068748995661736,0.007158916909247637,0.009398084133863449,0.0010924999369308352,541149951.171591,5,fp32,3360.11264
26 +garch_nll_P1,10000,390,3900000,cpu,1,0.017741417046636343,0.01734916679561138,0.017816499806940556,0.0,219824605.3146817,5,fp64,3355.901952
27 +garch_nll_P1,10000,390,3900000,cpu,18,0.0022433330304920673,0.002103041857481003,0.002292540855705738,0.0,1738484632.905596,5,fp64,2962.440192
28 +garch_nll_P1,10000,390,3900000,metal,0,0.00675466563552618,0.006540417205542326,0.007071124855428934,0.00046787504106760025,577378690.5880197,5,fp32,2962.440192
29 +garch_nll_P1,10000,3900,39000000,cpu,1,0.16226391727104783,0.16133012529462576,0.16484179068356752,0.0,240349183.3298581,5,fp64,3255.451648
30 +garch_nll_P1,10000,3900,39000000,cpu,18,0.01383341709151864,0.012941500172019005,0.014138792175799608,0.0,2819260038.3538756,5,fp64,3254.272
31 +garch_nll_P1,10000,3900,39000000,metal,0,0.06106641702353954,0.05950908316299319,0.0616582497023046,0.004054000019095838,638648899.0334327,5,fp32,3355.901952
32 +garch_nll_P64,1,390,390,cpu,1,8.287513628602028e-05,8.27503390610218e-05,8.458364754915237e-05,0.0,4705874.614239238,5,fp64,577.159168
33 +garch_nll_P64,1,390,390,cpu,18,0.00017224997282028198,0.00012754183262586594,0.0002139592543244362,0.0,2264151.3006617934,5,fp64,3431.514112
34 +garch_nll_P64,1,390,390,metal,0,0.0005012080073356628,0.00047737499698996544,0.0006123748607933521,0.0003255000337958336,778120.0505418383,5,fp32,3431.46496
35 +garch_nll_P64,1,3900,3900,cpu,1,0.0008078329265117645,0.0008031250908970833,0.0008203750476241112,0.0,4827730.923076213,5,fp64,3431.87456
36 +garch_nll_P64,1,3900,3900,cpu,18,0.00014187488704919815,0.000135000329464674,0.00021779071539640427,0.0,27489008.668937948,5,fp64,3222.339584
37 +garch_nll_P64,1,3900,3900,metal,0,0.0014235423877835274,0.00134983379393816,0.0033927499316632748,0.00122337497305125,2739644.4485733556,5,fp32,3431.87456
38 +garch_nll_P64,10,390,3900,cpu,1,0.0008257082663476467,0.000809917226433754,0.0008320827037096024,0.0,4723217.8227436915,5,fp64,3432.742912
39 +garch_nll_P64,10,390,3900,cpu,18,0.0002438751980662346,0.00013074977323412895,0.0002598753198981285,0.0,15991786.089460358,5,fp64,3368.943616
40 +garch_nll_P64,10,390,3900,metal,0,0.0010179998353123665,0.0004632081836462021,0.0010751672089099884,0.00032300001475960016,3831041.877136759,5,fp32,3431.530496
41 +garch_nll_P64,10,3900,39000,cpu,1,0.008083874825388193,0.008056249935179949,0.00812424998730421,0.0,4824419.086440666,5,fp64,3355.901952
42 +garch_nll_P64,10,3900,39000,cpu,18,0.000775500200688839,0.0006874999962747097,0.0008766250684857368,0.0,50290122.38211957,5,fp64,3432.742912
43 +garch_nll_P64,10,3900,39000,metal,0,0.0013822498731315136,0.0008970410563051701,0.0033571659587323666,0.0006641249638050795,28214869.654243305,5,fp32,3431.530496
44 +garch_nll_P64,100,390,39000,cpu,1,0.008346542250365019,0.008285791147500277,0.008543540723621845,0.0,4672593.611839012,5,fp64,3431.514112
45 +garch_nll_P64,100,390,39000,cpu,18,0.001005750149488449,0.0009415419772267342,0.0010966667905449867,0.0,38777026.30204572,5,fp64,781.484032
46 +garch_nll_P64,100,390,39000,metal,0,0.0005332920700311661,0.0005230000242590904,0.0005429168231785297,0.00033650000113993883,73130658.02332444,5,fp32,2962.440192
47 +garch_nll_P64,100,3900,390000,cpu,1,0.0801338329911232,0.07999316696077585,0.08033083425834775,0.0,4866858.172667244,5,fp64,3359.932416
48 +garch_nll_P64,100,3900,390000,cpu,18,0.006173874717205763,0.005890249740332365,0.006268457975238562,0.0,63169406.22606451,5,fp64,3432.742912
49 +garch_nll_P64,100,3900,390000,metal,0,0.0021704169921576977,0.0018634586594998837,0.0022297906689345837,0.0010580417001619935,179688972.86059555,5,fp32,3431.858176
50 +garch_nll_P64,1000,390,390000,cpu,1,0.09679854195564985,0.08949454175308347,0.10223195794969797,0.0,4028986.306205791,5,fp64,2962.440192
51 +garch_nll_P64,1000,390,390000,cpu,18,0.00848708301782608,0.008417499717324972,0.008939292281866074,0.0,45952183.94598623,5,fp64,2962.440192
52 +garch_nll_P64,1000,390,390000,metal,0,0.002336665987968445,0.002312499564141035,0.0027117920108139515,0.001452916651032865,166904470.73228282,5,fp32,3359.932416
53 +garch_nll_P64,1000,3900,3900000,cpu,1,0.8561791670508683,0.8505779169499874,0.9446879159659147,0.0,4555121.34619399,5,fp64,2962.440192
54 +garch_nll_P64,1000,3900,3900000,cpu,18,0.08150566695258021,0.0744811249896884,0.10778554202988744,0.0,47849433.61384933,5,fp64,3255.451648
55 +garch_nll_P64,1000,3900,3900000,metal,0,0.010272707790136337,0.009604125283658504,0.010956583078950644,0.0029698750004172325,379646737.7125929,5,fp32,2962.440192
56 +realized_fused,1,390,390,cpu,1,1.4998950064182281e-06,1.416075974702835e-06,4.041939973831177e-06,0.0,260018200.16144055,5,fp64,2962.440192
57 +realized_fused,1,390,390,cpu,18,1.4998950064182281e-06,1.4579854905605316e-06,1.6670674085617065e-06,0.0,260018200.16144055,5,fp64,2962.440192
58 +realized_fused,1,390,390,metal,0,0.0002344171516597271,0.00019499985501170158,0.00025337468832731247,3.199989441782236e-05,1663700.7882687368,5,fp32,3432.742912
59 +realized_fused,1,3900,3900,cpu,1,1.1624768376350403e-05,1.1375173926353455e-05,1.2792181223630905e-05,0.0,335490555.4879026,5,fp64,2962.440192
60 +realized_fused,1,3900,3900,cpu,18,1.116609200835228e-05,1.1124648153781891e-05,1.2124888598918915e-05,0.0,349271705.5423496,5,fp64,3432.742912
61 +realized_fused,1,3900,3900,metal,0,0.0006333747878670692,0.0001420830376446247,0.000777125358581543,2.037500962615013e-05,6157491.7011356,5,fp32,2913.878016
62 +realized_fused,1,39000,39000,cpu,1,0.00018258299678564072,0.0001637078821659088,0.00037499982863664627,0.0,213601489.11230472,5,fp64,2962.440192
63 +realized_fused,1,39000,39000,cpu,18,0.0001671668142080307,0.00015920819714665413,0.00017870916053652763,0.0,233299893.79032168,5,fp64,2962.440192
64 +realized_fused,1,39000,39000,metal,0,0.000206624623388052,0.0001971670426428318,0.00024229194968938828,4.3874955736100674e-05,188748075.42543435,5,fp32,3355.901952
65 +realized_fused,1,390000,390000,cpu,1,0.002032375428825617,0.002019832842051983,0.002052249852567911,0.0,191893679.91196227,5,fp64,3222.339584
66 +realized_fused,1,390000,390000,cpu,18,0.0020858747884631157,0.002067000139504671,0.0027133747935295105,0.0,186971913.25053322,5,fp64,2962.440192
67 +realized_fused,1,390000,390000,metal,0,0.0009353337809443474,0.00017445813864469528,0.0009425836615264416,1.2583332136273384e-05,416963449.78178984,5,fp32,781.1072
68 +realized_fused,10,390,3900,cpu,1,1.1292286217212677e-05,1.1167023330926895e-05,1.2415926903486252e-05,0.0,345368504.214433,5,fp64,3432.742912
69 +realized_fused,10,390,3900,cpu,18,0.00014200014993548393,0.0001277080737054348,0.0001649591140449047,0.0,27464759.732802525,5,fp64,577.175552
70 +realized_fused,10,390,3900,metal,0,0.0002327919937670231,0.00019591627642512321,0.0002467092126607895,3.124994691461325e-05,16753153.477877328,5,fp32,3255.451648
71 +realized_fused,10,3900,39000,cpu,1,0.00018791621550917625,0.00017224997282028198,0.00020966678857803345,0.0,207539300.929012,5,fp64,3431.858176
72 +realized_fused,10,3900,39000,cpu,18,0.000135000329464674,0.00012287497520446777,0.0001421659253537655,0.0,288888183.86332357,5,fp64,3360.096256
73 +realized_fused,10,3900,39000,metal,0,0.00016404176130890846,0.00015954114496707916,0.0009339582175016403,1.6249949112534523e-05,237744338.32467064,5,fp32,3222.339584
74 +realized_fused,10,39000,390000,cpu,1,0.002572625409811735,0.0020360001362860203,0.0035845423117280006,0.0,151596108.2062624,5,fp64,2962.440192
75 +realized_fused,10,39000,390000,cpu,18,0.00036349985748529434,0.00035787513479590416,0.00039070891216397285,0.0,1072902759.0217906,5,fp64,3369.04192
76 +realized_fused,10,39000,390000,metal,0,0.0007184999994933605,0.000268666073679924,0.0007987502031028271,5.52500132471323e-05,542797495.1635388,5,fp32,3355.901952
77 +realized_fused,10,390000,3900000,cpu,1,0.02089220890775323,0.020823125261813402,0.021495667286217213,0.0,186672458.48535842,5,fp64,3431.497728
78 +realized_fused,10,390000,3900000,cpu,18,0.0025267917662858963,0.0025061247870326042,0.0027628750540316105,0.0,1543459200.7289019,5,fp64,3431.858176
79 +realized_fused,10,390000,3900000,metal,0,0.0010219174437224865,0.001003749668598175,0.0010474580340087414,8.649996016174555e-05,3816355248.6134977,5,fp32,3222.339584
80 +realized_fused,100,390,39000,cpu,1,0.0001871250569820404,0.00016624992713332176,0.00021525006741285324,0.0,208416770.2016683,5,fp64,2962.440192
81 +realized_fused,100,390,39000,cpu,18,0.0005520828999578953,0.0004998329095542431,0.0005905842408537865,0.0,70641564.88631389,5,fp64,3431.530496
82 +realized_fused,100,390,39000,metal,0,0.00022633420303463936,0.00017816666513681412,0.00027566729113459587,3.15000070258975e-05,172311561.73966,5,fp32,3368.943616
83 +realized_fused,100,3900,390000,cpu,1,0.002043417189270258,0.0020072502084076405,0.0020909998565912247,0.0,190856767.7945766,5,fp64,3432.742912
84 +realized_fused,100,3900,390000,cpu,18,0.0006015831604599953,0.0005330839194357395,0.0006621670909225941,0.0,648289423.0313727,5,fp64,3355.8528
85 +realized_fused,100,3900,390000,metal,0,0.0006413329392671585,0.000292791984975338,0.0008833748288452625,5.287490785121918e-05,608108481.7593294,5,fp32,490.962944
86 +realized_fused,100,39000,3900000,cpu,1,0.020590624772012234,0.020551583264023066,0.020679709035903215,0.0,189406588.83265492,5,fp64,3222.339584
87 +realized_fused,100,39000,3900000,cpu,18,0.0021904585883021355,0.001996333710849285,0.002361500170081854,0.0,1780449089.8971806,5,fp64,2962.440192
88 +realized_fused,100,39000,3900000,metal,0,0.0011692089028656483,0.0008370000869035721,0.0011960407719016075,0.000259208376519382,3335588696.289753,5,fp32,3360.096256
89 +realized_fused,100,390000,39000000,cpu,1,0.2325868341140449,0.2128961249254644,0.24819900002330542,0.0,167679310.60481706,5,fp64,2962.440192
90 +realized_fused,100,390000,39000000,cpu,18,0.01879258267581463,0.016645667143166065,0.02031658310443163,0.0,2075286865.7159925,5,fp64,2962.440192
91 +realized_fused,100,390000,39000000,metal,0,0.008720249868929386,0.007397250272333622,0.008947291877120733,0.0021910000359639525,4472348910.43187,5,fp32,486.178816
92 +realized_fused,1000,390,390000,cpu,1,0.002235791180282831,0.0021259579807519913,0.003065959084779024,0.0,174434895.10083154,5,fp64,2962.440192
93 +realized_fused,1000,390,390000,cpu,18,0.0008399169892072678,0.0007132496684789658,0.0009002499282360077,0.0,464331600.6360231,5,fp64,3355.8528
94 +realized_fused,1000,390,390000,metal,0,0.00033845799043774605,0.00033012498170137405,0.00035137496888637543,0.00013987498823553324,1152284806.4410944,5,fp32,3431.87456
95 +realized_fused,1000,3900,3900000,cpu,1,0.021244540810585022,0.021230708342045546,0.021389917004853487,0.0,183576573.14282066,5,fp64,3431.530496
96 +realized_fused,1000,3900,3900000,cpu,18,0.0017422502860426903,0.0017107920721173286,0.0017863749526441097,0.0,2238484350.522551,5,fp64,3431.46496
97 +realized_fused,1000,3900,3900000,metal,0,0.0008750832639634609,0.0008294158615171909,0.0015468327328562737,0.0002547500189393759,4456718761.065055,5,fp32,3432.742912
98 +realized_fused,1000,39000,39000000,cpu,1,0.23877166723832488,0.21975037455558777,0.2514020833186805,0.0,163335962.13939813,5,fp64,2962.440192
99 +realized_fused,1000,39000,39000000,cpu,18,0.02024729223921895,0.019154875073581934,0.029473000206053257,0.0,1926183488.5979028,5,fp64,2962.440192
100 +realized_fused,1000,39000,39000000,metal,0,0.005891874898225069,0.005617166869342327,0.00844891695305705,0.0009469999931752682,6619285146.693929,5,fp32,3369.04192
101 +realized_fused,10000,390,3900000,cpu,1,0.021238334011286497,0.020878124982118607,0.021370540838688612,0.0,183630222.49897087,5,fp64,3431.858176
102 +realized_fused,10000,390,3900000,cpu,18,0.002125917002558708,0.0019880831241607666,0.002400666009634733,0.0,1834502473.6647966,5,fp64,2962.440192
103 +realized_fused,10000,390,3900000,metal,0,0.0022132499143481255,0.0018930002115666866,0.0032122922129929066,0.001203041640110314,1762114605.6380522,5,fp32,3431.87456
104 +realized_fused,10000,3900,39000000,cpu,1,0.2336724577471614,0.22654250031337142,0.24493679078295827,0.0,166900285.87878695,5,fp64,2962.440192
105 +realized_fused,10000,3900,39000000,cpu,18,0.01569391693919897,0.015392750035971403,0.01590104214847088,0.0,2485039276.7524476,5,fp64,3432.742912
106 +realized_fused,10000,3900,39000000,metal,0,0.0078027499839663506,0.006132957991212606,0.008690916933119297,0.0019207500154152513,4998237811.046104,5,fp32,577.1264
107 +regression_stats,1,390,390,cpu,1,3.1669624149799347e-06,3.125052899122238e-06,3.2088719308376312e-06,0.0,123146393.57741508,5,fp64,2962.440192
108 +regression_stats,1,390,390,cpu,18,3.2088719308376312e-06,3.2079406082630157e-06,3.3332034945487976e-06,0.0,121538038.41532433,5,fp64,2962.440192
109 +regression_stats,1,390,390,metal,0,0.000894167460501194,0.00017508305609226227,0.000988542102277279,7.087492849677801e-05,436159.91100973333,5,fp32,3368.910848
110 +regression_stats,1,3900,3900,cpu,1,2.9958784580230713e-05,2.950010821223259e-05,3.0708033591508865e-05,0.0,130178845.859239,5,fp64,3368.894464
111 +regression_stats,1,3900,3900,cpu,18,3.0207913368940353e-05,3.008265048265457e-05,3.0375085771083832e-05,0.0,129105243.13175379,5,fp64,2962.440192
112 +regression_stats,1,3900,3900,metal,0,0.0003482499159872532,0.0003069578669965267,0.0003833337686955929,0.00019212497863918543,11198854.101497471,5,fp32,2962.440192
113 +regression_stats,1,39000,39000,cpu,1,0.00030233291909098625,0.00030054105445742607,0.0003049168735742569,0.0,128996869.13770398,5,fp64,2962.440192
114 +regression_stats,1,39000,39000,cpu,18,0.0003838753327727318,0.0003343336284160614,0.0006159590557217598,0.0,101595483.4042161,5,fp64,578.486272
115 +regression_stats,1,39000,39000,metal,0,0.0004085828550159931,0.0003508748486638069,0.00041229184716939926,0.00018866662867367268,95451875.96888623,5,fp32,3359.932416
116 +regression_stats,1,390000,390000,cpu,1,0.0029733749106526375,0.002949208952486515,0.0029905838891863823,0.0,131164085.16220291,5,fp64,3368.943616
117 +regression_stats,1,390000,390000,cpu,18,0.0030428748577833176,0.0030017499811947346,0.003628334030508995,0.0,128168267.9136231,5,fp64,572.112896
118 +regression_stats,1,390000,390000,metal,0,0.0007901252247393131,0.0007615000940859318,0.0008232500404119492,9.650003630667925e-05,493592645.5564979,5,fp32,2920.12032
119 +regression_stats,10,390,3900,cpu,1,3.1250063329935074e-05,3.095809370279312e-05,4.149973392486572e-05,0.0,124799747.08608383,5,fp64,2920.185856
120 +regression_stats,10,390,3900,cpu,18,4.133302718400955e-05,2.475036308169365e-05,4.3540727347135544e-05,0.0,94355537.58590388,5,fp64,3359.932416
121 +regression_stats,10,390,3900,metal,0,0.0006523327901959419,0.0003105420619249344,0.0007279999554157257,9.250000584870577e-05,5978543.557236411,5,fp32,2962.440192
122 +regression_stats,10,3900,39000,cpu,1,0.0002997498959302902,0.0002982090227305889,0.000300500076264143,0.0,130108468.85855077,5,fp64,2962.440192
123 +regression_stats,10,3900,39000,cpu,18,7.625017315149307e-05,7.187481969594955e-05,8.49580392241478e-05,0.0,511474248.3602653,5,fp64,3432.742912
124 +regression_stats,10,3900,39000,metal,0,0.00036174990236759186,0.0003430834040045738,0.0005066245794296265,0.00018737500067800283,107809289.63560627,5,fp32,3431.514112
125 +regression_stats,10,39000,390000,cpu,1,0.003083667252212763,0.0030186669901013374,0.003116208128631115,0.0,126472789.73441304,5,fp64,3431.530496
126 +regression_stats,10,39000,390000,cpu,18,0.0005624173209071159,0.0005049579776823521,0.0006032092496752739,0.0,693435257.9521801,5,fp64,3431.563264
127 +regression_stats,10,39000,390000,metal,0,0.0006961673498153687,0.0006541251204907894,0.0008656666614115238,0.0002501250710338354,560210127.7852694,5,fp32,576.421888
128 +regression_stats,10,390000,3900000,cpu,1,0.032662583980709314,0.030701291747391224,0.03406220907345414,0.0,119402678.0705213,5,fp64,3431.858176
129 +regression_stats,10,390000,3900000,cpu,18,0.006654791999608278,0.006012291181832552,0.007818708196282387,0.0,586043861.3602898,5,fp64,3431.46496
130 +regression_stats,10,390000,3900000,metal,0,0.004117042291909456,0.002989500295370817,0.004763709381222725,0.000529208336956799,947281986.3094499,5,fp32,2962.440192
131 +regression_stats,100,390,39000,cpu,1,0.00036137504503130913,0.00033475039526820183,0.00036225002259016037,0.0,107921121.10735561,5,fp64,2962.440192
132 +regression_stats,100,390,39000,cpu,18,0.00017625000327825546,9.350012987852097e-05,0.00018370803445577621,0.0,221276591.62892938,5,fp64,3359.932416
133 +regression_stats,100,390,39000,metal,0,0.0003363746218383312,0.00026350002735853195,0.0005579171702265739,0.00019220833200961351,115942159.33074829,5,fp32,3255.451648
134 +regression_stats,100,3900,390000,cpu,1,0.0029982919804751873,0.0029679168947041035,0.003063875250518322,0.0,130074056.34263493,5,fp64,3432.742912
135 +regression_stats,100,3900,390000,cpu,18,0.0004399162717163563,0.00042741699144244194,0.00046166684478521347,0.0,886532335.9792868,5,fp64,781.484032
136 +regression_stats,100,3900,390000,metal,0,0.0005946666933596134,0.0005814996547996998,0.0005976245738565922,0.00023925001733005047,655829566.9741753,5,fp32,2962.440192
137 +regression_stats,100,39000,3900000,cpu,1,0.03219050029292703,0.03135691722854972,0.03299033408984542,0.0,121153755.44060485,5,fp64,3355.901952
138 +regression_stats,100,39000,3900000,cpu,18,0.0031737093813717365,0.003017541952431202,0.0036639999598264694,0.0,1228845975.2777827,5,fp64,3355.901952
139 +regression_stats,100,39000,3900000,metal,0,0.0044694580137729645,0.0031338329426944256,0.004542499780654907,0.0016885417280718684,872589022.6470106,5,fp32,3431.46496
140 +regression_stats,100,390000,39000000,cpu,1,0.3013692502863705,0.2989709582179785,0.3020119168795645,0.0,129409354.01651289,5,fp64,3431.87456
141 +regression_stats,100,390000,39000000,cpu,18,0.033760249614715576,0.0324889593757689,0.03822179138660431,0.0,1155204728.7885127,5,fp64,3359.932416
142 +regression_stats,100,390000,39000000,metal,0,0.03070899983868003,0.027952750213444233,0.031758958008140326,0.005229625036008656,1269986004.2617507,5,fp32,2913.845248
143 +regression_stats,1000,390,390000,cpu,1,0.0031211250461637974,0.0030487077310681343,0.0040359580889344215,0.0,124954942.28254408,5,fp64,3432.742912
144 +regression_stats,1000,390,390000,cpu,18,0.0006971252150833607,0.0005761669017374516,0.0007857088930904865,0.0,559440386.8369108,5,fp64,2962.440192
145 +regression_stats,1000,390,390000,metal,0,0.0005814996547996998,0.0005787923000752926,0.0009665000252425671,0.00020362494979053736,670679675.870723,5,fp32,3431.858176
146 +regression_stats,1000,3900,3900000,cpu,1,0.03439616598188877,0.033030624967068434,0.03468058304861188,0.0,113384730.20666131,5,fp64,781.484032
147 +regression_stats,1000,3900,3900000,cpu,18,0.003421790897846222,0.0031987917609512806,0.003632874693721533,0.0,1139754040.0422413,5,fp64,3431.514112
148 +regression_stats,1000,3900,3900000,metal,0,0.003796167206019163,0.0033167502842843533,0.004350459203124046,0.000579125015065074,1027352007.5238521,5,fp32,781.1072
149 +regression_stats,1000,39000,39000000,cpu,1,0.3240363751538098,0.3117389581166208,0.326583041343838,0.0,120356858.02709013,5,fp64,3431.46496
150 +regression_stats,1000,39000,39000000,cpu,18,0.031240916810929775,0.029546833131462336,0.03264595801010728,0.0,1248362851.7059293,5,fp64,3431.87456
151 +regression_stats,1000,39000,39000000,metal,0,0.026743208058178425,0.025766875129193068,0.02711204206570983,0.004475083318538964,1458314197.5771036,5,fp32,3360.11264
152 +regression_stats,10000,390,3900000,cpu,1,0.030644499696791172,0.030419666320085526,0.030872833915054798,0.0,127265905.41820379,5,fp64,3431.87456
153 +regression_stats,10000,390,3900000,cpu,18,0.003959249705076218,0.0036838343366980553,0.00489212479442358,0.0,985035117.8910861,5,fp64,2962.440192
154 +regression_stats,10000,390,3900000,metal,0,0.004190749954432249,0.00392800010740757,0.005979666020721197,0.0011161250295117497,930621020.6779948,5,fp32,3432.742912
155 +regression_stats,10000,3900,39000000,cpu,1,0.3569141672924161,0.3479222496971488,0.35834929207339883,0.0,109269969.01203898,5,fp64,2962.440192
156 +regression_stats,10000,3900,39000000,cpu,18,0.03749012481421232,0.03214179212227464,0.03947866568341851,0.0,1040273943.9591113,5,fp64,2962.440192
157 +regression_stats,10000,3900,39000000,metal,0,0.026574499905109406,0.026411292143166065,0.026990290731191635,0.004499250091612339,1467572301.9909616,5,fp32,3221.83168
158 +rolling_sumsq,1,390,390,cpu,1,9.578652679920197e-07,8.330680429935455e-07,1.0831281542778015e-06,0.0,407155382.94603795,5,fp64,3431.497728
159 +rolling_sumsq,1,390,390,cpu,18,7.920898497104645e-07,7.920898497104645e-07,8.749775588512421e-07,0.0,492368384.9029982,5,fp64,3431.87456
160 +rolling_sumsq,1,390,390,metal,0,0.0002839169465005398,0.0001594587229192257,0.0008917916566133499,1.8750084564089775e-05,1373641.146845944,5,fp32,3253.567488
161 +rolling_sumsq,1,3900,3900,cpu,1,7.4999406933784485e-06,7.33276829123497e-06,7.542315870523453e-06,0.0,520004111.9582764,5,fp64,3431.530496
162 +rolling_sumsq,1,3900,3900,cpu,18,7.4999406933784485e-06,7.415656000375748e-06,8.250121027231216e-06,0.0,520004111.9582764,5,fp64,3255.468032
163 +rolling_sumsq,1,3900,3900,metal,0,0.0002416251227259636,0.0001499168574810028,0.0002560419961810112,4.958361387252808e-06,16140705.718018986,5,fp32,2962.440192
164 +rolling_sumsq,1,39000,39000,cpu,1,6.93327747285366e-05,6.899982690811157e-05,7.020775228738785e-05,0.0,562504531.9864868,5,fp64,3355.8528
165 +rolling_sumsq,1,39000,39000,cpu,18,7.025012746453285e-05,6.979191675782204e-05,8.300039917230606e-05,0.0,555159135.0448426,5,fp64,781.1072
166 +rolling_sumsq,1,39000,39000,metal,0,0.00016458332538604736,0.00015858327969908714,0.00017341692000627518,1.9583385437726974e-05,236962036.75871435,5,fp32,2962.440192
167 +rolling_sumsq,1,390000,390000,cpu,1,0.0006914162077009678,0.000687750056385994,0.0007007499225437641,0.0,564059672.9671572,5,fp64,3432.742912
168 +rolling_sumsq,1,390000,390000,cpu,18,0.000718916766345501,0.0007105418480932713,0.0012256246991455555,0.0,542482827.2993312,5,fp64,2962.440192
169 +rolling_sumsq,1,390000,390000,metal,0,0.0007903752848505974,0.000574291218072176,0.0009351670742034912,6.225006654858589e-05,493436481.97921664,5,fp32,2962.440192
170 +rolling_sumsq,10,390,3900,cpu,1,7.1660615503787994e-06,7.000286132097244e-06,7.166992872953415e-06,0.0,544231998.6483852,5,fp64,3432.742912
171 +rolling_sumsq,10,390,3900,cpu,18,1.800013706088066e-05,1.5374738723039627e-05,2.3958273231983185e-05,0.0,216665016.87233216,5,fp64,3432.742912
172 +rolling_sumsq,10,390,3900,metal,0,0.0002032076008617878,0.00014958297833800316,0.0006746253930032253,1.4499993994832039e-05,19192195.486095995,5,fp32,17.170432
173 +rolling_sumsq,10,3900,39000,cpu,1,6.929086521267891e-05,6.908271461725235e-05,6.937514990568161e-05,0.0,562844754.2153615,5,fp64,2962.440192
174 +rolling_sumsq,10,3900,39000,cpu,18,4.487484693527222e-05,3.987457603216171e-05,5.0374772399663925e-05,0.0,869083744.313465,5,fp64,2962.440192
175 +rolling_sumsq,10,3900,39000,metal,0,0.00016070762649178505,0.00014404207468032837,0.00017450004816055298,1.9625062122941017e-05,242676722.01601195,5,fp32,2962.440192
176 +rolling_sumsq,10,39000,390000,cpu,1,0.0007095411419868469,0.0007064170204102993,0.000905290711671114,0.0,549651002.4886332,5,fp64,3432.742912
177 +rolling_sumsq,10,39000,390000,cpu,18,0.000132707878947258,0.00013195769861340523,0.00013837497681379318,0.0,2938785572.4451556,5,fp64,3358.88384
178 +rolling_sumsq,10,39000,390000,metal,0,0.0007357923313975334,0.0007097921334207058,0.0007738331332802773,9.062490426003933e-05,530040859.8432253,5,fp32,3431.46496
179 +rolling_sumsq,10,390000,3900000,cpu,1,0.006913874763995409,0.00687399972230196,0.006919416133314371,0.0,564083113.033748,5,fp64,3368.943616
180 +rolling_sumsq,10,390000,3900000,cpu,18,0.0017658751457929611,0.0013864999637007713,0.0021367911249399185,0.0,2208536662.0009346,5,fp64,2962.440192
181 +rolling_sumsq,10,390000,3900000,metal,0,0.002544207964092493,0.0024965000338852406,0.0026084999553859234,0.00076149997767061,1532893558.6407974,5,fp32,3253.567488
182 +rolling_sumsq,100,390,39000,cpu,1,6.991717964410782e-05,6.962474435567856e-05,7.033301517367363e-05,0.0,557802820.4014759,5,fp64,3368.943616
183 +rolling_sumsq,100,390,39000,cpu,18,0.00017983326688408852,0.00014462508261203766,0.0002232920378446579,0.0,216867550.01307648,5,fp64,2962.440192
184 +rolling_sumsq,100,390,39000,metal,0,0.0002676667645573616,0.00017749983817338943,0.0007679169066250324,9.541632607579231e-06,145703558.1705259,5,fp32,2962.440192
185 +rolling_sumsq,100,3900,390000,cpu,1,0.000806666910648346,0.0007096659392118454,0.0011533750221133232,0.0,483470928.151179,5,fp64,2962.440192
186 +rolling_sumsq,100,3900,390000,cpu,18,0.00020312517881393433,0.00012504169717431068,0.0002259998582303524,0.0,1919998309.797161,5,fp64,781.484032
187 +rolling_sumsq,100,3900,390000,metal,0,0.0006820829585194588,0.0003593750298023224,0.0008333330042660236,9.058334399014711e-05,571777956.2277012,5,fp32,3431.530496
188 +rolling_sumsq,100,39000,3900000,cpu,1,0.007338124793022871,0.007089000195264816,0.008123625069856644,0.0,531470928.88201374,5,fp64,2962.440192
189 +rolling_sumsq,100,39000,3900000,cpu,18,0.0010874588042497635,0.0009993752464652061,0.0013045421801507473,0.0,3586342751.3381577,5,fp64,2962.440192
190 +rolling_sumsq,100,39000,3900000,metal,0,0.002226833254098892,0.0021508331410586834,0.002632542047649622,0.00043350004125386477,1751365978.0413911,5,fp32,3431.87456
191 +rolling_sumsq,100,390000,39000000,cpu,1,0.06962170917540789,0.06953629199415445,0.06967033399268985,0.0,560170103.0025239,5,fp64,3222.339584
192 +rolling_sumsq,100,390000,39000000,cpu,18,0.009413291700184345,0.009286124724894762,0.010024874936789274,0.0,4143077814.027185,5,fp64,3355.8528
193 +rolling_sumsq,100,390000,39000000,metal,0,0.014852333813905716,0.014340042136609554,0.01528970804065466,0.0023322500055655837,2625849949.823083,5,fp32,3255.451648
194 +rolling_sumsq,1000,390,390000,cpu,1,0.0007188748568296432,0.0007158750668168068,0.0007281671278178692,0.0,542514453.3778304,5,fp64,3431.563264
195 +rolling_sumsq,1000,390,390000,cpu,18,0.0002710837870836258,0.0002649589441716671,0.00028412509709596634,0.0,1438669586.977882,5,fp64,3431.858176
196 +rolling_sumsq,1000,390,390000,metal,0,0.0009075421839952469,0.000882917083799839,0.000995416659861803,2.3708329536020756e-05,429732090.5603684,5,fp32,2962.440192
197 +rolling_sumsq,1000,3900,3900000,cpu,1,0.00695441709831357,0.006937959231436253,0.006972583010792732,0.0,560794664.0050883,5,fp64,3432.742912
198 +rolling_sumsq,1000,3900,3900000,cpu,18,0.0010273326188325882,0.0008542081341147423,0.0010719997808337212,0.0,3796238850.5017724,5,fp64,556.466176
199 +rolling_sumsq,1000,3900,3900000,metal,0,0.002144791651517153,0.0021287081763148308,0.0034982911311089993,0.0007578750373795629,1818358439.264379,5,fp32,3431.497728
200 +rolling_sumsq,1000,39000,39000000,cpu,1,0.07026320835575461,0.0701742498204112,0.07056499971076846,0.0,555055781.1498778,5,fp64,2962.440192
201 +rolling_sumsq,1000,39000,39000000,cpu,18,0.00831229193136096,0.007511000148952007,0.008729041088372469,0.0,4691846764.05062,5,fp64,3368.894464
202 +rolling_sumsq,1000,39000,39000000,metal,0,0.014728832989931107,0.014530166983604431,0.01593674998730421,0.002570083364844322,2647867623.094178,5,fp32,3368.894464
203 +rolling_sumsq,10000,390,3900000,cpu,1,0.007047916762530804,0.007002290803939104,0.007088833022862673,0.0,553355002.8192397,5,fp64,3431.858176
204 +rolling_sumsq,10000,390,3900000,cpu,18,0.00107216602191329,0.001034500077366829,0.0011164997704327106,0.0,3637496358.111046,5,fp64,2962.440192
205 +rolling_sumsq,10000,390,3900000,metal,0,0.0021627498790621758,0.002053916919976473,0.0022570830769836903,0.0002617916325107217,1803259839.5941842,5,fp32,3431.858176
206 +rolling_sumsq,10000,3900,39000000,cpu,1,0.06922604190185666,0.06907229218631983,0.06939475005492568,0.0,563371802.4105898,5,fp64,3360.096256
207 +rolling_sumsq,10000,3900,39000000,cpu,18,0.00654304213821888,0.006384790875017643,0.00675958301872015,0.0,5960530159.540807,5,fp64,3432.742912
208 +rolling_sumsq,10000,3900,39000000,metal,0,0.014753291849046946,0.01457533286884427,0.01564762508496642,0.0025377500569447875,2643477835.254739,5,fp32,2962.440192
added experiments/results/bench_primitives_summary.json +4880 −0
@@ -0,0 +1,4880 @@
1 +{
2 + "source": "experiments/results/raw/bench_primitives.jsonl",
3 + "rows": [
4 + {
5 + "kernel": "garch_nll_P1",
6 + "S": 1,
7 + "n": 390,
8 + "elements": 390,
9 + "backend": "cpu",
10 + "threads": 1,
11 + "median_s": 1.7909333109855652e-06,
12 + "ci_lo": 1.7499551177024841e-06,
13 + "ci_hi": 1.8328428268432617e-06,
14 + "device_s": 0.0,
15 + "elements_per_s": 217763552.44929796,
16 + "reps": 5,
17 + "precision": "fp64",
18 + "peak_rss_mb": 3255.451648
19 + },
20 + {
21 + "kernel": "garch_nll_P1",
22 + "S": 1,
23 + "n": 390,
24 + "elements": 390,
25 + "backend": "cpu",
26 + "threads": 18,
27 + "median_s": 1.7499551177024841e-06,
28 + "ci_lo": 1.6670674085617065e-06,
29 + "ci_hi": 1.8333084881305695e-06,
30 + "device_s": 0.0,
31 + "elements_per_s": 222862858.62692922,
32 + "reps": 5,
33 + "precision": "fp64",
34 + "peak_rss_mb": 3368.943616
35 + },
36 + {
37 + "kernel": "garch_nll_P1",
38 + "S": 1,
39 + "n": 390,
40 + "elements": 390,
41 + "backend": "metal",
42 + "threads": 0,
43 + "median_s": 0.0009180000051856041,
44 + "ci_lo": 0.00044724997133016586,
45 + "ci_hi": 0.0009358339011669159,
46 + "device_s": 0.00032679166179150343,
47 + "elements_per_s": 424836.59890736995,
48 + "reps": 5,
49 + "precision": "fp32",
50 + "peak_rss_mb": 2962.440192
51 + },
52 + {
53 + "kernel": "garch_nll_P1",
54 + "S": 1,
55 + "n": 3900,
56 + "elements": 3900,
57 + "backend": "cpu",
58 + "threads": 1,
59 + "median_s": 1.6250181943178177e-05,
60 + "ci_lo": 1.6207806766033173e-05,
61 + "ci_hi": 1.637497916817665e-05,
62 + "device_s": 0.0,
63 + "elements_per_s": 239997312.86930108,
64 + "reps": 5,
65 + "precision": "fp64",
66 + "peak_rss_mb": 2962.440192
67 + },
68 + {
69 + "kernel": "garch_nll_P1",
70 + "S": 1,
71 + "n": 3900,
72 + "elements": 3900,
73 + "backend": "cpu",
74 + "threads": 18,
75 + "median_s": 1.695798709988594e-05,
76 + "ci_lo": 1.691700890660286e-05,
77 + "ci_hi": 1.9416213035583496e-05,
78 + "device_s": 0.0,
79 + "elements_per_s": 229980125.41395503,
80 + "reps": 5,
81 + "precision": "fp64",
82 + "peak_rss_mb": 3431.858176
83 + },
84 + {
85 + "kernel": "garch_nll_P1",
86 + "S": 1,
87 + "n": 3900,
88 + "elements": 3900,
89 + "backend": "metal",
90 + "threads": 0,
91 + "median_s": 0.001348957885056734,
92 + "ci_lo": 0.0010095001198351383,
93 + "ci_hi": 0.0015331669710576534,
94 + "device_s": 0.0011987084290012717,
95 + "elements_per_s": 2891120.6518771155,
96 + "reps": 5,
97 + "precision": "fp32",
98 + "peak_rss_mb": 2962.440192
99 + },
100 + {
101 + "kernel": "garch_nll_P1",
102 + "S": 10,
103 + "n": 390,
104 + "elements": 3900,
105 + "backend": "cpu",
106 + "threads": 1,
107 + "median_s": 2.1916814148426056e-05,
108 + "ci_lo": 2.1541956812143326e-05,
109 + "ci_hi": 7.208297029137611e-05,
110 + "device_s": 0.0,
111 + "elements_per_s": 177945570.62847915,
112 + "reps": 5,
113 + "precision": "fp64",
114 + "peak_rss_mb": 2962.440192
115 + },
116 + {
117 + "kernel": "garch_nll_P1",
118 + "S": 10,
119 + "n": 390,
120 + "elements": 3900,
121 + "backend": "cpu",
122 + "threads": 18,
123 + "median_s": 2.929195761680603e-05,
124 + "ci_lo": 1.7000362277030945e-05,
125 + "ci_hi": 4.200031980872154e-05,
126 + "device_s": 0.0,
127 + "elements_per_s": 133142347.50095384,
128 + "reps": 5,
129 + "precision": "fp64",
130 + "peak_rss_mb": 2962.440192
131 + },
132 + {
133 + "kernel": "garch_nll_P1",
134 + "S": 10,
135 + "n": 390,
136 + "elements": 3900,
137 + "backend": "metal",
138 + "threads": 0,
139 + "median_s": 0.0003432091325521469,
140 + "ci_lo": 0.0003193751908838749,
141 + "ci_hi": 0.0009956671856343746,
142 + "device_s": 0.00019762502051889896,
143 + "elements_per_s": 11363333.98531415,
144 + "reps": 5,
145 + "precision": "fp32",
146 + "peak_rss_mb": 2920.169472
147 + },
148 + {
149 + "kernel": "garch_nll_P1",
150 + "S": 10,
151 + "n": 3900,
152 + "elements": 39000,
153 + "backend": "cpu",
154 + "threads": 1,
155 + "median_s": 0.0002155420370399952,
156 + "ci_lo": 0.00016279099509119987,
157 + "ci_hi": 0.00037720799446105957,
158 + "device_s": 0.0,
159 + "elements_per_s": 180939182.60948467,
160 + "reps": 5,
161 + "precision": "fp64",
162 + "peak_rss_mb": 576.782336
163 + },
164 + {
165 + "kernel": "garch_nll_P1",
166 + "S": 10,
167 + "n": 3900,
168 + "elements": 39000,
169 + "backend": "cpu",
170 + "threads": 18,
171 + "median_s": 6.916606798768044e-05,
172 + "ci_lo": 6.245775148272514e-05,
173 + "ci_hi": 7.533328607678413e-05,
174 + "device_s": 0.0,
175 + "elements_per_s": 563860302.2358668,
176 + "reps": 5,
177 + "precision": "fp64",
178 + "peak_rss_mb": 781.43488
179 + },
180 + {
181 + "kernel": "garch_nll_P1",
182 + "S": 10,
183 + "n": 3900,
184 + "elements": 39000,
185 + "backend": "metal",
186 + "threads": 0,
187 + "median_s": 0.0014300826005637646,
188 + "ci_lo": 0.0012115412391722202,
189 + "ci_hi": 0.0016847080551087856,
190 + "device_s": 0.0010766249615699053,
191 + "elements_per_s": 27271152.019208886,
192 + "reps": 5,
193 + "precision": "fp32",
194 + "peak_rss_mb": 3360.11264
195 + },
196 + {
197 + "kernel": "garch_nll_P1",
198 + "S": 100,
199 + "n": 390,
200 + "elements": 39000,
201 + "backend": "cpu",
202 + "threads": 1,
203 + "median_s": 0.0001916671171784401,
204 + "ci_lo": 0.0001916252076625824,
205 + "ci_hi": 0.0002199173904955387,
206 + "device_s": 0.0,
207 + "elements_per_s": 203477782.59580857,
208 + "reps": 5,
209 + "precision": "fp64",
210 + "peak_rss_mb": 3431.87456
211 + },
212 + {
213 + "kernel": "garch_nll_P1",
214 + "S": 100,
215 + "n": 390,
216 + "elements": 39000,
217 + "backend": "cpu",
218 + "threads": 18,
219 + "median_s": 0.00016116676852107048,
220 + "ci_lo": 0.00015066703781485558,
221 + "ci_hi": 0.00017320923507213593,
222 + "device_s": 0.0,
223 + "elements_per_s": 241985369.30335766,
224 + "reps": 5,
225 + "precision": "fp64",
226 + "peak_rss_mb": 3359.932416
227 + },
228 + {
229 + "kernel": "garch_nll_P1",
230 + "S": 100,
231 + "n": 390,
232 + "elements": 39000,
233 + "backend": "metal",
234 + "threads": 0,
235 + "median_s": 0.0006238752976059914,
236 + "ci_lo": 0.0006115422584116459,
237 + "ci_hi": 0.0006384579464793205,
238 + "device_s": 0.0004310833755880594,
239 + "elements_per_s": 62512492.720348835,
240 + "reps": 5,
241 + "precision": "fp32",
242 + "peak_rss_mb": 3355.901952
243 + },
244 + {
245 + "kernel": "garch_nll_P1",
246 + "S": 100,
247 + "n": 3900,
248 + "elements": 390000,
249 + "backend": "cpu",
250 + "threads": 1,
251 + "median_s": 0.0016154590994119644,
252 + "ci_lo": 0.0016071251593530178,
253 + "ci_hi": 0.0016200002282857895,
254 + "device_s": 0.0,
255 + "elements_per_s": 241417439.87326083,
256 + "reps": 5,
257 + "precision": "fp64",
258 + "peak_rss_mb": 3222.339584
259 + },
260 + {
261 + "kernel": "garch_nll_P1",
262 + "S": 100,
263 + "n": 3900,
264 + "elements": 390000,
265 + "backend": "cpu",
266 + "threads": 18,
267 + "median_s": 0.00020695803686976433,
268 + "ci_lo": 0.00020262505859136581,
269 + "ci_hi": 0.0002222089096903801,
270 + "device_s": 0.0,
271 + "elements_per_s": 1884439985.5098226,
272 + "reps": 5,
273 + "precision": "fp64",
274 + "peak_rss_mb": 2962.440192
275 + },
276 + {
277 + "kernel": "garch_nll_P1",
278 + "S": 100,
279 + "n": 3900,
280 + "elements": 390000,
281 + "backend": "metal",
282 + "threads": 0,
283 + "median_s": 0.0016493331640958786,
284 + "ci_lo": 0.0015722080133855343,
285 + "ci_hi": 0.004429208114743233,
286 + "device_s": 0.0009533748961985111,
287 + "elements_per_s": 236459199.68740082,
288 + "reps": 5,
289 + "precision": "fp32",
290 + "peak_rss_mb": 2962.440192
291 + },
292 + {
293 + "kernel": "garch_nll_P1",
294 + "S": 1000,
295 + "n": 390,
296 + "elements": 390000,
297 + "backend": "cpu",
298 + "threads": 1,
299 + "median_s": 0.0016390001401305199,
300 + "ci_lo": 0.001627500168979168,
301 + "ci_hi": 0.0016581248492002487,
302 + "device_s": 0.0,
303 + "elements_per_s": 237949949.14945084,
304 + "reps": 5,
305 + "precision": "fp64",
306 + "peak_rss_mb": 3359.932416
307 + },
308 + {
309 + "kernel": "garch_nll_P1",
310 + "S": 1000,
311 + "n": 390,
312 + "elements": 390000,
313 + "backend": "cpu",
314 + "threads": 18,
315 + "median_s": 0.0002765827812254429,
316 + "ci_lo": 0.00027295900508761406,
317 + "ci_hi": 0.00033191684633493423,
318 + "device_s": 0.0,
319 + "elements_per_s": 1410066086.8042636,
320 + "reps": 5,
321 + "precision": "fp64",
322 + "peak_rss_mb": 2962.440192
323 + },
324 + {
325 + "kernel": "garch_nll_P1",
326 + "S": 1000,
327 + "n": 390,
328 + "elements": 390000,
329 + "backend": "metal",
330 + "threads": 0,
331 + "median_s": 0.0011531668715178967,
332 + "ci_lo": 0.0010962923988699913,
333 + "ci_hi": 0.0011774590238928795,
334 + "device_s": 0.00017799995839595795,
335 + "elements_per_s": 338199101.65009224,
336 + "reps": 5,
337 + "precision": "fp32",
338 + "peak_rss_mb": 3222.339584
339 + },
340 + {
341 + "kernel": "garch_nll_P1",
342 + "S": 1000,
343 + "n": 3900,
344 + "elements": 3900000,
345 + "backend": "cpu",
346 + "threads": 1,
347 + "median_s": 0.018310166895389557,
348 + "ci_lo": 0.01771716633811593,
349 + "ci_hi": 0.019527375232428312,
350 + "device_s": 0.0,
351 + "elements_per_s": 212996420.09172553,
352 + "reps": 5,
353 + "precision": "fp64",
354 + "peak_rss_mb": 572.112896
355 + },
356 + {
357 + "kernel": "garch_nll_P1",
358 + "S": 1000,
359 + "n": 3900,
360 + "elements": 3900000,
361 + "backend": "cpu",
362 + "threads": 18,
363 + "median_s": 0.0014978330582380295,
364 + "ci_lo": 0.001383374910801649,
365 + "ci_hi": 0.0015932917594909668,
366 + "device_s": 0.0,
367 + "elements_per_s": 2603761466.306366,
368 + "reps": 5,
369 + "precision": "fp64",
370 + "peak_rss_mb": 3432.742912
371 + },
372 + {
373 + "kernel": "garch_nll_P1",
374 + "S": 1000,
375 + "n": 3900,
376 + "elements": 3900000,
377 + "backend": "metal",
378 + "threads": 0,
379 + "median_s": 0.0072068748995661736,
380 + "ci_lo": 0.007158916909247637,
381 + "ci_hi": 0.009398084133863449,
382 + "device_s": 0.0010924999369308352,
383 + "elements_per_s": 541149951.171591,
384 + "reps": 5,
385 + "precision": "fp32",
386 + "peak_rss_mb": 3360.11264
387 + },
388 + {
389 + "kernel": "garch_nll_P1",
390 + "S": 10000,
391 + "n": 390,
392 + "elements": 3900000,
393 + "backend": "cpu",
394 + "threads": 1,
395 + "median_s": 0.017741417046636343,
396 + "ci_lo": 0.01734916679561138,
397 + "ci_hi": 0.017816499806940556,
398 + "device_s": 0.0,
399 + "elements_per_s": 219824605.3146817,
400 + "reps": 5,
401 + "precision": "fp64",
402 + "peak_rss_mb": 3355.901952
403 + },
404 + {
405 + "kernel": "garch_nll_P1",
406 + "S": 10000,
407 + "n": 390,
408 + "elements": 3900000,
409 + "backend": "cpu",
410 + "threads": 18,
411 + "median_s": 0.0022433330304920673,
412 + "ci_lo": 0.002103041857481003,
413 + "ci_hi": 0.002292540855705738,
414 + "device_s": 0.0,
415 + "elements_per_s": 1738484632.905596,
416 + "reps": 5,
417 + "precision": "fp64",
418 + "peak_rss_mb": 2962.440192
419 + },
420 + {
421 + "kernel": "garch_nll_P1",
422 + "S": 10000,
423 + "n": 390,
424 + "elements": 3900000,
425 + "backend": "metal",
426 + "threads": 0,
427 + "median_s": 0.00675466563552618,
428 + "ci_lo": 0.006540417205542326,
429 + "ci_hi": 0.007071124855428934,
430 + "device_s": 0.00046787504106760025,
431 + "elements_per_s": 577378690.5880197,
432 + "reps": 5,
433 + "precision": "fp32",
434 + "peak_rss_mb": 2962.440192
435 + },
436 + {
437 + "kernel": "garch_nll_P1",
438 + "S": 10000,
439 + "n": 3900,
440 + "elements": 39000000,
441 + "backend": "cpu",
442 + "threads": 1,
443 + "median_s": 0.16226391727104783,
444 + "ci_lo": 0.16133012529462576,
445 + "ci_hi": 0.16484179068356752,
446 + "device_s": 0.0,
447 + "elements_per_s": 240349183.3298581,
448 + "reps": 5,
449 + "precision": "fp64",
450 + "peak_rss_mb": 3255.451648
451 + },
452 + {
453 + "kernel": "garch_nll_P1",
454 + "S": 10000,
455 + "n": 3900,
456 + "elements": 39000000,
457 + "backend": "cpu",
458 + "threads": 18,
459 + "median_s": 0.01383341709151864,
460 + "ci_lo": 0.012941500172019005,
461 + "ci_hi": 0.014138792175799608,
462 + "device_s": 0.0,
463 + "elements_per_s": 2819260038.3538756,
464 + "reps": 5,
465 + "precision": "fp64",
466 + "peak_rss_mb": 3254.272
467 + },
468 + {
469 + "kernel": "garch_nll_P1",
470 + "S": 10000,
471 + "n": 3900,
472 + "elements": 39000000,
473 + "backend": "metal",
474 + "threads": 0,
475 + "median_s": 0.06106641702353954,
476 + "ci_lo": 0.05950908316299319,
477 + "ci_hi": 0.0616582497023046,
478 + "device_s": 0.004054000019095838,
479 + "elements_per_s": 638648899.0334327,
480 + "reps": 5,
481 + "precision": "fp32",
482 + "peak_rss_mb": 3355.901952
483 + },
484 + {
485 + "kernel": "garch_nll_P64",
486 + "S": 1,
487 + "n": 390,
488 + "elements": 390,
489 + "backend": "cpu",
490 + "threads": 1,
491 + "median_s": 8.287513628602028e-05,
492 + "ci_lo": 8.27503390610218e-05,
493 + "ci_hi": 8.458364754915237e-05,
494 + "device_s": 0.0,
495 + "elements_per_s": 4705874.614239238,
496 + "reps": 5,
497 + "precision": "fp64",
498 + "peak_rss_mb": 577.159168
499 + },
500 + {
501 + "kernel": "garch_nll_P64",
502 + "S": 1,
503 + "n": 390,
504 + "elements": 390,
505 + "backend": "cpu",
506 + "threads": 18,
507 + "median_s": 0.00017224997282028198,
508 + "ci_lo": 0.00012754183262586594,
509 + "ci_hi": 0.0002139592543244362,
510 + "device_s": 0.0,
511 + "elements_per_s": 2264151.3006617934,
512 + "reps": 5,
513 + "precision": "fp64",
514 + "peak_rss_mb": 3431.514112
515 + },
516 + {
517 + "kernel": "garch_nll_P64",
518 + "S": 1,
519 + "n": 390,
520 + "elements": 390,
521 + "backend": "metal",
522 + "threads": 0,
523 + "median_s": 0.0005012080073356628,
524 + "ci_lo": 0.00047737499698996544,
525 + "ci_hi": 0.0006123748607933521,
526 + "device_s": 0.0003255000337958336,
527 + "elements_per_s": 778120.0505418383,
528 + "reps": 5,
529 + "precision": "fp32",
530 + "peak_rss_mb": 3431.46496
531 + },
532 + {
533 + "kernel": "garch_nll_P64",
534 + "S": 1,
535 + "n": 3900,
536 + "elements": 3900,
537 + "backend": "cpu",
538 + "threads": 1,
539 + "median_s": 0.0008078329265117645,
540 + "ci_lo": 0.0008031250908970833,
541 + "ci_hi": 0.0008203750476241112,
542 + "device_s": 0.0,
543 + "elements_per_s": 4827730.923076213,
544 + "reps": 5,
545 + "precision": "fp64",
546 + "peak_rss_mb": 3431.87456
547 + },
548 + {
549 + "kernel": "garch_nll_P64",
550 + "S": 1,
551 + "n": 3900,
552 + "elements": 3900,
553 + "backend": "cpu",
554 + "threads": 18,
555 + "median_s": 0.00014187488704919815,
556 + "ci_lo": 0.000135000329464674,
557 + "ci_hi": 0.00021779071539640427,
558 + "device_s": 0.0,
559 + "elements_per_s": 27489008.668937948,
560 + "reps": 5,
561 + "precision": "fp64",
562 + "peak_rss_mb": 3222.339584
563 + },
564 + {
565 + "kernel": "garch_nll_P64",
566 + "S": 1,
567 + "n": 3900,
568 + "elements": 3900,
569 + "backend": "metal",
570 + "threads": 0,
571 + "median_s": 0.0014235423877835274,
572 + "ci_lo": 0.00134983379393816,
573 + "ci_hi": 0.0033927499316632748,
574 + "device_s": 0.00122337497305125,
575 + "elements_per_s": 2739644.4485733556,
576 + "reps": 5,
577 + "precision": "fp32",
578 + "peak_rss_mb": 3431.87456
579 + },
580 + {
581 + "kernel": "garch_nll_P64",
582 + "S": 10,
583 + "n": 390,
584 + "elements": 3900,
585 + "backend": "cpu",
586 + "threads": 1,
587 + "median_s": 0.0008257082663476467,
588 + "ci_lo": 0.000809917226433754,
589 + "ci_hi": 0.0008320827037096024,
590 + "device_s": 0.0,
591 + "elements_per_s": 4723217.8227436915,
592 + "reps": 5,
593 + "precision": "fp64",
594 + "peak_rss_mb": 3432.742912
595 + },
596 + {
597 + "kernel": "garch_nll_P64",
598 + "S": 10,
599 + "n": 390,
600 + "elements": 3900,
601 + "backend": "cpu",
602 + "threads": 18,
603 + "median_s": 0.0002438751980662346,
604 + "ci_lo": 0.00013074977323412895,
605 + "ci_hi": 0.0002598753198981285,
606 + "device_s": 0.0,
607 + "elements_per_s": 15991786.089460358,
608 + "reps": 5,
609 + "precision": "fp64",
610 + "peak_rss_mb": 3368.943616
611 + },
612 + {
613 + "kernel": "garch_nll_P64",
614 + "S": 10,
615 + "n": 390,
616 + "elements": 3900,
617 + "backend": "metal",
618 + "threads": 0,
619 + "median_s": 0.0010179998353123665,
620 + "ci_lo": 0.0004632081836462021,
621 + "ci_hi": 0.0010751672089099884,
622 + "device_s": 0.00032300001475960016,
623 + "elements_per_s": 3831041.877136759,
624 + "reps": 5,
625 + "precision": "fp32",
626 + "peak_rss_mb": 3431.530496
627 + },
628 + {
629 + "kernel": "garch_nll_P64",
630 + "S": 10,
631 + "n": 3900,
632 + "elements": 39000,
633 + "backend": "cpu",
634 + "threads": 1,
635 + "median_s": 0.008083874825388193,
636 + "ci_lo": 0.008056249935179949,
637 + "ci_hi": 0.00812424998730421,
638 + "device_s": 0.0,
639 + "elements_per_s": 4824419.086440666,
640 + "reps": 5,
641 + "precision": "fp64",
642 + "peak_rss_mb": 3355.901952
643 + },
644 + {
645 + "kernel": "garch_nll_P64",
646 + "S": 10,
647 + "n": 3900,
648 + "elements": 39000,
649 + "backend": "cpu",
650 + "threads": 18,
651 + "median_s": 0.000775500200688839,
652 + "ci_lo": 0.0006874999962747097,
653 + "ci_hi": 0.0008766250684857368,
654 + "device_s": 0.0,
655 + "elements_per_s": 50290122.38211957,
656 + "reps": 5,
657 + "precision": "fp64",
658 + "peak_rss_mb": 3432.742912
659 + },
660 + {
661 + "kernel": "garch_nll_P64",
662 + "S": 10,
663 + "n": 3900,
664 + "elements": 39000,
665 + "backend": "metal",
666 + "threads": 0,
667 + "median_s": 0.0013822498731315136,
668 + "ci_lo": 0.0008970410563051701,
669 + "ci_hi": 0.0033571659587323666,
670 + "device_s": 0.0006641249638050795,
671 + "elements_per_s": 28214869.654243305,
672 + "reps": 5,
673 + "precision": "fp32",
674 + "peak_rss_mb": 3431.530496
675 + },
676 + {
677 + "kernel": "garch_nll_P64",
678 + "S": 100,
679 + "n": 390,
680 + "elements": 39000,
681 + "backend": "cpu",
682 + "threads": 1,
683 + "median_s": 0.008346542250365019,
684 + "ci_lo": 0.008285791147500277,
685 + "ci_hi": 0.008543540723621845,
686 + "device_s": 0.0,
687 + "elements_per_s": 4672593.611839012,
688 + "reps": 5,
689 + "precision": "fp64",
690 + "peak_rss_mb": 3431.514112
691 + },
692 + {
693 + "kernel": "garch_nll_P64",
694 + "S": 100,
695 + "n": 390,
696 + "elements": 39000,
697 + "backend": "cpu",
698 + "threads": 18,
699 + "median_s": 0.001005750149488449,
700 + "ci_lo": 0.0009415419772267342,
701 + "ci_hi": 0.0010966667905449867,
702 + "device_s": 0.0,
703 + "elements_per_s": 38777026.30204572,
704 + "reps": 5,
705 + "precision": "fp64",
706 + "peak_rss_mb": 781.484032
707 + },
708 + {
709 + "kernel": "garch_nll_P64",
710 + "S": 100,
711 + "n": 390,
712 + "elements": 39000,
713 + "backend": "metal",
714 + "threads": 0,
715 + "median_s": 0.0005332920700311661,
716 + "ci_lo": 0.0005230000242590904,
717 + "ci_hi": 0.0005429168231785297,
718 + "device_s": 0.00033650000113993883,
719 + "elements_per_s": 73130658.02332444,
720 + "reps": 5,
721 + "precision": "fp32",
722 + "peak_rss_mb": 2962.440192
723 + },
724 + {
725 + "kernel": "garch_nll_P64",
726 + "S": 100,
727 + "n": 3900,
728 + "elements": 390000,
729 + "backend": "cpu",
730 + "threads": 1,
731 + "median_s": 0.0801338329911232,
732 + "ci_lo": 0.07999316696077585,
733 + "ci_hi": 0.08033083425834775,
734 + "device_s": 0.0,
735 + "elements_per_s": 4866858.172667244,
736 + "reps": 5,
737 + "precision": "fp64",
738 + "peak_rss_mb": 3359.932416
739 + },
740 + {
741 + "kernel": "garch_nll_P64",
742 + "S": 100,
743 + "n": 3900,
744 + "elements": 390000,
745 + "backend": "cpu",
746 + "threads": 18,
747 + "median_s": 0.006173874717205763,
748 + "ci_lo": 0.005890249740332365,
749 + "ci_hi": 0.006268457975238562,
750 + "device_s": 0.0,
751 + "elements_per_s": 63169406.22606451,
752 + "reps": 5,
753 + "precision": "fp64",
754 + "peak_rss_mb": 3432.742912
755 + },
756 + {
757 + "kernel": "garch_nll_P64",
758 + "S": 100,
759 + "n": 3900,
760 + "elements": 390000,
761 + "backend": "metal",
762 + "threads": 0,
763 + "median_s": 0.0021704169921576977,
764 + "ci_lo": 0.0018634586594998837,
765 + "ci_hi": 0.0022297906689345837,
766 + "device_s": 0.0010580417001619935,
767 + "elements_per_s": 179688972.86059555,
768 + "reps": 5,
769 + "precision": "fp32",
770 + "peak_rss_mb": 3431.858176
771 + },
772 + {
773 + "kernel": "garch_nll_P64",
774 + "S": 1000,
775 + "n": 390,
776 + "elements": 390000,
777 + "backend": "cpu",
778 + "threads": 1,
779 + "median_s": 0.09679854195564985,
780 + "ci_lo": 0.08949454175308347,
781 + "ci_hi": 0.10223195794969797,
782 + "device_s": 0.0,
783 + "elements_per_s": 4028986.306205791,
784 + "reps": 5,
785 + "precision": "fp64",
786 + "peak_rss_mb": 2962.440192
787 + },
788 + {
789 + "kernel": "garch_nll_P64",
790 + "S": 1000,
791 + "n": 390,
792 + "elements": 390000,
793 + "backend": "cpu",
794 + "threads": 18,
795 + "median_s": 0.00848708301782608,
796 + "ci_lo": 0.008417499717324972,
797 + "ci_hi": 0.008939292281866074,
798 + "device_s": 0.0,
799 + "elements_per_s": 45952183.94598623,
800 + "reps": 5,
801 + "precision": "fp64",
802 + "peak_rss_mb": 2962.440192
803 + },
804 + {
805 + "kernel": "garch_nll_P64",
806 + "S": 1000,
807 + "n": 390,
808 + "elements": 390000,
809 + "backend": "metal",
810 + "threads": 0,
811 + "median_s": 0.002336665987968445,
812 + "ci_lo": 0.002312499564141035,
813 + "ci_hi": 0.0027117920108139515,
814 + "device_s": 0.001452916651032865,
815 + "elements_per_s": 166904470.73228282,
816 + "reps": 5,
817 + "precision": "fp32",
818 + "peak_rss_mb": 3359.932416
819 + },
820 + {
821 + "kernel": "garch_nll_P64",
822 + "S": 1000,
823 + "n": 3900,
824 + "elements": 3900000,
825 + "backend": "cpu",
826 + "threads": 1,
827 + "median_s": 0.8561791670508683,
828 + "ci_lo": 0.8505779169499874,
829 + "ci_hi": 0.9446879159659147,
830 + "device_s": 0.0,
831 + "elements_per_s": 4555121.34619399,
832 + "reps": 5,
833 + "precision": "fp64",
834 + "peak_rss_mb": 2962.440192
835 + },
836 + {
837 + "kernel": "garch_nll_P64",
838 + "S": 1000,
839 + "n": 3900,
840 + "elements": 3900000,
841 + "backend": "cpu",
842 + "threads": 18,
843 + "median_s": 0.08150566695258021,
844 + "ci_lo": 0.0744811249896884,
845 + "ci_hi": 0.10778554202988744,
846 + "device_s": 0.0,
847 + "elements_per_s": 47849433.61384933,
848 + "reps": 5,
849 + "precision": "fp64",
850 + "peak_rss_mb": 3255.451648
851 + },
852 + {
853 + "kernel": "garch_nll_P64",
854 + "S": 1000,
855 + "n": 3900,
856 + "elements": 3900000,
857 + "backend": "metal",
858 + "threads": 0,
859 + "median_s": 0.010272707790136337,
860 + "ci_lo": 0.009604125283658504,
861 + "ci_hi": 0.010956583078950644,
862 + "device_s": 0.0029698750004172325,
863 + "elements_per_s": 379646737.7125929,
864 + "reps": 5,
865 + "precision": "fp32",
866 + "peak_rss_mb": 2962.440192
867 + },
868 + {
869 + "kernel": "realized_fused",
870 + "S": 1,
871 + "n": 390,
872 + "elements": 390,
873 + "backend": "cpu",
874 + "threads": 1,
875 + "median_s": 1.4998950064182281e-06,
876 + "ci_lo": 1.416075974702835e-06,
877 + "ci_hi": 4.041939973831177e-06,
878 + "device_s": 0.0,
879 + "elements_per_s": 260018200.16144055,
880 + "reps": 5,
881 + "precision": "fp64",
882 + "peak_rss_mb": 2962.440192
883 + },
884 + {
885 + "kernel": "realized_fused",
886 + "S": 1,
887 + "n": 390,
888 + "elements": 390,
889 + "backend": "cpu",
890 + "threads": 18,
891 + "median_s": 1.4998950064182281e-06,
892 + "ci_lo": 1.4579854905605316e-06,
893 + "ci_hi": 1.6670674085617065e-06,
894 + "device_s": 0.0,
895 + "elements_per_s": 260018200.16144055,
896 + "reps": 5,
897 + "precision": "fp64",
898 + "peak_rss_mb": 2962.440192
899 + },
900 + {
901 + "kernel": "realized_fused",
902 + "S": 1,
903 + "n": 390,
904 + "elements": 390,
905 + "backend": "metal",
906 + "threads": 0,
907 + "median_s": 0.0002344171516597271,
908 + "ci_lo": 0.00019499985501170158,
909 + "ci_hi": 0.00025337468832731247,
910 + "device_s": 3.199989441782236e-05,
911 + "elements_per_s": 1663700.7882687368,
912 + "reps": 5,
913 + "precision": "fp32",
914 + "peak_rss_mb": 3432.742912
915 + },
916 + {
917 + "kernel": "realized_fused",
918 + "S": 1,
919 + "n": 3900,
920 + "elements": 3900,
921 + "backend": "cpu",
922 + "threads": 1,
923 + "median_s": 1.1624768376350403e-05,
924 + "ci_lo": 1.1375173926353455e-05,
925 + "ci_hi": 1.2792181223630905e-05,
926 + "device_s": 0.0,
927 + "elements_per_s": 335490555.4879026,
928 + "reps": 5,
929 + "precision": "fp64",
930 + "peak_rss_mb": 2962.440192
931 + },
932 + {
933 + "kernel": "realized_fused",
934 + "S": 1,
935 + "n": 3900,
936 + "elements": 3900,
937 + "backend": "cpu",
938 + "threads": 18,
939 + "median_s": 1.116609200835228e-05,
940 + "ci_lo": 1.1124648153781891e-05,
941 + "ci_hi": 1.2124888598918915e-05,
942 + "device_s": 0.0,
943 + "elements_per_s": 349271705.5423496,
944 + "reps": 5,
945 + "precision": "fp64",
946 + "peak_rss_mb": 3432.742912
947 + },
948 + {
949 + "kernel": "realized_fused",
950 + "S": 1,
951 + "n": 3900,
952 + "elements": 3900,
953 + "backend": "metal",
954 + "threads": 0,
955 + "median_s": 0.0006333747878670692,
956 + "ci_lo": 0.0001420830376446247,
957 + "ci_hi": 0.000777125358581543,
958 + "device_s": 2.037500962615013e-05,
959 + "elements_per_s": 6157491.7011356,
960 + "reps": 5,
961 + "precision": "fp32",
962 + "peak_rss_mb": 2913.878016
963 + },
964 + {
965 + "kernel": "realized_fused",
966 + "S": 1,
967 + "n": 39000,
968 + "elements": 39000,
969 + "backend": "cpu",
970 + "threads": 1,
971 + "median_s": 0.00018258299678564072,
972 + "ci_lo": 0.0001637078821659088,
973 + "ci_hi": 0.00037499982863664627,
974 + "device_s": 0.0,
975 + "elements_per_s": 213601489.11230472,
976 + "reps": 5,
977 + "precision": "fp64",
978 + "peak_rss_mb": 2962.440192
979 + },
980 + {
981 + "kernel": "realized_fused",
982 + "S": 1,
983 + "n": 39000,
984 + "elements": 39000,
985 + "backend": "cpu",
986 + "threads": 18,
987 + "median_s": 0.0001671668142080307,
988 + "ci_lo": 0.00015920819714665413,
989 + "ci_hi": 0.00017870916053652763,
990 + "device_s": 0.0,
991 + "elements_per_s": 233299893.79032168,
992 + "reps": 5,
993 + "precision": "fp64",
994 + "peak_rss_mb": 2962.440192
995 + },
996 + {
997 + "kernel": "realized_fused",
998 + "S": 1,
999 + "n": 39000,
1000 + "elements": 39000,
1001 + "backend": "metal",
1002 + "threads": 0,
1003 + "median_s": 0.000206624623388052,
1004 + "ci_lo": 0.0001971670426428318,
1005 + "ci_hi": 0.00024229194968938828,
1006 + "device_s": 4.3874955736100674e-05,
1007 + "elements_per_s": 188748075.42543435,
1008 + "reps": 5,
1009 + "precision": "fp32",
1010 + "peak_rss_mb": 3355.901952
1011 + },
1012 + {
1013 + "kernel": "realized_fused",
1014 + "S": 1,
1015 + "n": 390000,
1016 + "elements": 390000,
1017 + "backend": "cpu",
1018 + "threads": 1,
1019 + "median_s": 0.002032375428825617,
1020 + "ci_lo": 0.002019832842051983,
1021 + "ci_hi": 0.002052249852567911,
1022 + "device_s": 0.0,
1023 + "elements_per_s": 191893679.91196227,
1024 + "reps": 5,
1025 + "precision": "fp64",
1026 + "peak_rss_mb": 3222.339584
1027 + },
1028 + {
1029 + "kernel": "realized_fused",
1030 + "S": 1,
1031 + "n": 390000,
1032 + "elements": 390000,
1033 + "backend": "cpu",
1034 + "threads": 18,
1035 + "median_s": 0.0020858747884631157,
1036 + "ci_lo": 0.002067000139504671,
1037 + "ci_hi": 0.0027133747935295105,
1038 + "device_s": 0.0,
1039 + "elements_per_s": 186971913.25053322,
1040 + "reps": 5,
1041 + "precision": "fp64",
1042 + "peak_rss_mb": 2962.440192
1043 + },
1044 + {
1045 + "kernel": "realized_fused",
1046 + "S": 1,
1047 + "n": 390000,
1048 + "elements": 390000,
1049 + "backend": "metal",
1050 + "threads": 0,
1051 + "median_s": 0.0009353337809443474,
1052 + "ci_lo": 0.00017445813864469528,
1053 + "ci_hi": 0.0009425836615264416,
1054 + "device_s": 1.2583332136273384e-05,
1055 + "elements_per_s": 416963449.78178984,
1056 + "reps": 5,
1057 + "precision": "fp32",
1058 + "peak_rss_mb": 781.1072
1059 + },
1060 + {
1061 + "kernel": "realized_fused",
1062 + "S": 10,
1063 + "n": 390,
1064 + "elements": 3900,
1065 + "backend": "cpu",
1066 + "threads": 1,
1067 + "median_s": 1.1292286217212677e-05,
1068 + "ci_lo": 1.1167023330926895e-05,
1069 + "ci_hi": 1.2415926903486252e-05,
1070 + "device_s": 0.0,
1071 + "elements_per_s": 345368504.214433,
1072 + "reps": 5,
1073 + "precision": "fp64",
1074 + "peak_rss_mb": 3432.742912
1075 + },
1076 + {
1077 + "kernel": "realized_fused",
1078 + "S": 10,
1079 + "n": 390,
1080 + "elements": 3900,
1081 + "backend": "cpu",
1082 + "threads": 18,
1083 + "median_s": 0.00014200014993548393,
1084 + "ci_lo": 0.0001277080737054348,
1085 + "ci_hi": 0.0001649591140449047,
1086 + "device_s": 0.0,
1087 + "elements_per_s": 27464759.732802525,
1088 + "reps": 5,
1089 + "precision": "fp64",
1090 + "peak_rss_mb": 577.175552
1091 + },
1092 + {
1093 + "kernel": "realized_fused",
1094 + "S": 10,
1095 + "n": 390,
1096 + "elements": 3900,
1097 + "backend": "metal",
1098 + "threads": 0,
1099 + "median_s": 0.0002327919937670231,
1100 + "ci_lo": 0.00019591627642512321,
1101 + "ci_hi": 0.0002467092126607895,
1102 + "device_s": 3.124994691461325e-05,
1103 + "elements_per_s": 16753153.477877328,
1104 + "reps": 5,
1105 + "precision": "fp32",
1106 + "peak_rss_mb": 3255.451648
1107 + },
1108 + {
1109 + "kernel": "realized_fused",
1110 + "S": 10,
1111 + "n": 3900,
1112 + "elements": 39000,
1113 + "backend": "cpu",
1114 + "threads": 1,
1115 + "median_s": 0.00018791621550917625,
1116 + "ci_lo": 0.00017224997282028198,
1117 + "ci_hi": 0.00020966678857803345,
1118 + "device_s": 0.0,
1119 + "elements_per_s": 207539300.929012,
1120 + "reps": 5,
1121 + "precision": "fp64",
1122 + "peak_rss_mb": 3431.858176
1123 + },
1124 + {
1125 + "kernel": "realized_fused",
1126 + "S": 10,
1127 + "n": 3900,
1128 + "elements": 39000,
1129 + "backend": "cpu",
1130 + "threads": 18,
1131 + "median_s": 0.000135000329464674,
1132 + "ci_lo": 0.00012287497520446777,
1133 + "ci_hi": 0.0001421659253537655,
1134 + "device_s": 0.0,
1135 + "elements_per_s": 288888183.86332357,
1136 + "reps": 5,
1137 + "precision": "fp64",
1138 + "peak_rss_mb": 3360.096256
1139 + },
1140 + {
1141 + "kernel": "realized_fused",
1142 + "S": 10,
1143 + "n": 3900,
1144 + "elements": 39000,
1145 + "backend": "metal",
1146 + "threads": 0,
1147 + "median_s": 0.00016404176130890846,
1148 + "ci_lo": 0.00015954114496707916,
1149 + "ci_hi": 0.0009339582175016403,
1150 + "device_s": 1.6249949112534523e-05,
1151 + "elements_per_s": 237744338.32467064,
1152 + "reps": 5,
1153 + "precision": "fp32",
1154 + "peak_rss_mb": 3222.339584
1155 + },
1156 + {
1157 + "kernel": "realized_fused",
1158 + "S": 10,
1159 + "n": 39000,
1160 + "elements": 390000,
1161 + "backend": "cpu",
1162 + "threads": 1,
1163 + "median_s": 0.002572625409811735,
1164 + "ci_lo": 0.0020360001362860203,
1165 + "ci_hi": 0.0035845423117280006,
1166 + "device_s": 0.0,
1167 + "elements_per_s": 151596108.2062624,
1168 + "reps": 5,
1169 + "precision": "fp64",
1170 + "peak_rss_mb": 2962.440192
1171 + },
1172 + {
1173 + "kernel": "realized_fused",
1174 + "S": 10,
1175 + "n": 39000,
1176 + "elements": 390000,
1177 + "backend": "cpu",
1178 + "threads": 18,
1179 + "median_s": 0.00036349985748529434,
1180 + "ci_lo": 0.00035787513479590416,
1181 + "ci_hi": 0.00039070891216397285,
1182 + "device_s": 0.0,
1183 + "elements_per_s": 1072902759.0217906,
1184 + "reps": 5,
1185 + "precision": "fp64",
1186 + "peak_rss_mb": 3369.04192
1187 + },
1188 + {
1189 + "kernel": "realized_fused",
1190 + "S": 10,
1191 + "n": 39000,
1192 + "elements": 390000,
1193 + "backend": "metal",
1194 + "threads": 0,
1195 + "median_s": 0.0007184999994933605,
1196 + "ci_lo": 0.000268666073679924,
1197 + "ci_hi": 0.0007987502031028271,
1198 + "device_s": 5.52500132471323e-05,
1199 + "elements_per_s": 542797495.1635388,
1200 + "reps": 5,
1201 + "precision": "fp32",
1202 + "peak_rss_mb": 3355.901952
1203 + },
1204 + {
1205 + "kernel": "realized_fused",
1206 + "S": 10,
1207 + "n": 390000,
1208 + "elements": 3900000,
1209 + "backend": "cpu",
1210 + "threads": 1,
1211 + "median_s": 0.02089220890775323,
1212 + "ci_lo": 0.020823125261813402,
1213 + "ci_hi": 0.021495667286217213,
1214 + "device_s": 0.0,
1215 + "elements_per_s": 186672458.48535842,
1216 + "reps": 5,
1217 + "precision": "fp64",
1218 + "peak_rss_mb": 3431.497728
1219 + },
1220 + {
1221 + "kernel": "realized_fused",
1222 + "S": 10,
1223 + "n": 390000,
1224 + "elements": 3900000,
1225 + "backend": "cpu",
1226 + "threads": 18,
1227 + "median_s": 0.0025267917662858963,
1228 + "ci_lo": 0.0025061247870326042,
1229 + "ci_hi": 0.0027628750540316105,
1230 + "device_s": 0.0,
1231 + "elements_per_s": 1543459200.7289019,
1232 + "reps": 5,
1233 + "precision": "fp64",
1234 + "peak_rss_mb": 3431.858176
1235 + },
1236 + {
1237 + "kernel": "realized_fused",
1238 + "S": 10,
1239 + "n": 390000,
1240 + "elements": 3900000,
1241 + "backend": "metal",
1242 + "threads": 0,
1243 + "median_s": 0.0010219174437224865,
1244 + "ci_lo": 0.001003749668598175,
1245 + "ci_hi": 0.0010474580340087414,
1246 + "device_s": 8.649996016174555e-05,
1247 + "elements_per_s": 3816355248.6134977,
1248 + "reps": 5,
1249 + "precision": "fp32",
1250 + "peak_rss_mb": 3222.339584
1251 + },
1252 + {
1253 + "kernel": "realized_fused",
1254 + "S": 100,
1255 + "n": 390,
1256 + "elements": 39000,
1257 + "backend": "cpu",
1258 + "threads": 1,
1259 + "median_s": 0.0001871250569820404,
1260 + "ci_lo": 0.00016624992713332176,
1261 + "ci_hi": 0.00021525006741285324,
1262 + "device_s": 0.0,
1263 + "elements_per_s": 208416770.2016683,
1264 + "reps": 5,
1265 + "precision": "fp64",
1266 + "peak_rss_mb": 2962.440192
1267 + },
1268 + {
1269 + "kernel": "realized_fused",
1270 + "S": 100,
1271 + "n": 390,
1272 + "elements": 39000,
1273 + "backend": "cpu",
1274 + "threads": 18,
1275 + "median_s": 0.0005520828999578953,
1276 + "ci_lo": 0.0004998329095542431,
1277 + "ci_hi": 0.0005905842408537865,
1278 + "device_s": 0.0,
1279 + "elements_per_s": 70641564.88631389,
1280 + "reps": 5,
1281 + "precision": "fp64",
1282 + "peak_rss_mb": 3431.530496
1283 + },
1284 + {
1285 + "kernel": "realized_fused",
1286 + "S": 100,
1287 + "n": 390,
1288 + "elements": 39000,
1289 + "backend": "metal",
1290 + "threads": 0,
1291 + "median_s": 0.00022633420303463936,
1292 + "ci_lo": 0.00017816666513681412,
1293 + "ci_hi": 0.00027566729113459587,
1294 + "device_s": 3.15000070258975e-05,
1295 + "elements_per_s": 172311561.73966,
1296 + "reps": 5,
1297 + "precision": "fp32",
1298 + "peak_rss_mb": 3368.943616
1299 + },
1300 + {
1301 + "kernel": "realized_fused",
1302 + "S": 100,
1303 + "n": 3900,
1304 + "elements": 390000,
1305 + "backend": "cpu",
1306 + "threads": 1,
1307 + "median_s": 0.002043417189270258,
1308 + "ci_lo": 0.0020072502084076405,
1309 + "ci_hi": 0.0020909998565912247,
1310 + "device_s": 0.0,
1311 + "elements_per_s": 190856767.7945766,
1312 + "reps": 5,
1313 + "precision": "fp64",
1314 + "peak_rss_mb": 3432.742912
1315 + },
1316 + {
1317 + "kernel": "realized_fused",
1318 + "S": 100,
1319 + "n": 3900,
1320 + "elements": 390000,
1321 + "backend": "cpu",
1322 + "threads": 18,
1323 + "median_s": 0.0006015831604599953,
1324 + "ci_lo": 0.0005330839194357395,
1325 + "ci_hi": 0.0006621670909225941,
1326 + "device_s": 0.0,
1327 + "elements_per_s": 648289423.0313727,
1328 + "reps": 5,
1329 + "precision": "fp64",
1330 + "peak_rss_mb": 3355.8528
1331 + },
1332 + {
1333 + "kernel": "realized_fused",
1334 + "S": 100,
1335 + "n": 3900,
1336 + "elements": 390000,
1337 + "backend": "metal",
1338 + "threads": 0,
1339 + "median_s": 0.0006413329392671585,
1340 + "ci_lo": 0.000292791984975338,
1341 + "ci_hi": 0.0008833748288452625,
1342 + "device_s": 5.287490785121918e-05,
1343 + "elements_per_s": 608108481.7593294,
1344 + "reps": 5,
1345 + "precision": "fp32",
1346 + "peak_rss_mb": 490.962944
1347 + },
1348 + {
1349 + "kernel": "realized_fused",
1350 + "S": 100,
1351 + "n": 39000,
1352 + "elements": 3900000,
1353 + "backend": "cpu",
1354 + "threads": 1,
1355 + "median_s": 0.020590624772012234,
1356 + "ci_lo": 0.020551583264023066,
1357 + "ci_hi": 0.020679709035903215,
1358 + "device_s": 0.0,
1359 + "elements_per_s": 189406588.83265492,
1360 + "reps": 5,
1361 + "precision": "fp64",
1362 + "peak_rss_mb": 3222.339584
1363 + },
1364 + {
1365 + "kernel": "realized_fused",
1366 + "S": 100,
1367 + "n": 39000,
1368 + "elements": 3900000,
1369 + "backend": "cpu",
1370 + "threads": 18,
1371 + "median_s": 0.0021904585883021355,
1372 + "ci_lo": 0.001996333710849285,
1373 + "ci_hi": 0.002361500170081854,
1374 + "device_s": 0.0,
1375 + "elements_per_s": 1780449089.8971806,
1376 + "reps": 5,
1377 + "precision": "fp64",
1378 + "peak_rss_mb": 2962.440192
1379 + },
1380 + {
1381 + "kernel": "realized_fused",
1382 + "S": 100,
1383 + "n": 39000,
1384 + "elements": 3900000,
1385 + "backend": "metal",
1386 + "threads": 0,
1387 + "median_s": 0.0011692089028656483,
1388 + "ci_lo": 0.0008370000869035721,
1389 + "ci_hi": 0.0011960407719016075,
1390 + "device_s": 0.000259208376519382,
1391 + "elements_per_s": 3335588696.289753,
1392 + "reps": 5,
1393 + "precision": "fp32",
1394 + "peak_rss_mb": 3360.096256
1395 + },
1396 + {
1397 + "kernel": "realized_fused",
1398 + "S": 100,
1399 + "n": 390000,
1400 + "elements": 39000000,
1401 + "backend": "cpu",
1402 + "threads": 1,
1403 + "median_s": 0.2325868341140449,
1404 + "ci_lo": 0.2128961249254644,
1405 + "ci_hi": 0.24819900002330542,
1406 + "device_s": 0.0,
1407 + "elements_per_s": 167679310.60481706,
1408 + "reps": 5,
1409 + "precision": "fp64",
1410 + "peak_rss_mb": 2962.440192
1411 + },
1412 + {
1413 + "kernel": "realized_fused",
1414 + "S": 100,
1415 + "n": 390000,
1416 + "elements": 39000000,
1417 + "backend": "cpu",
1418 + "threads": 18,
1419 + "median_s": 0.01879258267581463,
1420 + "ci_lo": 0.016645667143166065,
1421 + "ci_hi": 0.02031658310443163,
1422 + "device_s": 0.0,
1423 + "elements_per_s": 2075286865.7159925,
1424 + "reps": 5,
1425 + "precision": "fp64",
1426 + "peak_rss_mb": 2962.440192
1427 + },
1428 + {
1429 + "kernel": "realized_fused",
1430 + "S": 100,
1431 + "n": 390000,
1432 + "elements": 39000000,
1433 + "backend": "metal",
1434 + "threads": 0,
1435 + "median_s": 0.008720249868929386,
1436 + "ci_lo": 0.007397250272333622,
1437 + "ci_hi": 0.008947291877120733,
1438 + "device_s": 0.0021910000359639525,
1439 + "elements_per_s": 4472348910.43187,
1440 + "reps": 5,
1441 + "precision": "fp32",
1442 + "peak_rss_mb": 486.178816
1443 + },
1444 + {
1445 + "kernel": "realized_fused",
1446 + "S": 1000,
1447 + "n": 390,
1448 + "elements": 390000,
1449 + "backend": "cpu",
1450 + "threads": 1,
1451 + "median_s": 0.002235791180282831,
1452 + "ci_lo": 0.0021259579807519913,
1453 + "ci_hi": 0.003065959084779024,
1454 + "device_s": 0.0,
1455 + "elements_per_s": 174434895.10083154,
1456 + "reps": 5,
1457 + "precision": "fp64",
1458 + "peak_rss_mb": 2962.440192
1459 + },
1460 + {
1461 + "kernel": "realized_fused",
1462 + "S": 1000,
1463 + "n": 390,
1464 + "elements": 390000,
1465 + "backend": "cpu",
1466 + "threads": 18,
1467 + "median_s": 0.0008399169892072678,
1468 + "ci_lo": 0.0007132496684789658,
1469 + "ci_hi": 0.0009002499282360077,
1470 + "device_s": 0.0,
1471 + "elements_per_s": 464331600.6360231,
1472 + "reps": 5,
1473 + "precision": "fp64",
1474 + "peak_rss_mb": 3355.8528
1475 + },
1476 + {
1477 + "kernel": "realized_fused",
1478 + "S": 1000,
1479 + "n": 390,
1480 + "elements": 390000,
1481 + "backend": "metal",
1482 + "threads": 0,
1483 + "median_s": 0.00033845799043774605,
1484 + "ci_lo": 0.00033012498170137405,
1485 + "ci_hi": 0.00035137496888637543,
1486 + "device_s": 0.00013987498823553324,
1487 + "elements_per_s": 1152284806.4410944,
1488 + "reps": 5,
1489 + "precision": "fp32",
1490 + "peak_rss_mb": 3431.87456
1491 + },
1492 + {
1493 + "kernel": "realized_fused",
1494 + "S": 1000,
1495 + "n": 3900,
1496 + "elements": 3900000,
1497 + "backend": "cpu",
1498 + "threads": 1,
1499 + "median_s": 0.021244540810585022,
1500 + "ci_lo": 0.021230708342045546,
1501 + "ci_hi": 0.021389917004853487,
1502 + "device_s": 0.0,
1503 + "elements_per_s": 183576573.14282066,
1504 + "reps": 5,
1505 + "precision": "fp64",
1506 + "peak_rss_mb": 3431.530496
1507 + },
1508 + {
1509 + "kernel": "realized_fused",
1510 + "S": 1000,
1511 + "n": 3900,
1512 + "elements": 3900000,
1513 + "backend": "cpu",
1514 + "threads": 18,
1515 + "median_s": 0.0017422502860426903,
1516 + "ci_lo": 0.0017107920721173286,
1517 + "ci_hi": 0.0017863749526441097,
1518 + "device_s": 0.0,
1519 + "elements_per_s": 2238484350.522551,
1520 + "reps": 5,
1521 + "precision": "fp64",
1522 + "peak_rss_mb": 3431.46496
1523 + },
1524 + {
1525 + "kernel": "realized_fused",
1526 + "S": 1000,
1527 + "n": 3900,
1528 + "elements": 3900000,
1529 + "backend": "metal",
1530 + "threads": 0,
1531 + "median_s": 0.0008750832639634609,
1532 + "ci_lo": 0.0008294158615171909,
1533 + "ci_hi": 0.0015468327328562737,
1534 + "device_s": 0.0002547500189393759,
1535 + "elements_per_s": 4456718761.065055,
1536 + "reps": 5,
1537 + "precision": "fp32",
1538 + "peak_rss_mb": 3432.742912
1539 + },
1540 + {
1541 + "kernel": "realized_fused",
1542 + "S": 1000,
1543 + "n": 39000,
1544 + "elements": 39000000,
1545 + "backend": "cpu",
1546 + "threads": 1,
1547 + "median_s": 0.23877166723832488,
1548 + "ci_lo": 0.21975037455558777,
1549 + "ci_hi": 0.2514020833186805,
1550 + "device_s": 0.0,
1551 + "elements_per_s": 163335962.13939813,
1552 + "reps": 5,
1553 + "precision": "fp64",
1554 + "peak_rss_mb": 2962.440192
1555 + },
1556 + {
1557 + "kernel": "realized_fused",
1558 + "S": 1000,
1559 + "n": 39000,
1560 + "elements": 39000000,
1561 + "backend": "cpu",
1562 + "threads": 18,
1563 + "median_s": 0.02024729223921895,
1564 + "ci_lo": 0.019154875073581934,
1565 + "ci_hi": 0.029473000206053257,
1566 + "device_s": 0.0,
1567 + "elements_per_s": 1926183488.5979028,
1568 + "reps": 5,
1569 + "precision": "fp64",
1570 + "peak_rss_mb": 2962.440192
1571 + },
1572 + {
1573 + "kernel": "realized_fused",
1574 + "S": 1000,
1575 + "n": 39000,
1576 + "elements": 39000000,
1577 + "backend": "metal",
1578 + "threads": 0,
1579 + "median_s": 0.005891874898225069,
1580 + "ci_lo": 0.005617166869342327,
1581 + "ci_hi": 0.00844891695305705,
1582 + "device_s": 0.0009469999931752682,
1583 + "elements_per_s": 6619285146.693929,
1584 + "reps": 5,
1585 + "precision": "fp32",
1586 + "peak_rss_mb": 3369.04192
1587 + },
1588 + {
1589 + "kernel": "realized_fused",
1590 + "S": 10000,
1591 + "n": 390,
1592 + "elements": 3900000,
1593 + "backend": "cpu",
1594 + "threads": 1,
1595 + "median_s": 0.021238334011286497,
1596 + "ci_lo": 0.020878124982118607,
1597 + "ci_hi": 0.021370540838688612,
1598 + "device_s": 0.0,
1599 + "elements_per_s": 183630222.49897087,
1600 + "reps": 5,
1601 + "precision": "fp64",
1602 + "peak_rss_mb": 3431.858176
1603 + },
1604 + {
1605 + "kernel": "realized_fused",
1606 + "S": 10000,
1607 + "n": 390,
1608 + "elements": 3900000,
1609 + "backend": "cpu",
1610 + "threads": 18,
1611 + "median_s": 0.002125917002558708,
1612 + "ci_lo": 0.0019880831241607666,
1613 + "ci_hi": 0.002400666009634733,
1614 + "device_s": 0.0,
1615 + "elements_per_s": 1834502473.6647966,
1616 + "reps": 5,
1617 + "precision": "fp64",
1618 + "peak_rss_mb": 2962.440192
1619 + },
1620 + {
1621 + "kernel": "realized_fused",
1622 + "S": 10000,
1623 + "n": 390,
1624 + "elements": 3900000,
1625 + "backend": "metal",
1626 + "threads": 0,
1627 + "median_s": 0.0022132499143481255,
1628 + "ci_lo": 0.0018930002115666866,
1629 + "ci_hi": 0.0032122922129929066,
1630 + "device_s": 0.001203041640110314,
1631 + "elements_per_s": 1762114605.6380522,
1632 + "reps": 5,
1633 + "precision": "fp32",
1634 + "peak_rss_mb": 3431.87456
1635 + },
1636 + {
1637 + "kernel": "realized_fused",
1638 + "S": 10000,
1639 + "n": 3900,
1640 + "elements": 39000000,
1641 + "backend": "cpu",
1642 + "threads": 1,
1643 + "median_s": 0.2336724577471614,
1644 + "ci_lo": 0.22654250031337142,
1645 + "ci_hi": 0.24493679078295827,
1646 + "device_s": 0.0,
1647 + "elements_per_s": 166900285.87878695,
1648 + "reps": 5,
1649 + "precision": "fp64",
1650 + "peak_rss_mb": 2962.440192
1651 + },
1652 + {
1653 + "kernel": "realized_fused",
1654 + "S": 10000,
1655 + "n": 3900,
1656 + "elements": 39000000,
1657 + "backend": "cpu",
1658 + "threads": 18,
1659 + "median_s": 0.01569391693919897,
1660 + "ci_lo": 0.015392750035971403,
1661 + "ci_hi": 0.01590104214847088,
1662 + "device_s": 0.0,
1663 + "elements_per_s": 2485039276.7524476,
1664 + "reps": 5,
1665 + "precision": "fp64",
1666 + "peak_rss_mb": 3432.742912
1667 + },
1668 + {
1669 + "kernel": "realized_fused",
1670 + "S": 10000,
1671 + "n": 3900,
1672 + "elements": 39000000,
1673 + "backend": "metal",
1674 + "threads": 0,
1675 + "median_s": 0.0078027499839663506,
1676 + "ci_lo": 0.006132957991212606,
1677 + "ci_hi": 0.008690916933119297,
1678 + "device_s": 0.0019207500154152513,
1679 + "elements_per_s": 4998237811.046104,
1680 + "reps": 5,
1681 + "precision": "fp32",
1682 + "peak_rss_mb": 577.1264
1683 + },
1684 + {
1685 + "kernel": "regression_stats",
1686 + "S": 1,
1687 + "n": 390,
1688 + "elements": 390,
1689 + "backend": "cpu",
1690 + "threads": 1,
1691 + "median_s": 3.1669624149799347e-06,
1692 + "ci_lo": 3.125052899122238e-06,
1693 + "ci_hi": 3.2088719308376312e-06,
1694 + "device_s": 0.0,
1695 + "elements_per_s": 123146393.57741508,
1696 + "reps": 5,
1697 + "precision": "fp64",
1698 + "peak_rss_mb": 2962.440192
1699 + },
1700 + {
1701 + "kernel": "regression_stats",
1702 + "S": 1,
1703 + "n": 390,
1704 + "elements": 390,
1705 + "backend": "cpu",
1706 + "threads": 18,
1707 + "median_s": 3.2088719308376312e-06,
1708 + "ci_lo": 3.2079406082630157e-06,
1709 + "ci_hi": 3.3332034945487976e-06,
1710 + "device_s": 0.0,
1711 + "elements_per_s": 121538038.41532433,
1712 + "reps": 5,
1713 + "precision": "fp64",
1714 + "peak_rss_mb": 2962.440192
1715 + },
1716 + {
1717 + "kernel": "regression_stats",
1718 + "S": 1,
1719 + "n": 390,
1720 + "elements": 390,
1721 + "backend": "metal",
1722 + "threads": 0,
1723 + "median_s": 0.000894167460501194,
1724 + "ci_lo": 0.00017508305609226227,
1725 + "ci_hi": 0.000988542102277279,
1726 + "device_s": 7.087492849677801e-05,
1727 + "elements_per_s": 436159.91100973333,
1728 + "reps": 5,
1729 + "precision": "fp32",
1730 + "peak_rss_mb": 3368.910848
1731 + },
1732 + {
1733 + "kernel": "regression_stats",
1734 + "S": 1,
1735 + "n": 3900,
1736 + "elements": 3900,
1737 + "backend": "cpu",
1738 + "threads": 1,
1739 + "median_s": 2.9958784580230713e-05,
1740 + "ci_lo": 2.950010821223259e-05,
1741 + "ci_hi": 3.0708033591508865e-05,
1742 + "device_s": 0.0,
1743 + "elements_per_s": 130178845.859239,
1744 + "reps": 5,
1745 + "precision": "fp64",
1746 + "peak_rss_mb": 3368.894464
1747 + },
1748 + {
1749 + "kernel": "regression_stats",
1750 + "S": 1,
1751 + "n": 3900,
1752 + "elements": 3900,
1753 + "backend": "cpu",
1754 + "threads": 18,
1755 + "median_s": 3.0207913368940353e-05,
1756 + "ci_lo": 3.008265048265457e-05,
1757 + "ci_hi": 3.0375085771083832e-05,
1758 + "device_s": 0.0,
1759 + "elements_per_s": 129105243.13175379,
1760 + "reps": 5,
1761 + "precision": "fp64",
1762 + "peak_rss_mb": 2962.440192
1763 + },
1764 + {
1765 + "kernel": "regression_stats",
1766 + "S": 1,
1767 + "n": 3900,
1768 + "elements": 3900,
1769 + "backend": "metal",
1770 + "threads": 0,
1771 + "median_s": 0.0003482499159872532,
1772 + "ci_lo": 0.0003069578669965267,
1773 + "ci_hi": 0.0003833337686955929,
1774 + "device_s": 0.00019212497863918543,
1775 + "elements_per_s": 11198854.101497471,
1776 + "reps": 5,
1777 + "precision": "fp32",
1778 + "peak_rss_mb": 2962.440192
1779 + },
1780 + {
1781 + "kernel": "regression_stats",
1782 + "S": 1,
1783 + "n": 39000,
1784 + "elements": 39000,
1785 + "backend": "cpu",
1786 + "threads": 1,
1787 + "median_s": 0.00030233291909098625,
1788 + "ci_lo": 0.00030054105445742607,
1789 + "ci_hi": 0.0003049168735742569,
1790 + "device_s": 0.0,
1791 + "elements_per_s": 128996869.13770398,
1792 + "reps": 5,
1793 + "precision": "fp64",
1794 + "peak_rss_mb": 2962.440192
1795 + },
1796 + {
1797 + "kernel": "regression_stats",
1798 + "S": 1,
1799 + "n": 39000,
1800 + "elements": 39000,
1801 + "backend": "cpu",
1802 + "threads": 18,
1803 + "median_s": 0.0003838753327727318,
1804 + "ci_lo": 0.0003343336284160614,
1805 + "ci_hi": 0.0006159590557217598,
1806 + "device_s": 0.0,
1807 + "elements_per_s": 101595483.4042161,
1808 + "reps": 5,
1809 + "precision": "fp64",
1810 + "peak_rss_mb": 578.486272
1811 + },
1812 + {
1813 + "kernel": "regression_stats",
1814 + "S": 1,
1815 + "n": 39000,
1816 + "elements": 39000,
1817 + "backend": "metal",
1818 + "threads": 0,
1819 + "median_s": 0.0004085828550159931,
1820 + "ci_lo": 0.0003508748486638069,
1821 + "ci_hi": 0.00041229184716939926,
1822 + "device_s": 0.00018866662867367268,
1823 + "elements_per_s": 95451875.96888623,
1824 + "reps": 5,
1825 + "precision": "fp32",
1826 + "peak_rss_mb": 3359.932416
1827 + },
1828 + {
1829 + "kernel": "regression_stats",
1830 + "S": 1,
1831 + "n": 390000,
1832 + "elements": 390000,
1833 + "backend": "cpu",
1834 + "threads": 1,
1835 + "median_s": 0.0029733749106526375,
1836 + "ci_lo": 0.002949208952486515,
1837 + "ci_hi": 0.0029905838891863823,
1838 + "device_s": 0.0,
1839 + "elements_per_s": 131164085.16220291,
1840 + "reps": 5,
1841 + "precision": "fp64",
1842 + "peak_rss_mb": 3368.943616
1843 + },
1844 + {
1845 + "kernel": "regression_stats",
1846 + "S": 1,
1847 + "n": 390000,
1848 + "elements": 390000,
1849 + "backend": "cpu",
1850 + "threads": 18,
1851 + "median_s": 0.0030428748577833176,
1852 + "ci_lo": 0.0030017499811947346,
1853 + "ci_hi": 0.003628334030508995,
1854 + "device_s": 0.0,
1855 + "elements_per_s": 128168267.9136231,
1856 + "reps": 5,
1857 + "precision": "fp64",
1858 + "peak_rss_mb": 572.112896
1859 + },
1860 + {
1861 + "kernel": "regression_stats",
1862 + "S": 1,
1863 + "n": 390000,
1864 + "elements": 390000,
1865 + "backend": "metal",
1866 + "threads": 0,
1867 + "median_s": 0.0007901252247393131,
1868 + "ci_lo": 0.0007615000940859318,
1869 + "ci_hi": 0.0008232500404119492,
1870 + "device_s": 9.650003630667925e-05,
1871 + "elements_per_s": 493592645.5564979,
1872 + "reps": 5,
1873 + "precision": "fp32",
1874 + "peak_rss_mb": 2920.12032
1875 + },
1876 + {
1877 + "kernel": "regression_stats",
1878 + "S": 10,
1879 + "n": 390,
1880 + "elements": 3900,
1881 + "backend": "cpu",
1882 + "threads": 1,
1883 + "median_s": 3.1250063329935074e-05,
1884 + "ci_lo": 3.095809370279312e-05,
1885 + "ci_hi": 4.149973392486572e-05,
1886 + "device_s": 0.0,
1887 + "elements_per_s": 124799747.08608383,
1888 + "reps": 5,
1889 + "precision": "fp64",
1890 + "peak_rss_mb": 2920.185856
1891 + },
1892 + {
1893 + "kernel": "regression_stats",
1894 + "S": 10,
1895 + "n": 390,
1896 + "elements": 3900,
1897 + "backend": "cpu",
1898 + "threads": 18,
1899 + "median_s": 4.133302718400955e-05,
1900 + "ci_lo": 2.475036308169365e-05,
1901 + "ci_hi": 4.3540727347135544e-05,
1902 + "device_s": 0.0,
1903 + "elements_per_s": 94355537.58590388,
1904 + "reps": 5,
1905 + "precision": "fp64",
1906 + "peak_rss_mb": 3359.932416
1907 + },
1908 + {
1909 + "kernel": "regression_stats",
1910 + "S": 10,
1911 + "n": 390,
1912 + "elements": 3900,
1913 + "backend": "metal",
1914 + "threads": 0,
1915 + "median_s": 0.0006523327901959419,
1916 + "ci_lo": 0.0003105420619249344,
1917 + "ci_hi": 0.0007279999554157257,
1918 + "device_s": 9.250000584870577e-05,
1919 + "elements_per_s": 5978543.557236411,
1920 + "reps": 5,
1921 + "precision": "fp32",
1922 + "peak_rss_mb": 2962.440192
1923 + },
1924 + {
1925 + "kernel": "regression_stats",
1926 + "S": 10,
1927 + "n": 3900,
1928 + "elements": 39000,
1929 + "backend": "cpu",
1930 + "threads": 1,
1931 + "median_s": 0.0002997498959302902,
1932 + "ci_lo": 0.0002982090227305889,
1933 + "ci_hi": 0.000300500076264143,
1934 + "device_s": 0.0,
1935 + "elements_per_s": 130108468.85855077,
1936 + "reps": 5,
1937 + "precision": "fp64",
1938 + "peak_rss_mb": 2962.440192
1939 + },
1940 + {
1941 + "kernel": "regression_stats",
1942 + "S": 10,
1943 + "n": 3900,
1944 + "elements": 39000,
1945 + "backend": "cpu",
1946 + "threads": 18,
1947 + "median_s": 7.625017315149307e-05,
1948 + "ci_lo": 7.187481969594955e-05,
1949 + "ci_hi": 8.49580392241478e-05,
1950 + "device_s": 0.0,
1951 + "elements_per_s": 511474248.3602653,
1952 + "reps": 5,
1953 + "precision": "fp64",
1954 + "peak_rss_mb": 3432.742912
1955 + },
1956 + {
1957 + "kernel": "regression_stats",
1958 + "S": 10,
1959 + "n": 3900,
1960 + "elements": 39000,
1961 + "backend": "metal",
1962 + "threads": 0,
1963 + "median_s": 0.00036174990236759186,
1964 + "ci_lo": 0.0003430834040045738,
1965 + "ci_hi": 0.0005066245794296265,
1966 + "device_s": 0.00018737500067800283,
1967 + "elements_per_s": 107809289.63560627,
1968 + "reps": 5,
1969 + "precision": "fp32",
1970 + "peak_rss_mb": 3431.514112
1971 + },
1972 + {
1973 + "kernel": "regression_stats",
1974 + "S": 10,
1975 + "n": 39000,
1976 + "elements": 390000,
1977 + "backend": "cpu",
1978 + "threads": 1,
1979 + "median_s": 0.003083667252212763,
1980 + "ci_lo": 0.0030186669901013374,
1981 + "ci_hi": 0.003116208128631115,
1982 + "device_s": 0.0,
1983 + "elements_per_s": 126472789.73441304,
1984 + "reps": 5,
1985 + "precision": "fp64",
1986 + "peak_rss_mb": 3431.530496
1987 + },
1988 + {
1989 + "kernel": "regression_stats",
1990 + "S": 10,
1991 + "n": 39000,
1992 + "elements": 390000,
1993 + "backend": "cpu",
1994 + "threads": 18,
1995 + "median_s": 0.0005624173209071159,
1996 + "ci_lo": 0.0005049579776823521,
1997 + "ci_hi": 0.0006032092496752739,
1998 + "device_s": 0.0,
1999 + "elements_per_s": 693435257.9521801,
2000 + "reps": 5,
2001 + "precision": "fp64",
2002 + "peak_rss_mb": 3431.563264
2003 + },
2004 + {
2005 + "kernel": "regression_stats",
2006 + "S": 10,
2007 + "n": 39000,
2008 + "elements": 390000,
2009 + "backend": "metal",
2010 + "threads": 0,
2011 + "median_s": 0.0006961673498153687,
2012 + "ci_lo": 0.0006541251204907894,
2013 + "ci_hi": 0.0008656666614115238,
2014 + "device_s": 0.0002501250710338354,
2015 + "elements_per_s": 560210127.7852694,
2016 + "reps": 5,
2017 + "precision": "fp32",
2018 + "peak_rss_mb": 576.421888
2019 + },
2020 + {
2021 + "kernel": "regression_stats",
2022 + "S": 10,
2023 + "n": 390000,
2024 + "elements": 3900000,
2025 + "backend": "cpu",
2026 + "threads": 1,
2027 + "median_s": 0.032662583980709314,
2028 + "ci_lo": 0.030701291747391224,
2029 + "ci_hi": 0.03406220907345414,
2030 + "device_s": 0.0,
2031 + "elements_per_s": 119402678.0705213,
2032 + "reps": 5,
2033 + "precision": "fp64",
2034 + "peak_rss_mb": 3431.858176
2035 + },
2036 + {
2037 + "kernel": "regression_stats",
2038 + "S": 10,
2039 + "n": 390000,
2040 + "elements": 3900000,
2041 + "backend": "cpu",
2042 + "threads": 18,
2043 + "median_s": 0.006654791999608278,
2044 + "ci_lo": 0.006012291181832552,
2045 + "ci_hi": 0.007818708196282387,
2046 + "device_s": 0.0,
2047 + "elements_per_s": 586043861.3602898,
2048 + "reps": 5,
2049 + "precision": "fp64",
2050 + "peak_rss_mb": 3431.46496
2051 + },
2052 + {
2053 + "kernel": "regression_stats",
2054 + "S": 10,
2055 + "n": 390000,
2056 + "elements": 3900000,
2057 + "backend": "metal",
2058 + "threads": 0,
2059 + "median_s": 0.004117042291909456,
2060 + "ci_lo": 0.002989500295370817,
2061 + "ci_hi": 0.004763709381222725,
2062 + "device_s": 0.000529208336956799,
2063 + "elements_per_s": 947281986.3094499,
2064 + "reps": 5,
2065 + "precision": "fp32",
2066 + "peak_rss_mb": 2962.440192
2067 + },
2068 + {
2069 + "kernel": "regression_stats",
2070 + "S": 100,
2071 + "n": 390,
2072 + "elements": 39000,
2073 + "backend": "cpu",
2074 + "threads": 1,
2075 + "median_s": 0.00036137504503130913,
2076 + "ci_lo": 0.00033475039526820183,
2077 + "ci_hi": 0.00036225002259016037,
2078 + "device_s": 0.0,
2079 + "elements_per_s": 107921121.10735561,
2080 + "reps": 5,
2081 + "precision": "fp64",
2082 + "peak_rss_mb": 2962.440192
2083 + },
2084 + {
2085 + "kernel": "regression_stats",
2086 + "S": 100,
2087 + "n": 390,
2088 + "elements": 39000,
2089 + "backend": "cpu",
2090 + "threads": 18,
2091 + "median_s": 0.00017625000327825546,
2092 + "ci_lo": 9.350012987852097e-05,
2093 + "ci_hi": 0.00018370803445577621,
2094 + "device_s": 0.0,
2095 + "elements_per_s": 221276591.62892938,
2096 + "reps": 5,
2097 + "precision": "fp64",
2098 + "peak_rss_mb": 3359.932416
2099 + },
2100 + {
2101 + "kernel": "regression_stats",
2102 + "S": 100,
2103 + "n": 390,
2104 + "elements": 39000,
2105 + "backend": "metal",
2106 + "threads": 0,
2107 + "median_s": 0.0003363746218383312,
2108 + "ci_lo": 0.00026350002735853195,
2109 + "ci_hi": 0.0005579171702265739,
2110 + "device_s": 0.00019220833200961351,
2111 + "elements_per_s": 115942159.33074829,
2112 + "reps": 5,
2113 + "precision": "fp32",
2114 + "peak_rss_mb": 3255.451648
2115 + },
2116 + {
2117 + "kernel": "regression_stats",
2118 + "S": 100,
2119 + "n": 3900,
2120 + "elements": 390000,
2121 + "backend": "cpu",
2122 + "threads": 1,
2123 + "median_s": 0.0029982919804751873,
2124 + "ci_lo": 0.0029679168947041035,
2125 + "ci_hi": 0.003063875250518322,
2126 + "device_s": 0.0,
2127 + "elements_per_s": 130074056.34263493,
2128 + "reps": 5,
2129 + "precision": "fp64",
2130 + "peak_rss_mb": 3432.742912
2131 + },
2132 + {
2133 + "kernel": "regression_stats",
2134 + "S": 100,
2135 + "n": 3900,
2136 + "elements": 390000,
2137 + "backend": "cpu",
2138 + "threads": 18,
2139 + "median_s": 0.0004399162717163563,
2140 + "ci_lo": 0.00042741699144244194,
2141 + "ci_hi": 0.00046166684478521347,
2142 + "device_s": 0.0,
2143 + "elements_per_s": 886532335.9792868,
2144 + "reps": 5,
2145 + "precision": "fp64",
2146 + "peak_rss_mb": 781.484032
2147 + },
2148 + {
2149 + "kernel": "regression_stats",
2150 + "S": 100,
2151 + "n": 3900,
2152 + "elements": 390000,
2153 + "backend": "metal",
2154 + "threads": 0,
2155 + "median_s": 0.0005946666933596134,
2156 + "ci_lo": 0.0005814996547996998,
2157 + "ci_hi": 0.0005976245738565922,
2158 + "device_s": 0.00023925001733005047,
2159 + "elements_per_s": 655829566.9741753,
2160 + "reps": 5,
2161 + "precision": "fp32",
2162 + "peak_rss_mb": 2962.440192
2163 + },
2164 + {
2165 + "kernel": "regression_stats",
2166 + "S": 100,
2167 + "n": 39000,
2168 + "elements": 3900000,
2169 + "backend": "cpu",
2170 + "threads": 1,
2171 + "median_s": 0.03219050029292703,
2172 + "ci_lo": 0.03135691722854972,
2173 + "ci_hi": 0.03299033408984542,
2174 + "device_s": 0.0,
2175 + "elements_per_s": 121153755.44060485,
2176 + "reps": 5,
2177 + "precision": "fp64",
2178 + "peak_rss_mb": 3355.901952
2179 + },
2180 + {
2181 + "kernel": "regression_stats",
2182 + "S": 100,
2183 + "n": 39000,
2184 + "elements": 3900000,
2185 + "backend": "cpu",
2186 + "threads": 18,
2187 + "median_s": 0.0031737093813717365,
2188 + "ci_lo": 0.003017541952431202,
2189 + "ci_hi": 0.0036639999598264694,
2190 + "device_s": 0.0,
2191 + "elements_per_s": 1228845975.2777827,
2192 + "reps": 5,
2193 + "precision": "fp64",
2194 + "peak_rss_mb": 3355.901952
2195 + },
2196 + {
2197 + "kernel": "regression_stats",
2198 + "S": 100,
2199 + "n": 39000,
2200 + "elements": 3900000,
2201 + "backend": "metal",
2202 + "threads": 0,
2203 + "median_s": 0.0044694580137729645,
2204 + "ci_lo": 0.0031338329426944256,
2205 + "ci_hi": 0.004542499780654907,
2206 + "device_s": 0.0016885417280718684,
2207 + "elements_per_s": 872589022.6470106,
2208 + "reps": 5,
2209 + "precision": "fp32",
2210 + "peak_rss_mb": 3431.46496
2211 + },
2212 + {
2213 + "kernel": "regression_stats",
2214 + "S": 100,
2215 + "n": 390000,
2216 + "elements": 39000000,
2217 + "backend": "cpu",
2218 + "threads": 1,
2219 + "median_s": 0.3013692502863705,
2220 + "ci_lo": 0.2989709582179785,
2221 + "ci_hi": 0.3020119168795645,
2222 + "device_s": 0.0,
2223 + "elements_per_s": 129409354.01651289,
2224 + "reps": 5,
2225 + "precision": "fp64",
2226 + "peak_rss_mb": 3431.87456
2227 + },
2228 + {
2229 + "kernel": "regression_stats",
2230 + "S": 100,
2231 + "n": 390000,
2232 + "elements": 39000000,
2233 + "backend": "cpu",
2234 + "threads": 18,
2235 + "median_s": 0.033760249614715576,
2236 + "ci_lo": 0.0324889593757689,
2237 + "ci_hi": 0.03822179138660431,
2238 + "device_s": 0.0,
2239 + "elements_per_s": 1155204728.7885127,
2240 + "reps": 5,
2241 + "precision": "fp64",
2242 + "peak_rss_mb": 3359.932416
2243 + },
2244 + {
2245 + "kernel": "regression_stats",
2246 + "S": 100,
2247 + "n": 390000,
2248 + "elements": 39000000,
2249 + "backend": "metal",
2250 + "threads": 0,
2251 + "median_s": 0.03070899983868003,
2252 + "ci_lo": 0.027952750213444233,
2253 + "ci_hi": 0.031758958008140326,
2254 + "device_s": 0.005229625036008656,
2255 + "elements_per_s": 1269986004.2617507,
2256 + "reps": 5,
2257 + "precision": "fp32",
2258 + "peak_rss_mb": 2913.845248
2259 + },
2260 + {
2261 + "kernel": "regression_stats",
2262 + "S": 1000,
2263 + "n": 390,
2264 + "elements": 390000,
2265 + "backend": "cpu",
2266 + "threads": 1,
2267 + "median_s": 0.0031211250461637974,
2268 + "ci_lo": 0.0030487077310681343,
2269 + "ci_hi": 0.0040359580889344215,
2270 + "device_s": 0.0,
2271 + "elements_per_s": 124954942.28254408,
2272 + "reps": 5,
2273 + "precision": "fp64",
2274 + "peak_rss_mb": 3432.742912
2275 + },
2276 + {
2277 + "kernel": "regression_stats",
2278 + "S": 1000,
2279 + "n": 390,
2280 + "elements": 390000,
2281 + "backend": "cpu",
2282 + "threads": 18,
2283 + "median_s": 0.0006971252150833607,
2284 + "ci_lo": 0.0005761669017374516,
2285 + "ci_hi": 0.0007857088930904865,
2286 + "device_s": 0.0,
2287 + "elements_per_s": 559440386.8369108,
2288 + "reps": 5,
2289 + "precision": "fp64",
2290 + "peak_rss_mb": 2962.440192
2291 + },
2292 + {
2293 + "kernel": "regression_stats",
2294 + "S": 1000,
2295 + "n": 390,
2296 + "elements": 390000,
2297 + "backend": "metal",
2298 + "threads": 0,
2299 + "median_s": 0.0005814996547996998,
2300 + "ci_lo": 0.0005787923000752926,
2301 + "ci_hi": 0.0009665000252425671,
2302 + "device_s": 0.00020362494979053736,
2303 + "elements_per_s": 670679675.870723,
2304 + "reps": 5,
2305 + "precision": "fp32",
2306 + "peak_rss_mb": 3431.858176
2307 + },
2308 + {
2309 + "kernel": "regression_stats",
2310 + "S": 1000,
2311 + "n": 3900,
2312 + "elements": 3900000,
2313 + "backend": "cpu",
2314 + "threads": 1,
2315 + "median_s": 0.03439616598188877,
2316 + "ci_lo": 0.033030624967068434,
2317 + "ci_hi": 0.03468058304861188,
2318 + "device_s": 0.0,
2319 + "elements_per_s": 113384730.20666131,
2320 + "reps": 5,
2321 + "precision": "fp64",
2322 + "peak_rss_mb": 781.484032
2323 + },
2324 + {
2325 + "kernel": "regression_stats",
2326 + "S": 1000,
2327 + "n": 3900,
2328 + "elements": 3900000,
2329 + "backend": "cpu",
2330 + "threads": 18,
2331 + "median_s": 0.003421790897846222,
2332 + "ci_lo": 0.0031987917609512806,
2333 + "ci_hi": 0.003632874693721533,
2334 + "device_s": 0.0,
2335 + "elements_per_s": 1139754040.0422413,
2336 + "reps": 5,
2337 + "precision": "fp64",
2338 + "peak_rss_mb": 3431.514112
2339 + },
2340 + {
2341 + "kernel": "regression_stats",
2342 + "S": 1000,
2343 + "n": 3900,
2344 + "elements": 3900000,
2345 + "backend": "metal",
2346 + "threads": 0,
2347 + "median_s": 0.003796167206019163,
2348 + "ci_lo": 0.0033167502842843533,
2349 + "ci_hi": 0.004350459203124046,
2350 + "device_s": 0.000579125015065074,
2351 + "elements_per_s": 1027352007.5238521,
2352 + "reps": 5,
2353 + "precision": "fp32",
2354 + "peak_rss_mb": 781.1072
2355 + },
2356 + {
2357 + "kernel": "regression_stats",
2358 + "S": 1000,
2359 + "n": 39000,
2360 + "elements": 39000000,
2361 + "backend": "cpu",
2362 + "threads": 1,
2363 + "median_s": 0.3240363751538098,
2364 + "ci_lo": 0.3117389581166208,
2365 + "ci_hi": 0.326583041343838,
2366 + "device_s": 0.0,
2367 + "elements_per_s": 120356858.02709013,
2368 + "reps": 5,
2369 + "precision": "fp64",
2370 + "peak_rss_mb": 3431.46496
2371 + },
2372 + {
2373 + "kernel": "regression_stats",
2374 + "S": 1000,
2375 + "n": 39000,
2376 + "elements": 39000000,
2377 + "backend": "cpu",
2378 + "threads": 18,
2379 + "median_s": 0.031240916810929775,
2380 + "ci_lo": 0.029546833131462336,
2381 + "ci_hi": 0.03264595801010728,
2382 + "device_s": 0.0,
2383 + "elements_per_s": 1248362851.7059293,
2384 + "reps": 5,
2385 + "precision": "fp64",
2386 + "peak_rss_mb": 3431.87456
2387 + },
2388 + {
2389 + "kernel": "regression_stats",
2390 + "S": 1000,
2391 + "n": 39000,
2392 + "elements": 39000000,
2393 + "backend": "metal",
2394 + "threads": 0,
2395 + "median_s": 0.026743208058178425,
2396 + "ci_lo": 0.025766875129193068,
2397 + "ci_hi": 0.02711204206570983,
2398 + "device_s": 0.004475083318538964,
2399 + "elements_per_s": 1458314197.5771036,
2400 + "reps": 5,
2401 + "precision": "fp32",
2402 + "peak_rss_mb": 3360.11264
2403 + },
2404 + {
2405 + "kernel": "regression_stats",
2406 + "S": 10000,
2407 + "n": 390,
2408 + "elements": 3900000,
2409 + "backend": "cpu",
2410 + "threads": 1,
2411 + "median_s": 0.030644499696791172,
2412 + "ci_lo": 0.030419666320085526,
2413 + "ci_hi": 0.030872833915054798,
2414 + "device_s": 0.0,
2415 + "elements_per_s": 127265905.41820379,
2416 + "reps": 5,
2417 + "precision": "fp64",
2418 + "peak_rss_mb": 3431.87456
2419 + },
2420 + {
2421 + "kernel": "regression_stats",
2422 + "S": 10000,
2423 + "n": 390,
2424 + "elements": 3900000,
2425 + "backend": "cpu",
2426 + "threads": 18,
2427 + "median_s": 0.003959249705076218,
2428 + "ci_lo": 0.0036838343366980553,
2429 + "ci_hi": 0.00489212479442358,
2430 + "device_s": 0.0,
2431 + "elements_per_s": 985035117.8910861,
2432 + "reps": 5,
2433 + "precision": "fp64",
2434 + "peak_rss_mb": 2962.440192
2435 + },
2436 + {
2437 + "kernel": "regression_stats",
2438 + "S": 10000,
2439 + "n": 390,
2440 + "elements": 3900000,
2441 + "backend": "metal",
2442 + "threads": 0,
2443 + "median_s": 0.004190749954432249,
2444 + "ci_lo": 0.00392800010740757,
2445 + "ci_hi": 0.005979666020721197,
2446 + "device_s": 0.0011161250295117497,
2447 + "elements_per_s": 930621020.6779948,
2448 + "reps": 5,
2449 + "precision": "fp32",
2450 + "peak_rss_mb": 3432.742912
2451 + },
2452 + {
2453 + "kernel": "regression_stats",
2454 + "S": 10000,
2455 + "n": 3900,
2456 + "elements": 39000000,
2457 + "backend": "cpu",
2458 + "threads": 1,
2459 + "median_s": 0.3569141672924161,
2460 + "ci_lo": 0.3479222496971488,
2461 + "ci_hi": 0.35834929207339883,
2462 + "device_s": 0.0,
2463 + "elements_per_s": 109269969.01203898,
2464 + "reps": 5,
2465 + "precision": "fp64",
2466 + "peak_rss_mb": 2962.440192
2467 + },
2468 + {
2469 + "kernel": "regression_stats",
2470 + "S": 10000,
2471 + "n": 3900,
2472 + "elements": 39000000,
2473 + "backend": "cpu",
2474 + "threads": 18,
2475 + "median_s": 0.03749012481421232,
2476 + "ci_lo": 0.03214179212227464,
2477 + "ci_hi": 0.03947866568341851,
2478 + "device_s": 0.0,
2479 + "elements_per_s": 1040273943.9591113,
2480 + "reps": 5,
2481 + "precision": "fp64",
2482 + "peak_rss_mb": 2962.440192
2483 + },
2484 + {
2485 + "kernel": "regression_stats",
2486 + "S": 10000,
2487 + "n": 3900,
2488 + "elements": 39000000,
2489 + "backend": "metal",
2490 + "threads": 0,
2491 + "median_s": 0.026574499905109406,
2492 + "ci_lo": 0.026411292143166065,
2493 + "ci_hi": 0.026990290731191635,
2494 + "device_s": 0.004499250091612339,
2495 + "elements_per_s": 1467572301.9909616,
2496 + "reps": 5,
2497 + "precision": "fp32",
2498 + "peak_rss_mb": 3221.83168
2499 + },
2500 + {
2501 + "kernel": "rolling_sumsq",
2502 + "S": 1,
2503 + "n": 390,
2504 + "elements": 390,
2505 + "backend": "cpu",
2506 + "threads": 1,
2507 + "median_s": 9.578652679920197e-07,
2508 + "ci_lo": 8.330680429935455e-07,
2509 + "ci_hi": 1.0831281542778015e-06,
2510 + "device_s": 0.0,
2511 + "elements_per_s": 407155382.94603795,
2512 + "reps": 5,
2513 + "precision": "fp64",
2514 + "peak_rss_mb": 3431.497728
2515 + },
2516 + {
2517 + "kernel": "rolling_sumsq",
2518 + "S": 1,
2519 + "n": 390,
2520 + "elements": 390,
2521 + "backend": "cpu",
2522 + "threads": 18,
2523 + "median_s": 7.920898497104645e-07,
2524 + "ci_lo": 7.920898497104645e-07,
2525 + "ci_hi": 8.749775588512421e-07,
2526 + "device_s": 0.0,
2527 + "elements_per_s": 492368384.9029982,
2528 + "reps": 5,
2529 + "precision": "fp64",
2530 + "peak_rss_mb": 3431.87456
2531 + },
2532 + {
2533 + "kernel": "rolling_sumsq",
2534 + "S": 1,
2535 + "n": 390,
2536 + "elements": 390,
2537 + "backend": "metal",
2538 + "threads": 0,
2539 + "median_s": 0.0002839169465005398,
2540 + "ci_lo": 0.0001594587229192257,
2541 + "ci_hi": 0.0008917916566133499,
2542 + "device_s": 1.8750084564089775e-05,
2543 + "elements_per_s": 1373641.146845944,
2544 + "reps": 5,
2545 + "precision": "fp32",
2546 + "peak_rss_mb": 3253.567488
2547 + },
2548 + {
2549 + "kernel": "rolling_sumsq",
2550 + "S": 1,
2551 + "n": 3900,
2552 + "elements": 3900,
2553 + "backend": "cpu",
2554 + "threads": 1,
2555 + "median_s": 7.4999406933784485e-06,
2556 + "ci_lo": 7.33276829123497e-06,
2557 + "ci_hi": 7.542315870523453e-06,
2558 + "device_s": 0.0,
2559 + "elements_per_s": 520004111.9582764,
2560 + "reps": 5,
2561 + "precision": "fp64",
2562 + "peak_rss_mb": 3431.530496
2563 + },
2564 + {
2565 + "kernel": "rolling_sumsq",
2566 + "S": 1,
2567 + "n": 3900,
2568 + "elements": 3900,
2569 + "backend": "cpu",
2570 + "threads": 18,
2571 + "median_s": 7.4999406933784485e-06,
2572 + "ci_lo": 7.415656000375748e-06,
2573 + "ci_hi": 8.250121027231216e-06,
2574 + "device_s": 0.0,
2575 + "elements_per_s": 520004111.9582764,
2576 + "reps": 5,
2577 + "precision": "fp64",
2578 + "peak_rss_mb": 3255.468032
2579 + },
2580 + {
2581 + "kernel": "rolling_sumsq",
2582 + "S": 1,
2583 + "n": 3900,
2584 + "elements": 3900,
2585 + "backend": "metal",
2586 + "threads": 0,
2587 + "median_s": 0.0002416251227259636,
2588 + "ci_lo": 0.0001499168574810028,
2589 + "ci_hi": 0.0002560419961810112,
2590 + "device_s": 4.958361387252808e-06,
2591 + "elements_per_s": 16140705.718018986,
2592 + "reps": 5,
2593 + "precision": "fp32",
2594 + "peak_rss_mb": 2962.440192
2595 + },
2596 + {
2597 + "kernel": "rolling_sumsq",
2598 + "S": 1,
2599 + "n": 39000,
2600 + "elements": 39000,
2601 + "backend": "cpu",
2602 + "threads": 1,
2603 + "median_s": 6.93327747285366e-05,
2604 + "ci_lo": 6.899982690811157e-05,
2605 + "ci_hi": 7.020775228738785e-05,
2606 + "device_s": 0.0,
2607 + "elements_per_s": 562504531.9864868,
2608 + "reps": 5,
2609 + "precision": "fp64",
2610 + "peak_rss_mb": 3355.8528
2611 + },
2612 + {
2613 + "kernel": "rolling_sumsq",
2614 + "S": 1,
2615 + "n": 39000,
2616 + "elements": 39000,
2617 + "backend": "cpu",
2618 + "threads": 18,
2619 + "median_s": 7.025012746453285e-05,
2620 + "ci_lo": 6.979191675782204e-05,
2621 + "ci_hi": 8.300039917230606e-05,
2622 + "device_s": 0.0,
2623 + "elements_per_s": 555159135.0448426,
2624 + "reps": 5,
2625 + "precision": "fp64",
2626 + "peak_rss_mb": 781.1072
2627 + },
2628 + {
2629 + "kernel": "rolling_sumsq",
2630 + "S": 1,
2631 + "n": 39000,
2632 + "elements": 39000,
2633 + "backend": "metal",
2634 + "threads": 0,
2635 + "median_s": 0.00016458332538604736,
2636 + "ci_lo": 0.00015858327969908714,
2637 + "ci_hi": 0.00017341692000627518,
2638 + "device_s": 1.9583385437726974e-05,
2639 + "elements_per_s": 236962036.75871435,
2640 + "reps": 5,
2641 + "precision": "fp32",
2642 + "peak_rss_mb": 2962.440192
2643 + },
2644 + {
2645 + "kernel": "rolling_sumsq",
2646 + "S": 1,
2647 + "n": 390000,
2648 + "elements": 390000,
2649 + "backend": "cpu",
2650 + "threads": 1,
2651 + "median_s": 0.0006914162077009678,
2652 + "ci_lo": 0.000687750056385994,
2653 + "ci_hi": 0.0007007499225437641,
2654 + "device_s": 0.0,
2655 + "elements_per_s": 564059672.9671572,
2656 + "reps": 5,
2657 + "precision": "fp64",
2658 + "peak_rss_mb": 3432.742912
2659 + },
2660 + {
2661 + "kernel": "rolling_sumsq",
2662 + "S": 1,
2663 + "n": 390000,
2664 + "elements": 390000,
2665 + "backend": "cpu",
2666 + "threads": 18,
2667 + "median_s": 0.000718916766345501,
2668 + "ci_lo": 0.0007105418480932713,
2669 + "ci_hi": 0.0012256246991455555,
2670 + "device_s": 0.0,
2671 + "elements_per_s": 542482827.2993312,
2672 + "reps": 5,
2673 + "precision": "fp64",
2674 + "peak_rss_mb": 2962.440192
2675 + },
2676 + {
2677 + "kernel": "rolling_sumsq",
2678 + "S": 1,
2679 + "n": 390000,
2680 + "elements": 390000,
2681 + "backend": "metal",
2682 + "threads": 0,
2683 + "median_s": 0.0007903752848505974,
2684 + "ci_lo": 0.000574291218072176,
2685 + "ci_hi": 0.0009351670742034912,
2686 + "device_s": 6.225006654858589e-05,
2687 + "elements_per_s": 493436481.97921664,
2688 + "reps": 5,
2689 + "precision": "fp32",
2690 + "peak_rss_mb": 2962.440192
2691 + },
2692 + {
2693 + "kernel": "rolling_sumsq",
2694 + "S": 10,
2695 + "n": 390,
2696 + "elements": 3900,
2697 + "backend": "cpu",
2698 + "threads": 1,
2699 + "median_s": 7.1660615503787994e-06,
2700 + "ci_lo": 7.000286132097244e-06,
2701 + "ci_hi": 7.166992872953415e-06,
2702 + "device_s": 0.0,
2703 + "elements_per_s": 544231998.6483852,
2704 + "reps": 5,
2705 + "precision": "fp64",
2706 + "peak_rss_mb": 3432.742912
2707 + },
2708 + {
2709 + "kernel": "rolling_sumsq",
2710 + "S": 10,
2711 + "n": 390,
2712 + "elements": 3900,
2713 + "backend": "cpu",
2714 + "threads": 18,
2715 + "median_s": 1.800013706088066e-05,
2716 + "ci_lo": 1.5374738723039627e-05,
2717 + "ci_hi": 2.3958273231983185e-05,
2718 + "device_s": 0.0,
2719 + "elements_per_s": 216665016.87233216,
2720 + "reps": 5,
2721 + "precision": "fp64",
2722 + "peak_rss_mb": 3432.742912
2723 + },
2724 + {
2725 + "kernel": "rolling_sumsq",
2726 + "S": 10,
2727 + "n": 390,
2728 + "elements": 3900,
2729 + "backend": "metal",
2730 + "threads": 0,
2731 + "median_s": 0.0002032076008617878,
2732 + "ci_lo": 0.00014958297833800316,
2733 + "ci_hi": 0.0006746253930032253,
2734 + "device_s": 1.4499993994832039e-05,
2735 + "elements_per_s": 19192195.486095995,
2736 + "reps": 5,
2737 + "precision": "fp32",
2738 + "peak_rss_mb": 17.170432
2739 + },
2740 + {
2741 + "kernel": "rolling_sumsq",
2742 + "S": 10,
2743 + "n": 3900,
2744 + "elements": 39000,
2745 + "backend": "cpu",
2746 + "threads": 1,
2747 + "median_s": 6.929086521267891e-05,
2748 + "ci_lo": 6.908271461725235e-05,
2749 + "ci_hi": 6.937514990568161e-05,
2750 + "device_s": 0.0,
2751 + "elements_per_s": 562844754.2153615,
2752 + "reps": 5,
2753 + "precision": "fp64",
2754 + "peak_rss_mb": 2962.440192
2755 + },
2756 + {
2757 + "kernel": "rolling_sumsq",
2758 + "S": 10,
2759 + "n": 3900,
2760 + "elements": 39000,
2761 + "backend": "cpu",
2762 + "threads": 18,
2763 + "median_s": 4.487484693527222e-05,
2764 + "ci_lo": 3.987457603216171e-05,
2765 + "ci_hi": 5.0374772399663925e-05,
2766 + "device_s": 0.0,
2767 + "elements_per_s": 869083744.313465,
2768 + "reps": 5,
2769 + "precision": "fp64",
2770 + "peak_rss_mb": 2962.440192
2771 + },
2772 + {
2773 + "kernel": "rolling_sumsq",
2774 + "S": 10,
2775 + "n": 3900,
2776 + "elements": 39000,
2777 + "backend": "metal",
2778 + "threads": 0,
2779 + "median_s": 0.00016070762649178505,
2780 + "ci_lo": 0.00014404207468032837,
2781 + "ci_hi": 0.00017450004816055298,
2782 + "device_s": 1.9625062122941017e-05,
2783 + "elements_per_s": 242676722.01601195,
2784 + "reps": 5,
2785 + "precision": "fp32",
2786 + "peak_rss_mb": 2962.440192
2787 + },
2788 + {
2789 + "kernel": "rolling_sumsq",
2790 + "S": 10,
2791 + "n": 39000,
2792 + "elements": 390000,
2793 + "backend": "cpu",
2794 + "threads": 1,
2795 + "median_s": 0.0007095411419868469,
2796 + "ci_lo": 0.0007064170204102993,
2797 + "ci_hi": 0.000905290711671114,
2798 + "device_s": 0.0,
2799 + "elements_per_s": 549651002.4886332,
2800 + "reps": 5,
2801 + "precision": "fp64",
2802 + "peak_rss_mb": 3432.742912
2803 + },
2804 + {
2805 + "kernel": "rolling_sumsq",
2806 + "S": 10,
2807 + "n": 39000,
2808 + "elements": 390000,
2809 + "backend": "cpu",
2810 + "threads": 18,
2811 + "median_s": 0.000132707878947258,
2812 + "ci_lo": 0.00013195769861340523,
2813 + "ci_hi": 0.00013837497681379318,
2814 + "device_s": 0.0,
2815 + "elements_per_s": 2938785572.4451556,
2816 + "reps": 5,
2817 + "precision": "fp64",
2818 + "peak_rss_mb": 3358.88384
2819 + },
2820 + {
2821 + "kernel": "rolling_sumsq",
2822 + "S": 10,
2823 + "n": 39000,
2824 + "elements": 390000,
2825 + "backend": "metal",
2826 + "threads": 0,
2827 + "median_s": 0.0007357923313975334,
2828 + "ci_lo": 0.0007097921334207058,
2829 + "ci_hi": 0.0007738331332802773,
2830 + "device_s": 9.062490426003933e-05,
2831 + "elements_per_s": 530040859.8432253,
2832 + "reps": 5,
2833 + "precision": "fp32",
2834 + "peak_rss_mb": 3431.46496
2835 + },
2836 + {
2837 + "kernel": "rolling_sumsq",
2838 + "S": 10,
2839 + "n": 390000,
2840 + "elements": 3900000,
2841 + "backend": "cpu",
2842 + "threads": 1,
2843 + "median_s": 0.006913874763995409,
2844 + "ci_lo": 0.00687399972230196,
2845 + "ci_hi": 0.006919416133314371,
2846 + "device_s": 0.0,
2847 + "elements_per_s": 564083113.033748,
2848 + "reps": 5,
2849 + "precision": "fp64",
2850 + "peak_rss_mb": 3368.943616
2851 + },
2852 + {
2853 + "kernel": "rolling_sumsq",
2854 + "S": 10,
2855 + "n": 390000,
2856 + "elements": 3900000,
2857 + "backend": "cpu",
2858 + "threads": 18,
2859 + "median_s": 0.0017658751457929611,
2860 + "ci_lo": 0.0013864999637007713,
2861 + "ci_hi": 0.0021367911249399185,
2862 + "device_s": 0.0,
2863 + "elements_per_s": 2208536662.0009346,
2864 + "reps": 5,
2865 + "precision": "fp64",
2866 + "peak_rss_mb": 2962.440192
2867 + },
2868 + {
2869 + "kernel": "rolling_sumsq",
2870 + "S": 10,
2871 + "n": 390000,
2872 + "elements": 3900000,
2873 + "backend": "metal",
2874 + "threads": 0,
2875 + "median_s": 0.002544207964092493,
2876 + "ci_lo": 0.0024965000338852406,
2877 + "ci_hi": 0.0026084999553859234,
2878 + "device_s": 0.00076149997767061,
2879 + "elements_per_s": 1532893558.6407974,
2880 + "reps": 5,
2881 + "precision": "fp32",
2882 + "peak_rss_mb": 3253.567488
2883 + },
2884 + {
2885 + "kernel": "rolling_sumsq",
2886 + "S": 100,
2887 + "n": 390,
2888 + "elements": 39000,
2889 + "backend": "cpu",
2890 + "threads": 1,
2891 + "median_s": 6.991717964410782e-05,
2892 + "ci_lo": 6.962474435567856e-05,
2893 + "ci_hi": 7.033301517367363e-05,
2894 + "device_s": 0.0,
2895 + "elements_per_s": 557802820.4014759,
2896 + "reps": 5,
2897 + "precision": "fp64",
2898 + "peak_rss_mb": 3368.943616
2899 + },
2900 + {
2901 + "kernel": "rolling_sumsq",
2902 + "S": 100,
2903 + "n": 390,
2904 + "elements": 39000,
2905 + "backend": "cpu",
2906 + "threads": 18,
2907 + "median_s": 0.00017983326688408852,
2908 + "ci_lo": 0.00014462508261203766,
2909 + "ci_hi": 0.0002232920378446579,
2910 + "device_s": 0.0,
2911 + "elements_per_s": 216867550.01307648,
2912 + "reps": 5,
2913 + "precision": "fp64",
2914 + "peak_rss_mb": 2962.440192
2915 + },
2916 + {
2917 + "kernel": "rolling_sumsq",
2918 + "S": 100,
2919 + "n": 390,
2920 + "elements": 39000,
2921 + "backend": "metal",
2922 + "threads": 0,
2923 + "median_s": 0.0002676667645573616,
2924 + "ci_lo": 0.00017749983817338943,
2925 + "ci_hi": 0.0007679169066250324,
2926 + "device_s": 9.541632607579231e-06,
2927 + "elements_per_s": 145703558.1705259,
2928 + "reps": 5,
2929 + "precision": "fp32",
2930 + "peak_rss_mb": 2962.440192
2931 + },
2932 + {
2933 + "kernel": "rolling_sumsq",
2934 + "S": 100,
2935 + "n": 3900,
2936 + "elements": 390000,
2937 + "backend": "cpu",
2938 + "threads": 1,
2939 + "median_s": 0.000806666910648346,
2940 + "ci_lo": 0.0007096659392118454,
2941 + "ci_hi": 0.0011533750221133232,
2942 + "device_s": 0.0,
2943 + "elements_per_s": 483470928.151179,
2944 + "reps": 5,
2945 + "precision": "fp64",
2946 + "peak_rss_mb": 2962.440192
2947 + },
2948 + {
2949 + "kernel": "rolling_sumsq",
2950 + "S": 100,
2951 + "n": 3900,
2952 + "elements": 390000,
2953 + "backend": "cpu",
2954 + "threads": 18,
2955 + "median_s": 0.00020312517881393433,
2956 + "ci_lo": 0.00012504169717431068,
2957 + "ci_hi": 0.0002259998582303524,
2958 + "device_s": 0.0,
2959 + "elements_per_s": 1919998309.797161,
2960 + "reps": 5,
2961 + "precision": "fp64",
2962 + "peak_rss_mb": 781.484032
2963 + },
2964 + {
2965 + "kernel": "rolling_sumsq",
2966 + "S": 100,
2967 + "n": 3900,
2968 + "elements": 390000,
2969 + "backend": "metal",
2970 + "threads": 0,
2971 + "median_s": 0.0006820829585194588,
2972 + "ci_lo": 0.0003593750298023224,
2973 + "ci_hi": 0.0008333330042660236,
2974 + "device_s": 9.058334399014711e-05,
2975 + "elements_per_s": 571777956.2277012,
2976 + "reps": 5,
2977 + "precision": "fp32",
2978 + "peak_rss_mb": 3431.530496
2979 + },
2980 + {
2981 + "kernel": "rolling_sumsq",
2982 + "S": 100,
2983 + "n": 39000,
2984 + "elements": 3900000,
2985 + "backend": "cpu",
2986 + "threads": 1,
2987 + "median_s": 0.007338124793022871,
2988 + "ci_lo": 0.007089000195264816,
2989 + "ci_hi": 0.008123625069856644,
2990 + "device_s": 0.0,
2991 + "elements_per_s": 531470928.88201374,
2992 + "reps": 5,
2993 + "precision": "fp64",
2994 + "peak_rss_mb": 2962.440192
2995 + },
2996 + {
2997 + "kernel": "rolling_sumsq",
2998 + "S": 100,
2999 + "n": 39000,
3000 + "elements": 3900000,
3001 + "backend": "cpu",
3002 + "threads": 18,
3003 + "median_s": 0.0010874588042497635,
3004 + "ci_lo": 0.0009993752464652061,
3005 + "ci_hi": 0.0013045421801507473,
3006 + "device_s": 0.0,
3007 + "elements_per_s": 3586342751.3381577,
3008 + "reps": 5,
3009 + "precision": "fp64",
3010 + "peak_rss_mb": 2962.440192
3011 + },
3012 + {
3013 + "kernel": "rolling_sumsq",
3014 + "S": 100,
3015 + "n": 39000,
3016 + "elements": 3900000,
3017 + "backend": "metal",
3018 + "threads": 0,
3019 + "median_s": 0.002226833254098892,
3020 + "ci_lo": 0.0021508331410586834,
3021 + "ci_hi": 0.002632542047649622,
3022 + "device_s": 0.00043350004125386477,
3023 + "elements_per_s": 1751365978.0413911,
3024 + "reps": 5,
3025 + "precision": "fp32",
3026 + "peak_rss_mb": 3431.87456
3027 + },
3028 + {
3029 + "kernel": "rolling_sumsq",
3030 + "S": 100,
3031 + "n": 390000,
3032 + "elements": 39000000,
3033 + "backend": "cpu",
3034 + "threads": 1,
3035 + "median_s": 0.06962170917540789,
3036 + "ci_lo": 0.06953629199415445,
3037 + "ci_hi": 0.06967033399268985,
3038 + "device_s": 0.0,
3039 + "elements_per_s": 560170103.0025239,
3040 + "reps": 5,
3041 + "precision": "fp64",
3042 + "peak_rss_mb": 3222.339584
3043 + },
3044 + {
3045 + "kernel": "rolling_sumsq",
3046 + "S": 100,
3047 + "n": 390000,
3048 + "elements": 39000000,
3049 + "backend": "cpu",
3050 + "threads": 18,
3051 + "median_s": 0.009413291700184345,
3052 + "ci_lo": 0.009286124724894762,
3053 + "ci_hi": 0.010024874936789274,
3054 + "device_s": 0.0,
3055 + "elements_per_s": 4143077814.027185,
3056 + "reps": 5,
3057 + "precision": "fp64",
3058 + "peak_rss_mb": 3355.8528
3059 + },
3060 + {
3061 + "kernel": "rolling_sumsq",
3062 + "S": 100,
3063 + "n": 390000,
3064 + "elements": 39000000,
3065 + "backend": "metal",
3066 + "threads": 0,
3067 + "median_s": 0.014852333813905716,
3068 + "ci_lo": 0.014340042136609554,
3069 + "ci_hi": 0.01528970804065466,
3070 + "device_s": 0.0023322500055655837,
3071 + "elements_per_s": 2625849949.823083,
3072 + "reps": 5,
3073 + "precision": "fp32",
3074 + "peak_rss_mb": 3255.451648
3075 + },
3076 + {
3077 + "kernel": "rolling_sumsq",
3078 + "S": 1000,
3079 + "n": 390,
3080 + "elements": 390000,
3081 + "backend": "cpu",
3082 + "threads": 1,
3083 + "median_s": 0.0007188748568296432,
3084 + "ci_lo": 0.0007158750668168068,
3085 + "ci_hi": 0.0007281671278178692,
3086 + "device_s": 0.0,
3087 + "elements_per_s": 542514453.3778304,
3088 + "reps": 5,
3089 + "precision": "fp64",
3090 + "peak_rss_mb": 3431.563264
3091 + },
3092 + {
3093 + "kernel": "rolling_sumsq",
3094 + "S": 1000,
3095 + "n": 390,
3096 + "elements": 390000,
3097 + "backend": "cpu",
3098 + "threads": 18,
3099 + "median_s": 0.0002710837870836258,
3100 + "ci_lo": 0.0002649589441716671,
3101 + "ci_hi": 0.00028412509709596634,
3102 + "device_s": 0.0,
3103 + "elements_per_s": 1438669586.977882,
3104 + "reps": 5,
3105 + "precision": "fp64",
3106 + "peak_rss_mb": 3431.858176
3107 + },
3108 + {
3109 + "kernel": "rolling_sumsq",
3110 + "S": 1000,
3111 + "n": 390,
3112 + "elements": 390000,
3113 + "backend": "metal",
3114 + "threads": 0,
3115 + "median_s": 0.0009075421839952469,
3116 + "ci_lo": 0.000882917083799839,
3117 + "ci_hi": 0.000995416659861803,
3118 + "device_s": 2.3708329536020756e-05,
3119 + "elements_per_s": 429732090.5603684,
3120 + "reps": 5,
3121 + "precision": "fp32",
3122 + "peak_rss_mb": 2962.440192
3123 + },
3124 + {
3125 + "kernel": "rolling_sumsq",
3126 + "S": 1000,
3127 + "n": 3900,
3128 + "elements": 3900000,
3129 + "backend": "cpu",
3130 + "threads": 1,
3131 + "median_s": 0.00695441709831357,
3132 + "ci_lo": 0.006937959231436253,
3133 + "ci_hi": 0.006972583010792732,
3134 + "device_s": 0.0,
3135 + "elements_per_s": 560794664.0050883,
3136 + "reps": 5,
3137 + "precision": "fp64",
3138 + "peak_rss_mb": 3432.742912
3139 + },
3140 + {
3141 + "kernel": "rolling_sumsq",
3142 + "S": 1000,
3143 + "n": 3900,
3144 + "elements": 3900000,
3145 + "backend": "cpu",
3146 + "threads": 18,
3147 + "median_s": 0.0010273326188325882,
3148 + "ci_lo": 0.0008542081341147423,
3149 + "ci_hi": 0.0010719997808337212,
3150 + "device_s": 0.0,
3151 + "elements_per_s": 3796238850.5017724,
3152 + "reps": 5,
3153 + "precision": "fp64",
3154 + "peak_rss_mb": 556.466176
3155 + },
3156 + {
3157 + "kernel": "rolling_sumsq",
3158 + "S": 1000,
3159 + "n": 3900,
3160 + "elements": 3900000,
3161 + "backend": "metal",
3162 + "threads": 0,
3163 + "median_s": 0.002144791651517153,
3164 + "ci_lo": 0.0021287081763148308,
3165 + "ci_hi": 0.0034982911311089993,
3166 + "device_s": 0.0007578750373795629,
3167 + "elements_per_s": 1818358439.264379,
3168 + "reps": 5,
3169 + "precision": "fp32",
3170 + "peak_rss_mb": 3431.497728
3171 + },
3172 + {
3173 + "kernel": "rolling_sumsq",
3174 + "S": 1000,
3175 + "n": 39000,
3176 + "elements": 39000000,
3177 + "backend": "cpu",
3178 + "threads": 1,
3179 + "median_s": 0.07026320835575461,
3180 + "ci_lo": 0.0701742498204112,
3181 + "ci_hi": 0.07056499971076846,
3182 + "device_s": 0.0,
3183 + "elements_per_s": 555055781.1498778,
3184 + "reps": 5,
3185 + "precision": "fp64",
3186 + "peak_rss_mb": 2962.440192
3187 + },
3188 + {
3189 + "kernel": "rolling_sumsq",
3190 + "S": 1000,
3191 + "n": 39000,
3192 + "elements": 39000000,
3193 + "backend": "cpu",
3194 + "threads": 18,
3195 + "median_s": 0.00831229193136096,
3196 + "ci_lo": 0.007511000148952007,
3197 + "ci_hi": 0.008729041088372469,
3198 + "device_s": 0.0,
3199 + "elements_per_s": 4691846764.05062,
3200 + "reps": 5,
3201 + "precision": "fp64",
3202 + "peak_rss_mb": 3368.894464
3203 + },
3204 + {
3205 + "kernel": "rolling_sumsq",
3206 + "S": 1000,
3207 + "n": 39000,
3208 + "elements": 39000000,
3209 + "backend": "metal",
3210 + "threads": 0,
3211 + "median_s": 0.014728832989931107,
3212 + "ci_lo": 0.014530166983604431,
3213 + "ci_hi": 0.01593674998730421,
3214 + "device_s": 0.002570083364844322,
3215 + "elements_per_s": 2647867623.094178,
3216 + "reps": 5,
3217 + "precision": "fp32",
3218 + "peak_rss_mb": 3368.894464
3219 + },
3220 + {
3221 + "kernel": "rolling_sumsq",
3222 + "S": 10000,
3223 + "n": 390,
3224 + "elements": 3900000,
3225 + "backend": "cpu",
3226 + "threads": 1,
3227 + "median_s": 0.007047916762530804,
3228 + "ci_lo": 0.007002290803939104,
3229 + "ci_hi": 0.007088833022862673,
3230 + "device_s": 0.0,
3231 + "elements_per_s": 553355002.8192397,
3232 + "reps": 5,
3233 + "precision": "fp64",
3234 + "peak_rss_mb": 3431.858176
3235 + },
3236 + {
3237 + "kernel": "rolling_sumsq",
3238 + "S": 10000,
3239 + "n": 390,
3240 + "elements": 3900000,
3241 + "backend": "cpu",
3242 + "threads": 18,
3243 + "median_s": 0.00107216602191329,
3244 + "ci_lo": 0.001034500077366829,
3245 + "ci_hi": 0.0011164997704327106,
3246 + "device_s": 0.0,
3247 + "elements_per_s": 3637496358.111046,
3248 + "reps": 5,
3249 + "precision": "fp64",
3250 + "peak_rss_mb": 2962.440192
3251 + },
3252 + {
3253 + "kernel": "rolling_sumsq",
3254 + "S": 10000,
3255 + "n": 390,
3256 + "elements": 3900000,
3257 + "backend": "metal",
3258 + "threads": 0,
3259 + "median_s": 0.0021627498790621758,
3260 + "ci_lo": 0.002053916919976473,
3261 + "ci_hi": 0.0022570830769836903,
3262 + "device_s": 0.0002617916325107217,
3263 + "elements_per_s": 1803259839.5941842,
3264 + "reps": 5,
3265 + "precision": "fp32",
3266 + "peak_rss_mb": 3431.858176
3267 + },
3268 + {
3269 + "kernel": "rolling_sumsq",
3270 + "S": 10000,
3271 + "n": 3900,
3272 + "elements": 39000000,
3273 + "backend": "cpu",
3274 + "threads": 1,
3275 + "median_s": 0.06922604190185666,
3276 + "ci_lo": 0.06907229218631983,
3277 + "ci_hi": 0.06939475005492568,
3278 + "device_s": 0.0,
3279 + "elements_per_s": 563371802.4105898,
3280 + "reps": 5,
3281 + "precision": "fp64",
3282 + "peak_rss_mb": 3360.096256
3283 + },
3284 + {
3285 + "kernel": "rolling_sumsq",
3286 + "S": 10000,
3287 + "n": 3900,
3288 + "elements": 39000000,
3289 + "backend": "cpu",
3290 + "threads": 18,
3291 + "median_s": 0.00654304213821888,
3292 + "ci_lo": 0.006384790875017643,
3293 + "ci_hi": 0.00675958301872015,
3294 + "device_s": 0.0,
3295 + "elements_per_s": 5960530159.540807,
3296 + "reps": 5,
3297 + "precision": "fp64",
3298 + "peak_rss_mb": 3432.742912
3299 + },
3300 + {
3301 + "kernel": "rolling_sumsq",
3302 + "S": 10000,
3303 + "n": 3900,
3304 + "elements": 39000000,
3305 + "backend": "metal",
3306 + "threads": 0,
3307 + "median_s": 0.014753291849046946,
3308 + "ci_lo": 0.01457533286884427,
3309 + "ci_hi": 0.01564762508496642,
3310 + "device_s": 0.0025377500569447875,
3311 + "elements_per_s": 2643477835.254739,
3312 + "reps": 5,
3313 + "precision": "fp32",
3314 + "peak_rss_mb": 2962.440192
3315 + }
3316 + ],
3317 + "metal_summary": [
3318 + {
3319 + "kernel": "garch_nll_P1",
3320 + "S": 1,
3321 + "n": 390,
3322 + "elements": 390,
3323 + "backend": "metal",
3324 + "threads": 0,
3325 + "median_s": 0.0009180000051856041,
3326 + "ci_lo": 0.00044724997133016586,
3327 + "ci_hi": 0.0009358339011669159,
3328 + "device_s": 0.00032679166179150343,
3329 + "elements_per_s": 424836.59890736995,
3330 + "reps": 5,
3331 + "precision": "fp32",
3332 + "peak_rss_mb": 2962.440192,
3333 + "speedup_vs_cpu_mt": 0.0019062691806288963,
3334 + "speedup_vs_cpu_1t": 0.00195090773515134,
3335 + "cpu_mt_median_s": 1.7499551177024841e-06,
3336 + "cpu_1t_median_s": 1.7909333109855652e-06,
3337 + "metal_wins_vs_mt": false,
3338 + "cpu_wins_vs_mt": true
3339 + },
3340 + {
3341 + "kernel": "garch_nll_P1",
3342 + "S": 1,
3343 + "n": 3900,
3344 + "elements": 3900,
3345 + "backend": "metal",
3346 + "threads": 0,
3347 + "median_s": 0.001348957885056734,
3348 + "ci_lo": 0.0010095001198351383,
3349 + "ci_hi": 0.0015331669710576534,
3350 + "device_s": 0.0011987084290012717,
3351 + "elements_per_s": 2891120.6518771155,
3352 + "reps": 5,
3353 + "precision": "fp32",
3354 + "peak_rss_mb": 2962.440192,
3355 + "speedup_vs_cpu_mt": 0.012571176081729732,
3356 + "speedup_vs_cpu_1t": 0.01204647092632898,
3357 + "cpu_mt_median_s": 1.695798709988594e-05,
3358 + "cpu_1t_median_s": 1.6250181943178177e-05,
3359 + "metal_wins_vs_mt": false,
3360 + "cpu_wins_vs_mt": true
3361 + },
3362 + {
3363 + "kernel": "garch_nll_P1",
3364 + "S": 10,
3365 + "n": 390,
3366 + "elements": 3900,
3367 + "backend": "metal",
3368 + "threads": 0,
3369 + "median_s": 0.0003432091325521469,
3370 + "ci_lo": 0.0003193751908838749,
3371 + "ci_hi": 0.0009956671856343746,
3372 + "device_s": 0.00019762502051889896,
3373 + "elements_per_s": 11363333.98531415,
3374 + "reps": 5,
3375 + "precision": "fp32",
3376 + "peak_rss_mb": 2920.169472,
3377 + "speedup_vs_cpu_mt": 0.08534725576498299,
3378 + "speedup_vs_cpu_1t": 0.06385848181092918,
3379 + "cpu_mt_median_s": 2.929195761680603e-05,
3380 + "cpu_1t_median_s": 2.1916814148426056e-05,
3381 + "metal_wins_vs_mt": false,
3382 + "cpu_wins_vs_mt": true
3383 + },
3384 + {
3385 + "kernel": "garch_nll_P1",
3386 + "S": 10,
3387 + "n": 3900,
3388 + "elements": 39000,
3389 + "backend": "metal",
3390 + "threads": 0,
3391 + "median_s": 0.0014300826005637646,
3392 + "ci_lo": 0.0012115412391722202,
3393 + "ci_hi": 0.0016847080551087856,
3394 + "device_s": 0.0010766249615699053,
3395 + "elements_per_s": 27271152.019208886,
3396 + "reps": 5,
3397 + "precision": "fp32",
3398 + "peak_rss_mb": 3360.11264,
3399 + "speedup_vs_cpu_mt": 0.04836508601699924,
3400 + "speedup_vs_cpu_1t": 0.15071999124737592,
3401 + "cpu_mt_median_s": 6.916606798768044e-05,
3402 + "cpu_1t_median_s": 0.0002155420370399952,
3403 + "metal_wins_vs_mt": false,
3404 + "cpu_wins_vs_mt": true
3405 + },
3406 + {
3407 + "kernel": "garch_nll_P1",
3408 + "S": 100,
3409 + "n": 390,
3410 + "elements": 39000,
3411 + "backend": "metal",
3412 + "threads": 0,
3413 + "median_s": 0.0006238752976059914,
3414 + "ci_lo": 0.0006115422584116459,
3415 + "ci_hi": 0.0006384579464793205,
3416 + "device_s": 0.0004310833755880594,
3417 + "elements_per_s": 62512492.720348835,
3418 + "reps": 5,
3419 + "precision": "fp32",
3420 + "peak_rss_mb": 3355.901952,
3421 + "speedup_vs_cpu_mt": 0.2583317036906555,
3422 + "speedup_vs_cpu_1t": 0.30722023762429446,
3423 + "cpu_mt_median_s": 0.00016116676852107048,
3424 + "cpu_1t_median_s": 0.0001916671171784401,
3425 + "metal_wins_vs_mt": false,
3426 + "cpu_wins_vs_mt": true
3427 + },
3428 + {
3429 + "kernel": "garch_nll_P1",
3430 + "S": 100,
3431 + "n": 3900,
3432 + "elements": 390000,
3433 + "backend": "metal",
3434 + "threads": 0,
3435 + "median_s": 0.0016493331640958786,
3436 + "ci_lo": 0.0015722080133855343,
3437 + "ci_hi": 0.004429208114743233,
3438 + "device_s": 0.0009533748961985111,
3439 + "elements_per_s": 236459199.68740082,
3440 + "reps": 5,
3441 + "precision": "fp32",
3442 + "peak_rss_mb": 2962.440192,
3443 + "speedup_vs_cpu_mt": 0.12547982504384633,
3444 + "speedup_vs_cpu_1t": 0.9794619635248267,
3445 + "cpu_mt_median_s": 0.00020695803686976433,
3446 + "cpu_1t_median_s": 0.0016154590994119644,
3447 + "metal_wins_vs_mt": false,
3448 + "cpu_wins_vs_mt": true
3449 + },
3450 + {
3451 + "kernel": "garch_nll_P1",
3452 + "S": 1000,
3453 + "n": 390,
3454 + "elements": 390000,
3455 + "backend": "metal",
3456 + "threads": 0,
3457 + "median_s": 0.0011531668715178967,
3458 + "ci_lo": 0.0010962923988699913,
3459 + "ci_hi": 0.0011774590238928795,
3460 + "device_s": 0.00017799995839595795,
3461 + "elements_per_s": 338199101.65009224,
3462 + "reps": 5,
3463 + "precision": "fp32",
3464 + "peak_rss_mb": 3222.339584,
3465 + "speedup_vs_cpu_mt": 0.23984627728802252,
3466 + "speedup_vs_cpu_1t": 1.4213035256320952,
3467 + "cpu_mt_median_s": 0.0002765827812254429,
3468 + "cpu_1t_median_s": 0.0016390001401305199,
3469 + "metal_wins_vs_mt": false,
3470 + "cpu_wins_vs_mt": true
3471 + },
3472 + {
3473 + "kernel": "garch_nll_P1",
3474 + "S": 1000,
3475 + "n": 3900,
3476 + "elements": 3900000,
3477 + "backend": "metal",
3478 + "threads": 0,
3479 + "median_s": 0.0072068748995661736,
3480 + "ci_lo": 0.007158916909247637,
3481 + "ci_hi": 0.009398084133863449,
3482 + "device_s": 0.0010924999369308352,
3483 + "elements_per_s": 541149951.171591,
3484 + "reps": 5,
3485 + "precision": "fp32",
3486 + "peak_rss_mb": 3360.11264,
3487 + "speedup_vs_cpu_mt": 0.20783391957146272,
3488 + "speedup_vs_cpu_1t": 2.5406528003548057,
3489 + "cpu_mt_median_s": 0.0014978330582380295,
3490 + "cpu_1t_median_s": 0.018310166895389557,
3491 + "metal_wins_vs_mt": false,
3492 + "cpu_wins_vs_mt": true
3493 + },
3494 + {
3495 + "kernel": "garch_nll_P1",
3496 + "S": 10000,
3497 + "n": 390,
3498 + "elements": 3900000,
3499 + "backend": "metal",
3500 + "threads": 0,
3501 + "median_s": 0.00675466563552618,
3502 + "ci_lo": 0.006540417205542326,
3503 + "ci_hi": 0.007071124855428934,
3504 + "device_s": 0.00046787504106760025,
3505 + "elements_per_s": 577378690.5880197,
3506 + "reps": 5,
3507 + "precision": "fp32",
3508 + "peak_rss_mb": 2962.440192,
3509 + "speedup_vs_cpu_mt": 0.33211607376881125,
3510 + "speedup_vs_cpu_1t": 2.6265426009135546,
3511 + "cpu_mt_median_s": 0.0022433330304920673,
3512 + "cpu_1t_median_s": 0.017741417046636343,
3513 + "metal_wins_vs_mt": false,
3514 + "cpu_wins_vs_mt": true
3515 + },
3516 + {
3517 + "kernel": "garch_nll_P1",
3518 + "S": 10000,
3519 + "n": 3900,
3520 + "elements": 39000000,
3521 + "backend": "metal",
3522 + "threads": 0,
3523 + "median_s": 0.06106641702353954,
3524 + "ci_lo": 0.05950908316299319,
3525 + "ci_hi": 0.0616582497023046,
3526 + "device_s": 0.004054000019095838,
3527 + "elements_per_s": 638648899.0334327,
3528 + "reps": 5,
3529 + "precision": "fp32",
3530 + "peak_rss_mb": 3355.901952,
3531 + "speedup_vs_cpu_mt": 0.22653068193252948,
3532 + "speedup_vs_cpu_1t": 2.6571710799488897,
3533 + "cpu_mt_median_s": 0.01383341709151864,
3534 + "cpu_1t_median_s": 0.16226391727104783,
3535 + "metal_wins_vs_mt": false,
3536 + "cpu_wins_vs_mt": true
3537 + },
3538 + {
3539 + "kernel": "garch_nll_P64",
3540 + "S": 1,
3541 + "n": 390,
3542 + "elements": 390,
3543 + "backend": "metal",
3544 + "threads": 0,
3545 + "median_s": 0.0005012080073356628,
3546 + "ci_lo": 0.00047737499698996544,
3547 + "ci_hi": 0.0006123748607933521,
3548 + "device_s": 0.0003255000337958336,
3549 + "elements_per_s": 778120.0505418383,
3550 + "reps": 5,
3551 + "precision": "fp32",
3552 + "peak_rss_mb": 3431.46496,
3553 + "speedup_vs_cpu_mt": 0.3436696347608925,
3554 + "speedup_vs_cpu_1t": 0.16535078265523034,
3555 + "cpu_mt_median_s": 0.00017224997282028198,
3556 + "cpu_1t_median_s": 8.287513628602028e-05,
3557 + "metal_wins_vs_mt": false,
3558 + "cpu_wins_vs_mt": true
3559 + },
3560 + {
3561 + "kernel": "garch_nll_P64",
3562 + "S": 1,
3563 + "n": 3900,
3564 + "elements": 3900,
3565 + "backend": "metal",
3566 + "threads": 0,
3567 + "median_s": 0.0014235423877835274,
3568 + "ci_lo": 0.00134983379393816,
3569 + "ci_hi": 0.0033927499316632748,
3570 + "device_s": 0.00122337497305125,
3571 + "elements_per_s": 2739644.4485733556,
3572 + "reps": 5,
3573 + "precision": "fp32",
3574 + "peak_rss_mb": 3431.87456,
3575 + "speedup_vs_cpu_mt": 0.09966326838366861,
3576 + "speedup_vs_cpu_1t": 0.5674807673058265,
3577 + "cpu_mt_median_s": 0.00014187488704919815,
3578 + "cpu_1t_median_s": 0.0008078329265117645,
3579 + "metal_wins_vs_mt": false,
3580 + "cpu_wins_vs_mt": true
3581 + },
3582 + {
3583 + "kernel": "garch_nll_P64",
3584 + "S": 10,
3585 + "n": 390,
3586 + "elements": 3900,
3587 + "backend": "metal",
3588 + "threads": 0,
3589 + "median_s": 0.0010179998353123665,
3590 + "ci_lo": 0.0004632081836462021,
3591 + "ci_hi": 0.0010751672089099884,
3592 + "device_s": 0.00032300001475960016,
3593 + "elements_per_s": 3831041.877136759,
3594 + "reps": 5,
3595 + "precision": "fp32",
3596 + "peak_rss_mb": 3431.530496,
3597 + "speedup_vs_cpu_mt": 0.23956310168891443,
3598 + "speedup_vs_cpu_1t": 0.8111084478655968,
3599 + "cpu_mt_median_s": 0.0002438751980662346,
3600 + "cpu_1t_median_s": 0.0008257082663476467,
3601 + "metal_wins_vs_mt": false,
3602 + "cpu_wins_vs_mt": true
3603 + },
3604 + {
3605 + "kernel": "garch_nll_P64",
3606 + "S": 10,
3607 + "n": 3900,
3608 + "elements": 39000,
3609 + "backend": "metal",
3610 + "threads": 0,
3611 + "median_s": 0.0013822498731315136,
3612 + "ci_lo": 0.0008970410563051701,
3613 + "ci_hi": 0.0033571659587323666,
3614 + "device_s": 0.0006641249638050795,
3615 + "elements_per_s": 28214869.654243305,
3616 + "reps": 5,
3617 + "precision": "fp32",
3618 + "peak_rss_mb": 3431.530496,
3619 + "speedup_vs_cpu_mt": 0.5610419763916696,
3620 + "speedup_vs_cpu_1t": 5.848345499988377,
3621 + "cpu_mt_median_s": 0.000775500200688839,
3622 + "cpu_1t_median_s": 0.008083874825388193,
3623 + "metal_wins_vs_mt": false,
3624 + "cpu_wins_vs_mt": true
3625 + },
3626 + {
3627 + "kernel": "garch_nll_P64",
3628 + "S": 100,
3629 + "n": 390,
3630 + "elements": 39000,
3631 + "backend": "metal",
3632 + "threads": 0,
3633 + "median_s": 0.0005332920700311661,
3634 + "ci_lo": 0.0005230000242590904,
3635 + "ci_hi": 0.0005429168231785297,
3636 + "device_s": 0.00033650000113993883,
3637 + "elements_per_s": 73130658.02332444,
3638 + "reps": 5,
3639 + "precision": "fp32",
3640 + "peak_rss_mb": 2962.440192,
3641 + "speedup_vs_cpu_mt": 1.8859274420294159,
3642 + "speedup_vs_cpu_1t": 15.650977615094181,
3643 + "cpu_mt_median_s": 0.001005750149488449,
3644 + "cpu_1t_median_s": 0.008346542250365019,
3645 + "metal_wins_vs_mt": true,
3646 + "cpu_wins_vs_mt": false
3647 + },
3648 + {
3649 + "kernel": "garch_nll_P64",
3650 + "S": 100,
3651 + "n": 3900,
3652 + "elements": 390000,
3653 + "backend": "metal",
3654 + "threads": 0,
3655 + "median_s": 0.0021704169921576977,
3656 + "ci_lo": 0.0018634586594998837,
3657 + "ci_hi": 0.0022297906689345837,
3658 + "device_s": 0.0010580417001619935,
3659 + "elements_per_s": 179688972.86059555,
3660 + "reps": 5,
3661 + "precision": "fp32",
3662 + "peak_rss_mb": 3431.858176,
3663 + "speedup_vs_cpu_mt": 2.84455693975565,
3664 + "speedup_vs_cpu_1t": 36.920938824506244,
3665 + "cpu_mt_median_s": 0.006173874717205763,
3666 + "cpu_1t_median_s": 0.0801338329911232,
3667 + "metal_wins_vs_mt": true,
3668 + "cpu_wins_vs_mt": false
3669 + },
3670 + {
3671 + "kernel": "garch_nll_P64",
3672 + "S": 1000,
3673 + "n": 390,
3674 + "elements": 390000,
3675 + "backend": "metal",
3676 + "threads": 0,
3677 + "median_s": 0.002336665987968445,
3678 + "ci_lo": 0.002312499564141035,
3679 + "ci_hi": 0.0027117920108139515,
3680 + "device_s": 0.001452916651032865,
3681 + "elements_per_s": 166904470.73228282,
3682 + "reps": 5,
3683 + "precision": "fp32",
3684 + "peak_rss_mb": 3359.932416,
3685 + "speedup_vs_cpu_mt": 3.632133587567199,
3686 + "speedup_vs_cpu_1t": 41.4259215711908,
3687 + "cpu_mt_median_s": 0.00848708301782608,
3688 + "cpu_1t_median_s": 0.09679854195564985,
3689 + "metal_wins_vs_mt": true,
3690 + "cpu_wins_vs_mt": false
3691 + },
3692 + {
3693 + "kernel": "garch_nll_P64",
3694 + "S": 1000,
3695 + "n": 3900,
3696 + "elements": 3900000,
3697 + "backend": "metal",
3698 + "threads": 0,
3699 + "median_s": 0.010272707790136337,
3700 + "ci_lo": 0.009604125283658504,
3701 + "ci_hi": 0.010956583078950644,
3702 + "device_s": 0.0029698750004172325,
3703 + "elements_per_s": 379646737.7125929,
3704 + "reps": 5,
3705 + "precision": "fp32",
3706 + "peak_rss_mb": 2962.440192,
3707 + "speedup_vs_cpu_mt": 7.934195016316967,
3708 + "speedup_vs_cpu_1t": 83.34503273547365,
3709 + "cpu_mt_median_s": 0.08150566695258021,
3710 + "cpu_1t_median_s": 0.8561791670508683,
3711 + "metal_wins_vs_mt": true,
3712 + "cpu_wins_vs_mt": false
3713 + },
3714 + {
3715 + "kernel": "realized_fused",
3716 + "S": 1,
3717 + "n": 390,
3718 + "elements": 390,
3719 + "backend": "metal",
3720 + "threads": 0,
3721 + "median_s": 0.0002344171516597271,
3722 + "ci_lo": 0.00019499985501170158,
3723 + "ci_hi": 0.00025337468832731247,
3724 + "device_s": 3.199989441782236e-05,
3725 + "elements_per_s": 1663700.7882687368,
3726 + "reps": 5,
3727 + "precision": "fp32",
3728 + "peak_rss_mb": 3432.742912,
3729 + "speedup_vs_cpu_mt": 0.006398401293585508,
3730 + "speedup_vs_cpu_1t": 0.006398401293585508,
3731 + "cpu_mt_median_s": 1.4998950064182281e-06,
3732 + "cpu_1t_median_s": 1.4998950064182281e-06,
3733 + "metal_wins_vs_mt": false,
3734 + "cpu_wins_vs_mt": true
3735 + },
3736 + {
3737 + "kernel": "realized_fused",
3738 + "S": 1,
3739 + "n": 3900,
3740 + "elements": 3900,
3741 + "backend": "metal",
3742 + "threads": 0,
3743 + "median_s": 0.0006333747878670692,
3744 + "ci_lo": 0.0001420830376446247,
3745 + "ci_hi": 0.000777125358581543,
3746 + "device_s": 2.037500962615013e-05,
3747 + "elements_per_s": 6157491.7011356,
3748 + "reps": 5,
3749 + "precision": "fp32",
3750 + "peak_rss_mb": 2913.878016,
3751 + "speedup_vs_cpu_mt": 0.017629517660396336,
3752 + "speedup_vs_cpu_1t": 0.018353696103846455,
3753 + "cpu_mt_median_s": 1.116609200835228e-05,
3754 + "cpu_1t_median_s": 1.1624768376350403e-05,
3755 + "metal_wins_vs_mt": false,
3756 + "cpu_wins_vs_mt": true
3757 + },
3758 + {
3759 + "kernel": "realized_fused",
3760 + "S": 1,
3761 + "n": 39000,
3762 + "elements": 39000,
3763 + "backend": "metal",
3764 + "threads": 0,
3765 + "median_s": 0.000206624623388052,
3766 + "ci_lo": 0.0001971670426428318,
3767 + "ci_hi": 0.00024229194968938828,
3768 + "device_s": 4.3874955736100674e-05,
3769 + "elements_per_s": 188748075.42543435,
3770 + "reps": 5,
3771 + "precision": "fp32",
3772 + "peak_rss_mb": 3355.901952,
3773 + "speedup_vs_cpu_mt": 0.8090362681222294,
3774 + "speedup_vs_cpu_1t": 0.8836458781717422,
3775 + "cpu_mt_median_s": 0.0001671668142080307,
3776 + "cpu_1t_median_s": 0.00018258299678564072,
3777 + "metal_wins_vs_mt": false,
3778 + "cpu_wins_vs_mt": true
3779 + },
3780 + {
3781 + "kernel": "realized_fused",
3782 + "S": 1,
3783 + "n": 390000,
3784 + "elements": 390000,
3785 + "backend": "metal",
3786 + "threads": 0,
3787 + "median_s": 0.0009353337809443474,
3788 + "ci_lo": 0.00017445813864469528,
3789 + "ci_hi": 0.0009425836615264416,
3790 + "device_s": 1.2583332136273384e-05,
3791 + "elements_per_s": 416963449.78178984,
3792 + "reps": 5,
3793 + "precision": "fp32",
3794 + "peak_rss_mb": 781.1072,
3795 + "speedup_vs_cpu_mt": 2.2300860195139536,
3796 + "speedup_vs_cpu_1t": 2.1728878719355733,
3797 + "cpu_mt_median_s": 0.0020858747884631157,
3798 + "cpu_1t_median_s": 0.002032375428825617,
3799 + "metal_wins_vs_mt": true,
3800 + "cpu_wins_vs_mt": false
3801 + },
3802 + {
3803 + "kernel": "realized_fused",
3804 + "S": 10,
3805 + "n": 390,
3806 + "elements": 3900,
3807 + "backend": "metal",
3808 + "threads": 0,
3809 + "median_s": 0.0002327919937670231,
3810 + "ci_lo": 0.00019591627642512321,
3811 + "ci_hi": 0.0002467092126607895,
3812 + "device_s": 3.124994691461325e-05,
3813 + "elements_per_s": 16753153.477877328,
3814 + "reps": 5,
3815 + "precision": "fp32",
3816 + "peak_rss_mb": 3255.451648,
3817 + "speedup_vs_cpu_mt": 0.6099872578848089,
3818 + "speedup_vs_cpu_1t": 0.04850805233668789,
3819 + "cpu_mt_median_s": 0.00014200014993548393,
3820 + "cpu_1t_median_s": 1.1292286217212677e-05,
3821 + "metal_wins_vs_mt": false,
3822 + "cpu_wins_vs_mt": true
3823 + },
3824 + {
3825 + "kernel": "realized_fused",
3826 + "S": 10,
3827 + "n": 3900,
3828 + "elements": 39000,
3829 + "backend": "metal",
3830 + "threads": 0,
3831 + "median_s": 0.00016404176130890846,
3832 + "ci_lo": 0.00015954114496707916,
3833 + "ci_hi": 0.0009339582175016403,
3834 + "device_s": 1.6249949112534523e-05,
3835 + "elements_per_s": 237744338.32467064,
3836 + "reps": 5,
3837 + "precision": "fp32",
3838 + "peak_rss_mb": 3222.339584,
3839 + "speedup_vs_cpu_mt": 0.8229631795433707,
3840 + "speedup_vs_cpu_1t": 1.145538879915521,
3841 + "cpu_mt_median_s": 0.000135000329464674,
3842 + "cpu_1t_median_s": 0.00018791621550917625,
3843 + "metal_wins_vs_mt": false,
3844 + "cpu_wins_vs_mt": true
3845 + },
3846 + {
3847 + "kernel": "realized_fused",
3848 + "S": 10,
3849 + "n": 39000,
3850 + "elements": 390000,
3851 + "backend": "metal",
3852 + "threads": 0,
3853 + "median_s": 0.0007184999994933605,
3854 + "ci_lo": 0.000268666073679924,
3855 + "ci_hi": 0.0007987502031028271,
3856 + "device_s": 5.52500132471323e-05,
3857 + "elements_per_s": 542797495.1635388,
3858 + "reps": 5,
3859 + "precision": "fp32",
3860 + "peak_rss_mb": 3355.901952,
3861 + "speedup_vs_cpu_mt": 0.5059149029110798,
3862 + "speedup_vs_cpu_1t": 3.5805503293330316,
3863 + "cpu_mt_median_s": 0.00036349985748529434,
3864 + "cpu_1t_median_s": 0.002572625409811735,
3865 + "metal_wins_vs_mt": false,
3866 + "cpu_wins_vs_mt": false
3867 + },
3868 + {
3869 + "kernel": "realized_fused",
3870 + "S": 10,
3871 + "n": 390000,
3872 + "elements": 3900000,
3873 + "backend": "metal",
3874 + "threads": 0,
3875 + "median_s": 0.0010219174437224865,
3876 + "ci_lo": 0.001003749668598175,
3877 + "ci_hi": 0.0010474580340087414,
3878 + "device_s": 8.649996016174555e-05,
3879 + "elements_per_s": 3816355248.6134977,
3880 + "reps": 5,
3881 + "precision": "fp32",
3882 + "peak_rss_mb": 3222.339584,
3883 + "speedup_vs_cpu_mt": 2.4725987229278337,
3884 + "speedup_vs_cpu_1t": 20.444125928265052,
3885 + "cpu_mt_median_s": 0.0025267917662858963,
3886 + "cpu_1t_median_s": 0.02089220890775323,
3887 + "metal_wins_vs_mt": true,
3888 + "cpu_wins_vs_mt": false
3889 + },
3890 + {
3891 + "kernel": "realized_fused",
3892 + "S": 100,
3893 + "n": 390,
3894 + "elements": 39000,
3895 + "backend": "metal",
3896 + "threads": 0,
3897 + "median_s": 0.00022633420303463936,
3898 + "ci_lo": 0.00017816666513681412,
3899 + "ci_hi": 0.00027566729113459587,
3900 + "device_s": 3.15000070258975e-05,
3901 + "elements_per_s": 172311561.73966,
3902 + "reps": 5,
3903 + "precision": "fp32",
3904 + "peak_rss_mb": 3368.943616,
3905 + "speedup_vs_cpu_mt": 2.4392376077309077,
3906 + "speedup_vs_cpu_1t": 0.8267643797230321,
3907 + "cpu_mt_median_s": 0.0005520828999578953,
3908 + "cpu_1t_median_s": 0.0001871250569820404,
3909 + "metal_wins_vs_mt": true,
3910 + "cpu_wins_vs_mt": false
3911 + },
3912 + {
3913 + "kernel": "realized_fused",
3914 + "S": 100,
3915 + "n": 3900,
3916 + "elements": 390000,
3917 + "backend": "metal",
3918 + "threads": 0,
3919 + "median_s": 0.0006413329392671585,
3920 + "ci_lo": 0.000292791984975338,
3921 + "ci_hi": 0.0008833748288452625,
3922 + "device_s": 5.287490785121918e-05,
3923 + "elements_per_s": 608108481.7593294,
3924 + "reps": 5,
3925 + "precision": "fp32",
3926 + "peak_rss_mb": 490.962944,
3927 + "speedup_vs_cpu_mt": 0.9380200573315559,
3928 + "speedup_vs_cpu_1t": 3.1862033963283407,
3929 + "cpu_mt_median_s": 0.0006015831604599953,
3930 + "cpu_1t_median_s": 0.002043417189270258,
3931 + "metal_wins_vs_mt": false,
3932 + "cpu_wins_vs_mt": false
3933 + },
3934 + {
3935 + "kernel": "realized_fused",
3936 + "S": 100,
3937 + "n": 39000,
3938 + "elements": 3900000,
3939 + "backend": "metal",
3940 + "threads": 0,
3941 + "median_s": 0.0011692089028656483,
3942 + "ci_lo": 0.0008370000869035721,
3943 + "ci_hi": 0.0011960407719016075,
3944 + "device_s": 0.000259208376519382,
3945 + "elements_per_s": 3335588696.289753,
3946 + "reps": 5,
3947 + "precision": "fp32",
3948 + "peak_rss_mb": 3360.096256,
3949 + "speedup_vs_cpu_mt": 1.8734535658542084,
3950 + "speedup_vs_cpu_1t": 17.61073211258148,
3951 + "cpu_mt_median_s": 0.0021904585883021355,
3952 + "cpu_1t_median_s": 0.020590624772012234,
3953 + "metal_wins_vs_mt": true,
3954 + "cpu_wins_vs_mt": false
3955 + },
3956 + {
3957 + "kernel": "realized_fused",
3958 + "S": 100,
3959 + "n": 390000,
3960 + "elements": 39000000,
3961 + "backend": "metal",
3962 + "threads": 0,
3963 + "median_s": 0.008720249868929386,
3964 + "ci_lo": 0.007397250272333622,
3965 + "ci_hi": 0.008947291877120733,
3966 + "device_s": 0.0021910000359639525,
3967 + "elements_per_s": 4472348910.43187,
3968 + "reps": 5,
3969 + "precision": "fp32",
3970 + "peak_rss_mb": 486.178816,
3971 + "speedup_vs_cpu_mt": 2.1550509398559075,
3972 + "speedup_vs_cpu_1t": 26.67203779822428,
3973 + "cpu_mt_median_s": 0.01879258267581463,
3974 + "cpu_1t_median_s": 0.2325868341140449,
3975 + "metal_wins_vs_mt": true,
3976 + "cpu_wins_vs_mt": false
3977 + },
3978 + {
3979 + "kernel": "realized_fused",
3980 + "S": 1000,
3981 + "n": 390,
3982 + "elements": 390000,
3983 + "backend": "metal",
3984 + "threads": 0,
3985 + "median_s": 0.00033845799043774605,
3986 + "ci_lo": 0.00033012498170137405,
3987 + "ci_hi": 0.00035137496888637543,
3988 + "device_s": 0.00013987498823553324,
3989 + "elements_per_s": 1152284806.4410944,
3990 + "reps": 5,
3991 + "precision": "fp32",
3992 + "peak_rss_mb": 3431.87456,
3993 + "speedup_vs_cpu_mt": 2.4815989367571367,
3994 + "speedup_vs_cpu_1t": 6.605815916448483,
3995 + "cpu_mt_median_s": 0.0008399169892072678,
3996 + "cpu_1t_median_s": 0.002235791180282831,
3997 + "metal_wins_vs_mt": true,
3998 + "cpu_wins_vs_mt": false
3999 + },
4000 + {
4001 + "kernel": "realized_fused",
4002 + "S": 1000,
4003 + "n": 3900,
4004 + "elements": 3900000,
4005 + "backend": "metal",
4006 + "threads": 0,
4007 + "median_s": 0.0008750832639634609,
4008 + "ci_lo": 0.0008294158615171909,
4009 + "ci_hi": 0.0015468327328562737,
4010 + "device_s": 0.0002547500189393759,
4011 + "elements_per_s": 4456718761.065055,
4012 + "reps": 5,
4013 + "precision": "fp32",
4014 + "peak_rss_mb": 3432.742912,
4015 + "speedup_vs_cpu_mt": 1.9909537272506195,
4016 + "speedup_vs_cpu_1t": 24.27716502583243,
4017 + "cpu_mt_median_s": 0.0017422502860426903,
4018 + "cpu_1t_median_s": 0.021244540810585022,
4019 + "metal_wins_vs_mt": true,
4020 + "cpu_wins_vs_mt": false
4021 + },
4022 + {
4023 + "kernel": "realized_fused",
4024 + "S": 1000,
4025 + "n": 39000,
4026 + "elements": 39000000,
4027 + "backend": "metal",
4028 + "threads": 0,
4029 + "median_s": 0.005891874898225069,
4030 + "ci_lo": 0.005617166869342327,
4031 + "ci_hi": 0.00844891695305705,
4032 + "device_s": 0.0009469999931752682,
4033 + "elements_per_s": 6619285146.693929,
4034 + "reps": 5,
4035 + "precision": "fp32",
4036 + "peak_rss_mb": 3369.04192,
4037 + "speedup_vs_cpu_mt": 3.4364769430726474,
4038 + "speedup_vs_cpu_1t": 40.52558334364075,
4039 + "cpu_mt_median_s": 0.02024729223921895,
4040 + "cpu_1t_median_s": 0.23877166723832488,
4041 + "metal_wins_vs_mt": true,
4042 + "cpu_wins_vs_mt": false
4043 + },
4044 + {
4045 + "kernel": "realized_fused",
4046 + "S": 10000,
4047 + "n": 390,
4048 + "elements": 3900000,
4049 + "backend": "metal",
4050 + "threads": 0,
4051 + "median_s": 0.0022132499143481255,
4052 + "ci_lo": 0.0018930002115666866,
4053 + "ci_hi": 0.0032122922129929066,
4054 + "device_s": 0.001203041640110314,
4055 + "elements_per_s": 1762114605.6380522,
4056 + "reps": 5,
4057 + "precision": "fp32",
4058 + "peak_rss_mb": 3431.87456,
4059 + "speedup_vs_cpu_mt": 0.9605408719443508,
4060 + "speedup_vs_cpu_1t": 9.595994502745471,
4061 + "cpu_mt_median_s": 0.002125917002558708,
4062 + "cpu_1t_median_s": 0.021238334011286497,
4063 + "metal_wins_vs_mt": false,
4064 + "cpu_wins_vs_mt": false
4065 + },
4066 + {
4067 + "kernel": "realized_fused",
4068 + "S": 10000,
4069 + "n": 3900,
4070 + "elements": 39000000,
4071 + "backend": "metal",
4072 + "threads": 0,
4073 + "median_s": 0.0078027499839663506,
4074 + "ci_lo": 0.006132957991212606,
4075 + "ci_hi": 0.008690916933119297,
4076 + "device_s": 0.0019207500154152513,
4077 + "elements_per_s": 4998237811.046104,
4078 + "reps": 5,
4079 + "precision": "fp32",
4080 + "peak_rss_mb": 577.1264,
4081 + "speedup_vs_cpu_mt": 2.0113315140749037,
4082 + "speedup_vs_cpu_1t": 29.947449069536802,
4083 + "cpu_mt_median_s": 0.01569391693919897,
4084 + "cpu_1t_median_s": 0.2336724577471614,
4085 + "metal_wins_vs_mt": true,
4086 + "cpu_wins_vs_mt": false
4087 + },
4088 + {
4089 + "kernel": "regression_stats",
4090 + "S": 1,
4091 + "n": 390,
4092 + "elements": 390,
4093 + "backend": "metal",
4094 + "threads": 0,
4095 + "median_s": 0.000894167460501194,
4096 + "ci_lo": 0.00017508305609226227,
4097 + "ci_hi": 0.000988542102277279,
4098 + "device_s": 7.087492849677801e-05,
4099 + "elements_per_s": 436159.91100973333,
4100 + "reps": 5,
4101 + "precision": "fp32",
4102 + "peak_rss_mb": 3368.910848,
4103 + "speedup_vs_cpu_mt": 0.003588669989219929,
4104 + "speedup_vs_cpu_1t": 0.003541800115612355,
4105 + "cpu_mt_median_s": 3.2088719308376312e-06,
4106 + "cpu_1t_median_s": 3.1669624149799347e-06,
4107 + "metal_wins_vs_mt": false,
4108 + "cpu_wins_vs_mt": true
4109 + },
4110 + {
4111 + "kernel": "regression_stats",
4112 + "S": 1,
4113 + "n": 3900,
4114 + "elements": 3900,
4115 + "backend": "metal",
4116 + "threads": 0,
4117 + "median_s": 0.0003482499159872532,
4118 + "ci_lo": 0.0003069578669965267,
4119 + "ci_hi": 0.0003833337686955929,
4120 + "device_s": 0.00019212497863918543,
4121 + "elements_per_s": 11198854.101497471,
4122 + "reps": 5,
4123 + "precision": "fp32",
4124 + "peak_rss_mb": 2962.440192,
4125 + "speedup_vs_cpu_mt": 0.0867420550075482,
4126 + "speedup_vs_cpu_1t": 0.08602668142876818,
4127 + "cpu_mt_median_s": 3.0207913368940353e-05,
4128 + "cpu_1t_median_s": 2.9958784580230713e-05,
4129 + "metal_wins_vs_mt": false,
4130 + "cpu_wins_vs_mt": true
4131 + },
4132 + {
4133 + "kernel": "regression_stats",
4134 + "S": 1,
4135 + "n": 39000,
4136 + "elements": 39000,
4137 + "backend": "metal",
4138 + "threads": 0,
4139 + "median_s": 0.0004085828550159931,
4140 + "ci_lo": 0.0003508748486638069,
4141 + "ci_hi": 0.00041229184716939926,
4142 + "device_s": 0.00018866662867367268,
4143 + "elements_per_s": 95451875.96888623,
4144 + "reps": 5,
4145 + "precision": "fp32",
4146 + "peak_rss_mb": 3359.932416,
4147 + "speedup_vs_cpu_mt": 0.9395287346496851,
4148 + "speedup_vs_cpu_1t": 0.7399549819072855,
4149 + "cpu_mt_median_s": 0.0003838753327727318,
4150 + "cpu_1t_median_s": 0.00030233291909098625,
4151 + "metal_wins_vs_mt": false,
4152 + "cpu_wins_vs_mt": false
4153 + },
4154 + {
4155 + "kernel": "regression_stats",
4156 + "S": 1,
4157 + "n": 390000,
4158 + "elements": 390000,
4159 + "backend": "metal",
4160 + "threads": 0,
4161 + "median_s": 0.0007901252247393131,
4162 + "ci_lo": 0.0007615000940859318,
4163 + "ci_hi": 0.0008232500404119492,
4164 + "device_s": 9.650003630667925e-05,
4165 + "elements_per_s": 493592645.5564979,
4166 + "reps": 5,
4167 + "precision": "fp32",
4168 + "peak_rss_mb": 2920.12032,
4169 + "speedup_vs_cpu_mt": 3.851129874745179,
4170 + "speedup_vs_cpu_1t": 3.7631692009752586,
4171 + "cpu_mt_median_s": 0.0030428748577833176,
4172 + "cpu_1t_median_s": 0.0029733749106526375,
4173 + "metal_wins_vs_mt": true,
4174 + "cpu_wins_vs_mt": false
4175 + },
4176 + {
4177 + "kernel": "regression_stats",
4178 + "S": 10,
4179 + "n": 390,
4180 + "elements": 3900,
4181 + "backend": "metal",
4182 + "threads": 0,
4183 + "median_s": 0.0006523327901959419,
4184 + "ci_lo": 0.0003105420619249344,
4185 + "ci_hi": 0.0007279999554157257,
4186 + "device_s": 9.250000584870577e-05,
4187 + "elements_per_s": 5978543.557236411,
4188 + "reps": 5,
4189 + "precision": "fp32",
4190 + "peak_rss_mb": 2962.440192,
4191 + "speedup_vs_cpu_mt": 0.06336187265949686,
4192 + "speedup_vs_cpu_1t": 0.04790509353446491,
4193 + "cpu_mt_median_s": 4.133302718400955e-05,
4194 + "cpu_1t_median_s": 3.1250063329935074e-05,
4195 + "metal_wins_vs_mt": false,
4196 + "cpu_wins_vs_mt": true
4197 + },
4198 + {
4199 + "kernel": "regression_stats",
4200 + "S": 10,
4201 + "n": 3900,
4202 + "elements": 39000,
4203 + "backend": "metal",
4204 + "threads": 0,
4205 + "median_s": 0.00036174990236759186,
4206 + "ci_lo": 0.0003430834040045738,
4207 + "ci_hi": 0.0005066245794296265,
4208 + "device_s": 0.00018737500067800283,
4209 + "elements_per_s": 107809289.63560627,
4210 + "reps": 5,
4211 + "precision": "fp32",
4212 + "peak_rss_mb": 3431.514112,
4213 + "speedup_vs_cpu_mt": 0.2107814615911396,
4214 + "speedup_vs_cpu_1t": 0.8286108550920896,
4215 + "cpu_mt_median_s": 7.625017315149307e-05,
4216 + "cpu_1t_median_s": 0.0002997498959302902,
4217 + "metal_wins_vs_mt": false,
4218 + "cpu_wins_vs_mt": true
4219 + },
4220 + {
4221 + "kernel": "regression_stats",
4222 + "S": 10,
4223 + "n": 39000,
4224 + "elements": 390000,
4225 + "backend": "metal",
4226 + "threads": 0,
4227 + "median_s": 0.0006961673498153687,
4228 + "ci_lo": 0.0006541251204907894,
4229 + "ci_hi": 0.0008656666614115238,
4230 + "device_s": 0.0002501250710338354,
4231 + "elements_per_s": 560210127.7852694,
4232 + "reps": 5,
4233 + "precision": "fp32",
4234 + "peak_rss_mb": 576.421888,
4235 + "speedup_vs_cpu_mt": 0.8078766133692931,
4236 + "speedup_vs_cpu_1t": 4.429491347203493,
4237 + "cpu_mt_median_s": 0.0005624173209071159,
4238 + "cpu_1t_median_s": 0.003083667252212763,
4239 + "metal_wins_vs_mt": false,
4240 + "cpu_wins_vs_mt": true
4241 + },
4242 + {
4243 + "kernel": "regression_stats",
4244 + "S": 10,
4245 + "n": 390000,
4246 + "elements": 3900000,
4247 + "backend": "metal",
4248 + "threads": 0,
4249 + "median_s": 0.004117042291909456,
4250 + "ci_lo": 0.002989500295370817,
4251 + "ci_hi": 0.004763709381222725,
4252 + "device_s": 0.000529208336956799,
4253 + "elements_per_s": 947281986.3094499,
4254 + "reps": 5,
4255 + "precision": "fp32",
4256 + "peak_rss_mb": 2962.440192,
4257 + "speedup_vs_cpu_mt": 1.6164011753500427,
4258 + "speedup_vs_cpu_1t": 7.9335070336527025,
4259 + "cpu_mt_median_s": 0.006654791999608278,
4260 + "cpu_1t_median_s": 0.032662583980709314,
4261 + "metal_wins_vs_mt": true,
4262 + "cpu_wins_vs_mt": false
4263 + },
4264 + {
4265 + "kernel": "regression_stats",
4266 + "S": 100,
4267 + "n": 390,
4268 + "elements": 39000,
4269 + "backend": "metal",
4270 + "threads": 0,
4271 + "median_s": 0.0003363746218383312,
4272 + "ci_lo": 0.00026350002735853195,
4273 + "ci_hi": 0.0005579171702265739,
4274 + "device_s": 0.00019220833200961351,
4275 + "elements_per_s": 115942159.33074829,
4276 + "reps": 5,
4277 + "precision": "fp32",
4278 + "peak_rss_mb": 3255.451648,
4279 + "speedup_vs_cpu_mt": 0.5239693836444206,
4280 + "speedup_vs_cpu_1t": 1.0743231551070866,
4281 + "cpu_mt_median_s": 0.00017625000327825546,
4282 + "cpu_1t_median_s": 0.00036137504503130913,
4283 + "metal_wins_vs_mt": false,
4284 + "cpu_wins_vs_mt": true
4285 + },
4286 + {
4287 + "kernel": "regression_stats",
4288 + "S": 100,
4289 + "n": 3900,
4290 + "elements": 390000,
4291 + "backend": "metal",
4292 + "threads": 0,
4293 + "median_s": 0.0005946666933596134,
4294 + "ci_lo": 0.0005814996547996998,
4295 + "ci_hi": 0.0005976245738565922,
4296 + "device_s": 0.00023925001733005047,
4297 + "elements_per_s": 655829566.9741753,
4298 + "reps": 5,
4299 + "precision": "fp32",
4300 + "peak_rss_mb": 2962.440192,
4301 + "speedup_vs_cpu_mt": 0.739769482011876,
4302 + "speedup_vs_cpu_1t": 5.041970592864576,
4303 + "cpu_mt_median_s": 0.0004399162717163563,
4304 + "cpu_1t_median_s": 0.0029982919804751873,
4305 + "metal_wins_vs_mt": false,
4306 + "cpu_wins_vs_mt": true
4307 + },
4308 + {
4309 + "kernel": "regression_stats",
4310 + "S": 100,
4311 + "n": 39000,
4312 + "elements": 3900000,
4313 + "backend": "metal",
4314 + "threads": 0,
4315 + "median_s": 0.0044694580137729645,
4316 + "ci_lo": 0.0031338329426944256,
4317 + "ci_hi": 0.004542499780654907,
4318 + "device_s": 0.0016885417280718684,
4319 + "elements_per_s": 872589022.6470106,
4320 + "reps": 5,
4321 + "precision": "fp32",
4322 + "peak_rss_mb": 3431.46496,
4323 + "speedup_vs_cpu_mt": 0.7100881967325159,
4324 + "speedup_vs_cpu_1t": 7.202327484390641,
4325 + "cpu_mt_median_s": 0.0031737093813717365,
4326 + "cpu_1t_median_s": 0.03219050029292703,
4327 + "metal_wins_vs_mt": false,
4328 + "cpu_wins_vs_mt": false
4329 + },
4330 + {
4331 + "kernel": "regression_stats",
4332 + "S": 100,
4333 + "n": 390000,
4334 + "elements": 39000000,
4335 + "backend": "metal",
4336 + "threads": 0,
4337 + "median_s": 0.03070899983868003,
4338 + "ci_lo": 0.027952750213444233,
4339 + "ci_hi": 0.031758958008140326,
4340 + "device_s": 0.005229625036008656,
4341 + "elements_per_s": 1269986004.2617507,
4342 + "reps": 5,
4343 + "precision": "fp32",
4344 + "peak_rss_mb": 2913.845248,
4345 + "speedup_vs_cpu_mt": 1.0993601156685116,
4346 + "speedup_vs_cpu_1t": 9.813711025090953,
4347 + "cpu_mt_median_s": 0.033760249614715576,
4348 + "cpu_1t_median_s": 0.3013692502863705,
4349 + "metal_wins_vs_mt": true,
4350 + "cpu_wins_vs_mt": false
4351 + },
4352 + {
4353 + "kernel": "regression_stats",
4354 + "S": 1000,
4355 + "n": 390,
4356 + "elements": 390000,
4357 + "backend": "metal",
4358 + "threads": 0,
4359 + "median_s": 0.0005814996547996998,
4360 + "ci_lo": 0.0005787923000752926,
4361 + "ci_hi": 0.0009665000252425671,
4362 + "device_s": 0.00020362494979053736,
4363 + "elements_per_s": 670679675.870723,
4364 + "reps": 5,
4365 + "precision": "fp32",
4366 + "peak_rss_mb": 3431.858176,
4367 + "speedup_vs_cpu_mt": 1.1988402904959397,
4368 + "speedup_vs_cpu_1t": 5.367372139264439,
4369 + "cpu_mt_median_s": 0.0006971252150833607,
4370 + "cpu_1t_median_s": 0.0031211250461637974,
4371 + "metal_wins_vs_mt": false,
4372 + "cpu_wins_vs_mt": false
4373 + },
4374 + {
4375 + "kernel": "regression_stats",
4376 + "S": 1000,
4377 + "n": 3900,
4378 + "elements": 3900000,
4379 + "backend": "metal",
4380 + "threads": 0,
4381 + "median_s": 0.003796167206019163,
4382 + "ci_lo": 0.0033167502842843533,
4383 + "ci_hi": 0.004350459203124046,
4384 + "device_s": 0.000579125015065074,
4385 + "elements_per_s": 1027352007.5238521,
4386 + "reps": 5,
4387 + "precision": "fp32",
4388 + "peak_rss_mb": 781.1072,
4389 + "speedup_vs_cpu_mt": 0.9013804482638873,
4390 + "speedup_vs_cpu_1t": 9.060761582722323,
4391 + "cpu_mt_median_s": 0.003421790897846222,
4392 + "cpu_1t_median_s": 0.03439616598188877,
4393 + "metal_wins_vs_mt": false,
4394 + "cpu_wins_vs_mt": false
4395 + },
4396 + {
4397 + "kernel": "regression_stats",
4398 + "S": 1000,
4399 + "n": 39000,
4400 + "elements": 39000000,
4401 + "backend": "metal",
4402 + "threads": 0,
4403 + "median_s": 0.026743208058178425,
4404 + "ci_lo": 0.025766875129193068,
4405 + "ci_hi": 0.02711204206570983,
4406 + "device_s": 0.004475083318538964,
4407 + "elements_per_s": 1458314197.5771036,
4408 + "reps": 5,
4409 + "precision": "fp32",
4410 + "peak_rss_mb": 3360.11264,
4411 + "speedup_vs_cpu_mt": 1.1681813469411308,
4412 + "speedup_vs_cpu_1t": 12.11658580559542,
4413 + "cpu_mt_median_s": 0.031240916810929775,
4414 + "cpu_1t_median_s": 0.3240363751538098,
4415 + "metal_wins_vs_mt": true,
4416 + "cpu_wins_vs_mt": false
4417 + },
4418 + {
4419 + "kernel": "regression_stats",
4420 + "S": 10000,
4421 + "n": 390,
4422 + "elements": 3900000,
4423 + "backend": "metal",
4424 + "threads": 0,
4425 + "median_s": 0.004190749954432249,
4426 + "ci_lo": 0.00392800010740757,
4427 + "ci_hi": 0.005979666020721197,
4428 + "device_s": 0.0011161250295117497,
4429 + "elements_per_s": 930621020.6779948,
4430 + "reps": 5,
4431 + "precision": "fp32",
4432 + "peak_rss_mb": 3432.742912,
4433 + "speedup_vs_cpu_mt": 0.944759231194123,
4434 + "speedup_vs_cpu_1t": 7.312414252819052,
4435 + "cpu_mt_median_s": 0.003959249705076218,
4436 + "cpu_1t_median_s": 0.030644499696791172,
4437 + "metal_wins_vs_mt": false,
4438 + "cpu_wins_vs_mt": false
4439 + },
4440 + {
4441 + "kernel": "regression_stats",
4442 + "S": 10000,
4443 + "n": 3900,
4444 + "elements": 39000000,
4445 + "backend": "metal",
4446 + "threads": 0,
4447 + "median_s": 0.026574499905109406,
4448 + "ci_lo": 0.026411292143166065,
4449 + "ci_hi": 0.026990290731191635,
4450 + "device_s": 0.004499250091612339,
4451 + "elements_per_s": 1467572301.9909616,
4452 + "reps": 5,
4453 + "precision": "fp32",
4454 + "peak_rss_mb": 3221.83168,
4455 + "speedup_vs_cpu_mt": 1.4107556096287706,
4456 + "speedup_vs_cpu_1t": 13.430701182218417,
4457 + "cpu_mt_median_s": 0.03749012481421232,
4458 + "cpu_1t_median_s": 0.3569141672924161,
4459 + "metal_wins_vs_mt": true,
4460 + "cpu_wins_vs_mt": false
4461 + },
4462 + {
4463 + "kernel": "rolling_sumsq",
4464 + "S": 1,
4465 + "n": 390,
4466 + "elements": 390,
4467 + "backend": "metal",
4468 + "threads": 0,
4469 + "median_s": 0.0002839169465005398,
4470 + "ci_lo": 0.0001594587229192257,
4471 + "ci_hi": 0.0008917916566133499,
4472 + "device_s": 1.8750084564089775e-05,
4473 + "elements_per_s": 1373641.146845944,
4474 + "reps": 5,
4475 + "precision": "fp32",
4476 + "peak_rss_mb": 3253.567488,
4477 + "speedup_vs_cpu_mt": 0.0027898646399008046,
4478 + "speedup_vs_cpu_1t": 0.003373751654483219,
4479 + "cpu_mt_median_s": 7.920898497104645e-07,
4480 + "cpu_1t_median_s": 9.578652679920197e-07,
4481 + "metal_wins_vs_mt": false,
4482 + "cpu_wins_vs_mt": true
4483 + },
4484 + {
4485 + "kernel": "rolling_sumsq",
4486 + "S": 1,
4487 + "n": 3900,
4488 + "elements": 3900,
4489 + "backend": "metal",
4490 + "threads": 0,
4491 + "median_s": 0.0002416251227259636,
4492 + "ci_lo": 0.0001499168574810028,
4493 + "ci_hi": 0.0002560419961810112,
4494 + "device_s": 4.958361387252808e-06,
4495 + "elements_per_s": 16140705.718018986,
4496 + "reps": 5,
4497 + "precision": "fp32",
4498 + "peak_rss_mb": 2962.440192,
4499 + "speedup_vs_cpu_mt": 0.031039573239594054,
4500 + "speedup_vs_cpu_1t": 0.031039573239594054,
4501 + "cpu_mt_median_s": 7.4999406933784485e-06,
4502 + "cpu_1t_median_s": 7.4999406933784485e-06,
4503 + "metal_wins_vs_mt": false,
4504 + "cpu_wins_vs_mt": true
4505 + },
4506 + {
4507 + "kernel": "rolling_sumsq",
4508 + "S": 1,
4509 + "n": 39000,
4510 + "elements": 39000,
4511 + "backend": "metal",
4512 + "threads": 0,
4513 + "median_s": 0.00016458332538604736,
4514 + "ci_lo": 0.00015858327969908714,
4515 + "ci_hi": 0.00017341692000627518,
4516 + "device_s": 1.9583385437726974e-05,
4517 + "elements_per_s": 236962036.75871435,
4518 + "reps": 5,
4519 + "precision": "fp32",
4520 + "peak_rss_mb": 2962.440192,
4521 + "speedup_vs_cpu_mt": 0.42683623811679494,
4522 + "speedup_vs_cpu_1t": 0.4212624490719783,
4523 + "cpu_mt_median_s": 7.025012746453285e-05,
4524 + "cpu_1t_median_s": 6.93327747285366e-05,
4525 + "metal_wins_vs_mt": false,
4526 + "cpu_wins_vs_mt": true
4527 + },
4528 + {
4529 + "kernel": "rolling_sumsq",
4530 + "S": 1,
4531 + "n": 390000,
4532 + "elements": 390000,
4533 + "backend": "metal",
4534 + "threads": 0,
4535 + "median_s": 0.0007903752848505974,
4536 + "ci_lo": 0.000574291218072176,
4537 + "ci_hi": 0.0009351670742034912,
4538 + "device_s": 6.225006654858589e-05,
4539 + "elements_per_s": 493436481.97921664,
4540 + "reps": 5,
4541 + "precision": "fp32",
4542 + "peak_rss_mb": 2962.440192,
4543 + "speedup_vs_cpu_mt": 0.909589128259996,
4544 + "speedup_vs_cpu_1t": 0.8747948233625048,
4545 + "cpu_mt_median_s": 0.000718916766345501,
4546 + "cpu_1t_median_s": 0.0006914162077009678,
4547 + "metal_wins_vs_mt": false,
4548 + "cpu_wins_vs_mt": false
4549 + },
4550 + {
4551 + "kernel": "rolling_sumsq",
4552 + "S": 10,
4553 + "n": 390,
4554 + "elements": 3900,
4555 + "backend": "metal",
4556 + "threads": 0,
4557 + "median_s": 0.0002032076008617878,
4558 + "ci_lo": 0.00014958297833800316,
4559 + "ci_hi": 0.0006746253930032253,
4560 + "device_s": 1.4499993994832039e-05,
4561 + "elements_per_s": 19192195.486095995,
4562 + "reps": 5,
4563 + "precision": "fp32",
4564 + "peak_rss_mb": 17.170432,
4565 + "speedup_vs_cpu_mt": 0.08858003826895974,
4566 + "speedup_vs_cpu_1t": 0.03526473183083745,
4567 + "cpu_mt_median_s": 1.800013706088066e-05,
4568 + "cpu_1t_median_s": 7.1660615503787994e-06,
4569 + "metal_wins_vs_mt": false,
4570 + "cpu_wins_vs_mt": true
4571 + },
4572 + {
4573 + "kernel": "rolling_sumsq",
4574 + "S": 10,
4575 + "n": 3900,
4576 + "elements": 39000,
4577 + "backend": "metal",
4578 + "threads": 0,
4579 + "median_s": 0.00016070762649178505,
4580 + "ci_lo": 0.00014404207468032837,
4581 + "ci_hi": 0.00017450004816055298,
4582 + "device_s": 1.9625062122941017e-05,
4583 + "elements_per_s": 242676722.01601195,
4584 + "reps": 5,
4585 + "precision": "fp32",
4586 + "peak_rss_mb": 2962.440192,
4587 + "speedup_vs_cpu_mt": 0.2792328398774908,
4588 + "speedup_vs_cpu_1t": 0.4311610265504162,
4589 + "cpu_mt_median_s": 4.487484693527222e-05,
4590 + "cpu_1t_median_s": 6.929086521267891e-05,
4591 + "metal_wins_vs_mt": false,
4592 + "cpu_wins_vs_mt": true
4593 + },
4594 + {
4595 + "kernel": "rolling_sumsq",
4596 + "S": 10,
4597 + "n": 39000,
4598 + "elements": 390000,
4599 + "backend": "metal",
4600 + "threads": 0,
4601 + "median_s": 0.0007357923313975334,
4602 + "ci_lo": 0.0007097921334207058,
4603 + "ci_hi": 0.0007738331332802773,
4604 + "device_s": 9.062490426003933e-05,
4605 + "elements_per_s": 530040859.8432253,
4606 + "reps": 5,
4607 + "precision": "fp32",
4608 + "peak_rss_mb": 3431.46496,
4609 + "speedup_vs_cpu_mt": 0.18036050837224432,
4610 + "speedup_vs_cpu_1t": 0.9643225563919291,
4611 + "cpu_mt_median_s": 0.000132707878947258,
4612 + "cpu_1t_median_s": 0.0007095411419868469,
4613 + "metal_wins_vs_mt": false,
4614 + "cpu_wins_vs_mt": true
4615 + },
4616 + {
4617 + "kernel": "rolling_sumsq",
4618 + "S": 10,
4619 + "n": 390000,
4620 + "elements": 3900000,
4621 + "backend": "metal",
4622 + "threads": 0,
4623 + "median_s": 0.002544207964092493,
4624 + "ci_lo": 0.0024965000338852406,
4625 + "ci_hi": 0.0026084999553859234,
4626 + "device_s": 0.00076149997767061,
4627 + "elements_per_s": 1532893558.6407974,
4628 + "reps": 5,
4629 + "precision": "fp32",
4630 + "peak_rss_mb": 3253.567488,
4631 + "speedup_vs_cpu_mt": 0.6940765734230536,
4632 + "speedup_vs_cpu_1t": 2.7174959207635196,
4633 + "cpu_mt_median_s": 0.0017658751457929611,
4634 + "cpu_1t_median_s": 0.006913874763995409,
4635 + "metal_wins_vs_mt": false,
4636 + "cpu_wins_vs_mt": true
4637 + },
4638 + {
4639 + "kernel": "rolling_sumsq",
4640 + "S": 100,
4641 + "n": 390,
4642 + "elements": 39000,
4643 + "backend": "metal",
4644 + "threads": 0,
4645 + "median_s": 0.0002676667645573616,
4646 + "ci_lo": 0.00017749983817338943,
4647 + "ci_hi": 0.0007679169066250324,
4648 + "device_s": 9.541632607579231e-06,
4649 + "elements_per_s": 145703558.1705259,
4650 + "reps": 5,
4651 + "precision": "fp32",
4652 + "peak_rss_mb": 2962.440192,
4653 + "speedup_vs_cpu_mt": 0.6718550477549103,
4654 + "speedup_vs_cpu_1t": 0.2612097910613942,
4655 + "cpu_mt_median_s": 0.00017983326688408852,
4656 + "cpu_1t_median_s": 6.991717964410782e-05,
4657 + "metal_wins_vs_mt": false,
4658 + "cpu_wins_vs_mt": false
4659 + },
4660 + {
4661 + "kernel": "rolling_sumsq",
4662 + "S": 100,
4663 + "n": 3900,
4664 + "elements": 390000,
4665 + "backend": "metal",
4666 + "threads": 0,
4667 + "median_s": 0.0006820829585194588,
4668 + "ci_lo": 0.0003593750298023224,
4669 + "ci_hi": 0.0008333330042660236,
4670 + "device_s": 9.058334399014711e-05,
4671 + "elements_per_s": 571777956.2277012,
4672 + "reps": 5,
4673 + "precision": "fp32",
4674 + "peak_rss_mb": 3431.530496,
4675 + "speedup_vs_cpu_mt": 0.2978012810272249,
4676 + "speedup_vs_cpu_1t": 1.1826521987872431,
4677 + "cpu_mt_median_s": 0.00020312517881393433,
4678 + "cpu_1t_median_s": 0.000806666910648346,
4679 + "metal_wins_vs_mt": false,
4680 + "cpu_wins_vs_mt": true
4681 + },
4682 + {
4683 + "kernel": "rolling_sumsq",
4684 + "S": 100,
4685 + "n": 39000,
4686 + "elements": 3900000,
4687 + "backend": "metal",
4688 + "threads": 0,
4689 + "median_s": 0.002226833254098892,
4690 + "ci_lo": 0.0021508331410586834,
4691 + "ci_hi": 0.002632542047649622,
4692 + "device_s": 0.00043350004125386477,
4693 + "elements_per_s": 1751365978.0413911,
4694 + "reps": 5,
4695 + "precision": "fp32",
4696 + "peak_rss_mb": 3431.87456,
4697 + "speedup_vs_cpu_mt": 0.4883431672524638,
4698 + "speedup_vs_cpu_1t": 3.2953184884928928,
4699 + "cpu_mt_median_s": 0.0010874588042497635,
4700 + "cpu_1t_median_s": 0.007338124793022871,
4701 + "metal_wins_vs_mt": false,
4702 + "cpu_wins_vs_mt": true
4703 + },
4704 + {
4705 + "kernel": "rolling_sumsq",
4706 + "S": 100,
4707 + "n": 390000,
4708 + "elements": 39000000,
4709 + "backend": "metal",
4710 + "threads": 0,
4711 + "median_s": 0.014852333813905716,
4712 + "ci_lo": 0.014340042136609554,
4713 + "ci_hi": 0.01528970804065466,
4714 + "device_s": 0.0023322500055655837,
4715 + "elements_per_s": 2625849949.823083,
4716 + "reps": 5,
4717 + "precision": "fp32",
4718 + "peak_rss_mb": 3255.451648,
4719 + "speedup_vs_cpu_mt": 0.6337920907333103,
4720 + "speedup_vs_cpu_1t": 4.687593885765181,
4721 + "cpu_mt_median_s": 0.009413291700184345,
4722 + "cpu_1t_median_s": 0.06962170917540789,
4723 + "metal_wins_vs_mt": false,
4724 + "cpu_wins_vs_mt": true
4725 + },
4726 + {
4727 + "kernel": "rolling_sumsq",
4728 + "S": 1000,
4729 + "n": 390,
4730 + "elements": 390000,
4731 + "backend": "metal",
4732 + "threads": 0,
4733 + "median_s": 0.0009075421839952469,
4734 + "ci_lo": 0.000882917083799839,
4735 + "ci_hi": 0.000995416659861803,
4736 + "device_s": 2.3708329536020756e-05,
4737 + "elements_per_s": 429732090.5603684,
4738 + "reps": 5,
4739 + "precision": "fp32",
4740 + "peak_rss_mb": 2962.440192,
4741 + "speedup_vs_cpu_mt": 0.29870103215504695,
4742 + "speedup_vs_cpu_1t": 0.7921117822479183,
4743 + "cpu_mt_median_s": 0.0002710837870836258,
4744 + "cpu_1t_median_s": 0.0007188748568296432,
4745 + "metal_wins_vs_mt": false,
4746 + "cpu_wins_vs_mt": true
4747 + },
4748 + {
4749 + "kernel": "rolling_sumsq",
4750 + "S": 1000,
4751 + "n": 3900,
4752 + "elements": 3900000,
4753 + "backend": "metal",
4754 + "threads": 0,
4755 + "median_s": 0.002144791651517153,
4756 + "ci_lo": 0.0021287081763148308,
4757 + "ci_hi": 0.0034982911311089993,
4758 + "device_s": 0.0007578750373795629,
4759 + "elements_per_s": 1818358439.264379,
4760 + "reps": 5,
4761 + "precision": "fp32",
4762 + "peak_rss_mb": 3431.497728,
4763 + "speedup_vs_cpu_mt": 0.47898947112456725,
4764 + "speedup_vs_cpu_1t": 3.242467441252045,
4765 + "cpu_mt_median_s": 0.0010273326188325882,
4766 + "cpu_1t_median_s": 0.00695441709831357,
4767 + "metal_wins_vs_mt": false,
4768 + "cpu_wins_vs_mt": true
4769 + },
4770 + {
4771 + "kernel": "rolling_sumsq",
4772 + "S": 1000,
4773 + "n": 39000,
4774 + "elements": 39000000,
4775 + "backend": "metal",
4776 + "threads": 0,
4777 + "median_s": 0.014728832989931107,
4778 + "ci_lo": 0.014530166983604431,
4779 + "ci_hi": 0.01593674998730421,
4780 + "device_s": 0.002570083364844322,
4781 + "elements_per_s": 2647867623.094178,
4782 + "reps": 5,
4783 + "precision": "fp32",
4784 + "peak_rss_mb": 3368.894464,
4785 + "speedup_vs_cpu_mt": 0.5643550943271196,
4786 + "speedup_vs_cpu_1t": 4.770453192305718,
4787 + "cpu_mt_median_s": 0.00831229193136096,
4788 + "cpu_1t_median_s": 0.07026320835575461,
4789 + "metal_wins_vs_mt": false,
4790 + "cpu_wins_vs_mt": true
4791 + },
4792 + {
4793 + "kernel": "rolling_sumsq",
4794 + "S": 10000,
4795 + "n": 390,
4796 + "elements": 3900000,
4797 + "backend": "metal",
4798 + "threads": 0,
4799 + "median_s": 0.0021627498790621758,
4800 + "ci_lo": 0.002053916919976473,
4801 + "ci_hi": 0.0022570830769836903,
4802 + "device_s": 0.0002617916325107217,
4803 + "elements_per_s": 1803259839.5941842,
4804 + "reps": 5,
4805 + "precision": "fp32",
4806 + "peak_rss_mb": 3431.858176,
4807 + "speedup_vs_cpu_mt": 0.49574203299838304,
4808 + "speedup_vs_cpu_1t": 3.2587757053011432,
4809 + "cpu_mt_median_s": 0.00107216602191329,
4810 + "cpu_1t_median_s": 0.007047916762530804,
4811 + "metal_wins_vs_mt": false,
4812 + "cpu_wins_vs_mt": true
4813 + },
4814 + {
4815 + "kernel": "rolling_sumsq",
4816 + "S": 10000,
4817 + "n": 3900,
4818 + "elements": 39000000,
4819 + "backend": "metal",
4820 + "threads": 0,
4821 + "median_s": 0.014753291849046946,
4822 + "ci_lo": 0.01457533286884427,
4823 + "ci_hi": 0.01564762508496642,
4824 + "device_s": 0.0025377500569447875,
4825 + "elements_per_s": 2643477835.254739,
4826 + "reps": 5,
4827 + "precision": "fp32",
4828 + "peak_rss_mb": 2962.440192,
4829 + "speedup_vs_cpu_mt": 0.4434970991671636,
4830 + "speedup_vs_cpu_1t": 4.6922437792300995,
4831 + "cpu_mt_median_s": 0.00654304213821888,
4832 + "cpu_1t_median_s": 0.06922604190185666,
4833 + "metal_wins_vs_mt": false,
4834 + "cpu_wins_vs_mt": true
4835 + }
4836 + ],
4837 + "breakeven": {
4838 + "garch_nll_P1": {
4839 + "smallest_metal_win_elements": null,
4840 + "largest_cpu_win_elements": 39000000,
4841 + "max_speedup_vs_mt": 0.33211607376881125,
4842 + "n_cases": 10
4843 + },
4844 + "garch_nll_P64": {
4845 + "smallest_metal_win_elements": 39000,
4846 + "largest_cpu_win_elements": 39000,
4847 + "max_speedup_vs_mt": 7.934195016316967,
4848 + "n_cases": 8
4849 + },
4850 + "realized_fused": {
4851 + "smallest_metal_win_elements": 39000,
4852 + "largest_cpu_win_elements": 39000,
4853 + "max_speedup_vs_mt": 3.4364769430726474,
4854 + "n_cases": 17
4855 + },
4856 + "regression_stats": {
4857 + "smallest_metal_win_elements": 390000,
4858 + "largest_cpu_win_elements": 390000,
4859 + "max_speedup_vs_mt": 3.851129874745179,
4860 + "n_cases": 17
4861 + },
4862 + "rolling_sumsq": {
4863 + "smallest_metal_win_elements": null,
4864 + "largest_cpu_win_elements": 39000000,
4865 + "max_speedup_vs_mt": 0.909589128259996,
4866 + "n_cases": 17
4867 + }
4868 + },
4869 + "shader_library": [
4870 + {
4871 + "backend": "metal",
4872 + "compiled_now": false,
4873 + "kernel": "shader_library_load",
4874 + "note": "metallib:/Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/finance/wp40_raid/build/macos-release/raid.metallib chunks=1 convert_s=0.000001",
4875 + "seconds": 0.000230708,
4876 + "t": 0.03212570771574974,
4877 + "wall_first_call": 0.013961625
4878 + }
4879 + ]
4880 +}
\ No newline at end of file
added experiments/results/fig_bench_primitives_throughput.pdf +0 −0

Binary file not shown.

added experiments/results/fig_bench_primitives_throughput.png +0 −0

Binary file not shown.

added include/raid/estimators/har.hpp +59 −0
@@ -0,0 +1,59 @@
1 +// HAR family (registry keys har.*). Daily series RV_t (t = 1..T), trading-day lags, causal construction:
2 +// HAR-RV (Corsi 2009): y_{t+h} = β0 + βd RV_t + βw RV^{(5)}_t + βm RV^{(22)}_t + ε, RV^{(k)}_t = (1/k) Σ_{j=0}^{k−1} RV_{t−j}
3 +// log-HAR: same with log RV on both sides (forecast = exp(ŷ) × smearing optional, not applied by default)
4 +// HAR-X: + user covariates X_t (already aligned at t)
5 +// HARQ (Bollerslev–Patton–Quaedvlieg 2016): βd → (βd + βq √RQ_t): term βq · √RQ_t · RV_t added
6 +// Target for horizon h: y_{t+h} = (1/h) Σ_{j=1}^{h} RV_{t+j} (average over the next h days, "overlapping" when h > 1)
7 +// or the single-day RV_{t+h} (`target = single`). Overlapping targets induce MA(h−1) errors → HAC with ≥ h−1 lags.
8 +#pragma once
9 +#include <vector>
10 +#include <span>
11 +#include <string>
12 +#include <Eigen/Dense>
13 +#include "raid/core/types.hpp"
14 +#include "raid/core/estimate.hpp"
15 +#include "raid/core/plan.hpp"
16 +#include "raid/estimators/ols.hpp"
17 +#include "raid/backend/backend.hpp"
18 +
19 +namespace raid::est {
20 +
21 +enum class HarTarget { average, single };
22 +
23 +struct HarSpec {
24 + std::vector<usize> lags{1, 5, 22}; // daily, weekly, monthly windows
25 + int horizon{1};
26 + HarTarget target{HarTarget::average};
27 + bool log{false}; // log-HAR
28 + bool harq{false}; // add √RQ_t · RV_t
29 + stats::CovOptions cov{stats::CovType::hac_bartlett, -1, false, {}, true}; // hac_lags −1 → max(h−1, ⌊4(n/100)^{2/9}⌋)
30 + std::string model_key() const { return std::string(log ? "har.logrv" : "har.rv") + (harq ? ".harq" : "") + ".h" + std::to_string(horizon); }
31 +};
32 +
33 +/// Builds the aligned design (y, X) from a daily RV series (and optional RQ and exogenous columns X_t, aligned at t).
34 +struct HarDesign { Eigen::MatrixXd X; Eigen::VectorXd y; std::vector<std::string> names; usize first_t{0}; usize n{0}; };
35 +HarDesign har_design(std::span<const f64> rv, const HarSpec& spec, std::span<const f64> rq = {}, const Eigen::MatrixXd& exog = Eigen::MatrixXd(), const std::vector<std::string>& exog_names = {});
36 +
37 +/// Fit one HAR on one series (CPU QR + robust covariance). Estimate.extra contains fitted/residual summaries.
38 +Estimate har_fit(std::span<const f64> rv, const HarSpec& spec, std::span<const f64> rq = {}, const Eigen::MatrixXd& exog = Eigen::MatrixXd(), const std::vector<std::string>& exog_names = {});
39 +
40 +/// Forecast ŷ for the last available t (origin = last observation) from a fitted HAR; for log models returns exp(ŷ)
41 +/// (naive back-transform; the smearing factor is reported in extra["smearing"] and not applied).
42 +f64 har_forecast(const Estimate& fit, std::span<const f64> rv, const HarSpec& spec, std::span<const f64> rq = {}, const Eigen::VectorXd& exog_last = Eigen::VectorXd());
43 +
44 +/// Rolling (or expanding when window = 0) re-estimation with one-origin-ahead forecasts, strictly causal:
45 +/// the model fitted on observations ≤ t predicts y_{t+h}. Returns forecasts aligned with the target index.
46 +struct HarRolling { std::vector<usize> origin; std::vector<f64> forecast, actual; Eigen::MatrixXd coefficients; usize n_fits{0}; f64 seconds{0}; };
47 +HarRolling har_rolling(std::span<const f64> rv, const HarSpec& spec, usize window, usize step = 1, std::span<const f64> rq = {});
48 +
49 +/// Batched HAR over a panel of daily RV series (CSR). Sufficient statistics are accumulated by the backend (Metal when
50 +/// available: regression_stats) and solved in FP64 on the CPU; inference is classical (HAC requires residuals: use
51 +/// har_fit per series when robust SE are needed). Returns one Estimate per series.
52 +struct HarBatchResult { std::vector<Estimate> fits; backend::KernelStats stats; };
53 +HarBatchResult har_batch(std::span<const f64> rv_concat, std::span<const i64> offsets, const HarSpec& spec, const ExecutionPlan& plan = {});
54 +
55 +/// Forecast losses for volatility: MSE and QLIKE (Patton 2011): QLIKE = y/ŷ − log(y/ŷ) − 1.
56 +struct ForecastLoss { f64 mse, qlike; usize n; };
57 +ForecastLoss forecast_loss(std::span<const f64> actual, std::span<const f64> forecast);
58 +
59 +} // namespace raid::est
added src/estimators/har.cpp +94 −0
@@ -0,0 +1,94 @@
1 +#include "raid/estimators/har.hpp"
2 +#include "raid/core/error.hpp"
3 +#include "raid/statistics/covariance.hpp"
4 +#include <chrono>
5 +#include <cmath>
6 +#include <algorithm>
7 +
8 +namespace raid::est {
9 +
10 +HarDesign har_design(std::span<const f64> rv, const HarSpec& spec, std::span<const f64> rq, const Eigen::MatrixXd& exog, const std::vector<std::string>& exog_names) {
11 + const usize T = rv.size(); RAID_REQUIRE(!spec.lags.empty() && spec.horizon >= 1, invalid_argument, "har: lags and horizon");
12 + const usize maxlag = *std::max_element(spec.lags.begin(), spec.lags.end()); const usize h = static_cast<usize>(spec.horizon);
13 + RAID_REQUIRE(T > maxlag + h + 2, insufficient_samples, "har: need T > maxlag + h + 2");
14 + for (f64 v : rv) RAID_REQUIRE(std::isfinite(v) && (!spec.log || v > 0), data_quality, "har: RV must be finite (and > 0 for log-HAR)");
15 + if (spec.harq) RAID_REQUIRE(rq.size() == T, invalid_argument, "harq: RQ series required with the same length");
16 + const usize nex = exog.size() ? static_cast<usize>(exog.cols()) : 0; if (nex) RAID_REQUIRE(static_cast<usize>(exog.rows()) == T, invalid_argument, "har-x: exog rows must equal T");
17 + std::vector<f64> z(T); for (usize t = 0; t < T; ++t) z[t] = spec.log ? std::log(rv[t]) : rv[t];
18 + // prefix sums for the window means (FP64, Neumaier)
19 + std::vector<f64> cs(T + 1, 0.0); { f64 s = 0, c = 0; for (usize t = 0; t < T; ++t) { const f64 v = z[t], tt = s + v; if (std::abs(s) >= std::abs(v)) c += (s - tt) + v; else c += (v - tt) + s; s = tt; cs[t + 1] = s + c; } }
20 + auto wmean = [&](usize t, usize k) { f64 s = 0; for (usize j = 0; j < k; ++j) s += z[t - j]; return s / static_cast<f64>(k); }; // direct sum (exact enough, k ≤ 22)
21 + const usize first = maxlag - 1, last = T - 1 - h; // origins t with full lags and a full target
22 + HarDesign d; d.first_t = first; d.n = last - first + 1; const usize k = 1 + spec.lags.size() + (spec.harq ? 1 : 0) + nex;
23 + d.X.resize(static_cast<Eigen::Index>(d.n), static_cast<Eigen::Index>(k)); d.y.resize(static_cast<Eigen::Index>(d.n));
24 + d.names.push_back("const"); for (usize l : spec.lags) d.names.push_back((spec.log ? "logrv_" : "rv_") + std::to_string(l)); if (spec.harq) d.names.push_back("sqrt_rq_x_rv"); for (usize j = 0; j < nex; ++j) d.names.push_back(j < exog_names.size() ? exog_names[j] : "x" + std::to_string(j));
25 + for (usize t = first; t <= last; ++t) {
26 + const Eigen::Index i = static_cast<Eigen::Index>(t - first); Eigen::Index c = 0; d.X(i, c++) = 1.0;
27 + for (usize l : spec.lags) d.X(i, c++) = wmean(t, l);
28 + if (spec.harq) d.X(i, c++) = std::sqrt(std::max(rq[t], 0.0)) * rv[t];
29 + for (usize j = 0; j < nex; ++j) d.X(i, c++) = exog(static_cast<Eigen::Index>(t), static_cast<Eigen::Index>(j));
30 + if (spec.target == HarTarget::single) d.y[i] = z[t + h]; else { f64 s = 0; for (usize j = 1; j <= h; ++j) s += spec.log ? rv[t + j] : z[t + j]; s /= static_cast<f64>(h); d.y[i] = spec.log ? std::log(s) : s; }
31 + }
32 + return d;
33 +}
34 +
35 +Estimate har_fit(std::span<const f64> rv, const HarSpec& spec, std::span<const f64> rq, const Eigen::MatrixXd& exog, const std::vector<std::string>& exog_names) {
36 + auto d = har_design(rv, spec, rq, exog, exog_names);
37 + OlsOptions o; o.cov = spec.cov; o.names = d.names;
38 + if (o.cov.type == stats::CovType::hac_bartlett && o.cov.hac_lags < 0) o.cov.hac_lags = std::max(spec.horizon - 1, stats::default_hac_lags(d.n));
39 + auto r = ols(d.X, d.y, o); Estimate e = r.estimate; e.model = spec.model_key();
40 + e.extra["horizon"] = spec.horizon; e.extra["target"] = spec.target == HarTarget::average ? "average" : "single"; e.extra["lags"] = spec.lags; e.extra["first_origin"] = d.first_t; e.extra["log"] = spec.log; e.extra["harq"] = spec.harq;
41 + if (spec.log) { f64 s = 0; for (Eigen::Index i = 0; i < r.residuals.size(); ++i) s += std::exp(r.residuals[i]); e.extra["smearing"] = s / static_cast<f64>(r.residuals.size()); }
42 + return e;
43 +}
44 +
45 +f64 har_forecast(const Estimate& fit, std::span<const f64> rv, const HarSpec& spec, std::span<const f64> rq, const Eigen::VectorXd& exog_last) {
46 + const usize T = rv.size(); const usize maxlag = *std::max_element(spec.lags.begin(), spec.lags.end()); RAID_REQUIRE(T >= maxlag, insufficient_samples, "har_forecast: not enough history");
47 + const usize t = T - 1; f64 yhat = fit.coefficients[0]; usize c = 1;
48 + for (usize l : spec.lags) { f64 s = 0; for (usize j = 0; j < l; ++j) s += spec.log ? std::log(rv[t - j]) : rv[t - j]; yhat += fit.coefficients[c++] * s / static_cast<f64>(l); }
49 + if (spec.harq) { RAID_REQUIRE(rq.size() == T, invalid_argument, "harq forecast needs RQ"); yhat += fit.coefficients[c++] * std::sqrt(std::max(rq[t], 0.0)) * rv[t]; }
50 + for (Eigen::Index j = 0; j < exog_last.size(); ++j) yhat += fit.coefficients[c++] * exog_last[j];
51 + return spec.log ? std::exp(yhat) : yhat;
52 +}
53 +
54 +HarRolling har_rolling(std::span<const f64> rv, const HarSpec& spec, usize window, usize step, std::span<const f64> rq) {
55 + const auto t0 = std::chrono::steady_clock::now(); HarRolling out; const usize T = rv.size(); const usize h = static_cast<usize>(spec.horizon);
56 + const usize maxlag = *std::max_element(spec.lags.begin(), spec.lags.end()); const usize minT = maxlag + h + 30;
57 + RAID_REQUIRE(window == 0 || window >= minT, insufficient_samples, "har_rolling: window too small"); RAID_REQUIRE(T > minT + h, insufficient_samples, "har_rolling: series too short");
58 + const usize k = 1 + spec.lags.size() + (spec.harq ? 1 : 0); std::vector<Eigen::VectorXd> coefs;
59 + for (usize end = (window ? window : minT); end + h <= T; end += step) { // model uses rv[0..end) (or the last `window`), forecasts target at origin end−1
60 + const usize b = window ? end - window : 0; std::span<const f64> hist = rv.subspan(b, end - b); std::span<const f64> rqh = spec.harq ? rq.subspan(b, end - b) : std::span<const f64>();
61 + Estimate e; try { HarSpec s2 = spec; s2.cov.type = stats::CovType::classical; e = har_fit(hist, s2, rqh); } catch (const RaidError&) { continue; }
62 + const f64 fc = har_forecast(e, hist, spec, rqh); const usize t = end - 1;
63 + f64 actual; if (spec.target == HarTarget::single) actual = rv[t + h]; else { f64 s = 0; for (usize j = 1; j <= h; ++j) s += rv[t + j]; actual = s / static_cast<f64>(h); }
64 + out.origin.push_back(t); out.forecast.push_back(fc); out.actual.push_back(actual); coefs.push_back(Eigen::Map<const Eigen::VectorXd>(e.coefficients.data(), static_cast<Eigen::Index>(k))); ++out.n_fits;
65 + }
66 + out.coefficients.resize(static_cast<Eigen::Index>(k), static_cast<Eigen::Index>(coefs.size())); for (usize j = 0; j < coefs.size(); ++j) out.coefficients.col(static_cast<Eigen::Index>(j)) = coefs[j];
67 + out.seconds = std::chrono::duration<f64>(std::chrono::steady_clock::now() - t0).count(); return out;
68 +}
69 +
70 +HarBatchResult har_batch(std::span<const f64> rv_concat, std::span<const i64> offsets, const HarSpec& spec, const ExecutionPlan& plan) {
71 + HarBatchResult out; const usize S = offsets.size() - 1; std::string why; auto be = backend::resolve(plan, &why);
72 + // Build all designs (CPU, FP64), concatenate row-major for the backend, accumulate X'X / X'y / y'y per series, solve in FP64.
73 + std::vector<HarDesign> designs(S); usize k = 0, rows = 0; std::vector<i64> roff(S + 1, 0); std::vector<usize> ok(S, 1);
74 + for (usize s = 0; s < S; ++s) { try { designs[s] = har_design(rv_concat.subspan(static_cast<usize>(offsets[s]), static_cast<usize>(offsets[s + 1] - offsets[s])), spec); k = static_cast<usize>(designs[s].X.cols()); rows += designs[s].n; } catch (const RaidError&) { ok[s] = 0; } roff[s + 1] = static_cast<i64>(rows); }
75 + RAID_REQUIRE(k > 0, insufficient_samples, "har_batch: no series with enough data");
76 + std::vector<f64> X(rows * k), y(rows); for (usize s = 0; s < S; ++s) { if (!ok[s]) continue; const usize b = static_cast<usize>(roff[s]); for (usize i = 0; i < designs[s].n; ++i) { y[b + i] = designs[s].y[static_cast<Eigen::Index>(i)]; for (usize j = 0; j < k; ++j) X[(b + i) * k + j] = designs[s].X(static_cast<Eigen::Index>(i), static_cast<Eigen::Index>(j)); } }
77 + std::vector<f64> xtx, xty, yty; be->regression_stats(X, y, roff, k, xtx, xty, yty, &out.stats);
78 + out.fits.resize(S);
79 + for (usize s = 0; s < S; ++s) {
80 + if (!ok[s]) { out.fits[s].model = spec.model_key(); out.fits[s].convergence = Convergence{false, 0, 0, 0, 1, "insufficient data"}; continue; }
81 + SufficientStats ss; ss.xtx = Eigen::Map<const Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>>(xtx.data() + s * k * k, static_cast<Eigen::Index>(k), static_cast<Eigen::Index>(k)); ss.xty = Eigen::Map<const Eigen::VectorXd>(xty.data() + s * k, static_cast<Eigen::Index>(k)); ss.yty = yty[s]; ss.n = designs[s].n;
82 + OlsOptions o; o.names = designs[s].names; auto r = ols_from_stats(ss, o); out.fits[s] = r.estimate; out.fits[s].model = spec.model_key(); out.fits[s].backend = be->kind(); out.fits[s].precision = out.stats.precision;
83 + out.fits[s].extra["horizon"] = spec.horizon; out.fits[s].extra["note"] = "classical SE from sufficient statistics; use har_fit for HAC";
84 + }
85 + return out;
86 +}
87 +
88 +ForecastLoss forecast_loss(std::span<const f64> a, std::span<const f64> f) {
89 + RAID_REQUIRE(a.size() == f.size(), invalid_argument, "forecast_loss: size mismatch"); ForecastLoss l{0, 0, 0};
90 + for (usize i = 0; i < a.size(); ++i) { if (!(a[i] > 0) || !(f[i] > 0) || !std::isfinite(a[i]) || !std::isfinite(f[i])) continue; const f64 d = a[i] - f[i]; l.mse += d * d; const f64 q = a[i] / f[i]; l.qlike += q - std::log(q) - 1.0; ++l.n; }
91 + if (l.n) { l.mse /= static_cast<f64>(l.n); l.qlike /= static_cast<f64>(l.n); } return l;
92 +}
93 +
94 +} // namespace raid::est
95
Menu

Theme