1\section{Financial applications}2\label{sec:apps}34The applications are not forecasting studies; they show that the batched estimators deliver the same statistical content as per-series estimation on real data, and where batching pays.56\paragraph{E2 --- HAR forecasting and batched estimation.} Figure~\ref{fig:e2} summarises the experiment. For the first 100 symbols of the universe, HAR-RV, log-HAR and HARQ are re-estimated every day on a causal 120-session window and forecast the average realized variance over the next $h \in \{1, 5, 22\}$ sessions; the benchmark is the random-walk forecast $\widehat{\RV}_{t+h} = \RV_t$ (Table~\ref{tab:e2acc}). With only one year of data the windows are short, yet the median QLIKE of HAR-RV is 0.196, 0.146 and 0.134 at $h = 1, 5, 22$ against 0.251, 0.239 and 0.301 for the random walk, and HAR beats the random walk for 84\,\%, 86\,\% and 78\,\% of symbols; log-HAR is best at the longer horizons (0.138 and 0.112), consistent with the literature. Table~\ref{tab:e2rt} reports the runtime of estimating HAR-RV ($h = 1$, 252 daily observations per series) on 10, 100 and 781 series: per-series QR fits take 0.08--6.0\,ms on one thread and 0.05--0.68\,ms on 18 threads; the batched path (sufficient statistics on the backend, FP64 solve) takes 0.10--3.9\,ms on the CPU and 0.32--4.7\,ms on Metal. With 252 observations per series the designs are tiny ($252\times4$ per series), the GPU is launch-bound, and the per-series multithreaded QR is the fastest option; batching would pay only with long daily histories or many more series. Coefficients from the batched path agree with per-series QR to $10^{-9}$ (CPU) and $10^{-4}$ relative (Metal, FP32 sufficient statistics), the documented tolerance.78\begin{figure}[t]9\centering\includegraphics[width=\textwidth]{figures/fig_e2.pdf}10\caption{E2 --- HAR on the 2024 panel. Panel A: distribution across 100 symbols of the QLIKE of rolling causal forecasts (120-session window) for the random walk, HAR-RV, log-HAR and HARQ at horizons $h = 1, 5, 22$ (boxes: interquartile range; whiskers: 1.5 IQR; outliers omitted). Panel B: runtime of HAR-RV estimation on 10, 100 and 781 series of 252 observations by method (medians of 5 repetitions).}11\label{fig:e2}12\end{figure}1314\begin{table}[t]15\centering\small16\caption{E2 --- rolling causal HAR forecasts, 100 symbols, 2024 (120-session window, median QLIKE across symbols).}17\label{tab:e2acc}18\input{tables/tab_e2_accuracy}19\end{table}20\begin{table}[t]21\centering\small22\caption{E2 --- runtime of HAR-RV estimation ($h=1$), milliseconds (medians of 5 repetitions).}23\label{tab:e2rt}24\resizebox{\textwidth}{!}{\input{tables/tab_e2_runtime}}25\end{table}2627\paragraph{E3 --- GARCH-family panel.} Figure~\ref{fig:e3} summarises the experiment. GARCH(1,1), GJR, EGARCH and GARCH-$t$ are fitted by QML to the daily close-to-close log returns of 888 symbols (2015--2024 daily bars, median 2\,459 training observations; the last 40 sessions of 2024 are held out). Table~\ref{tab:e3} reports convergence rates, iterations, time per fit, persistence, and the QLIKE of the fixed-parameter one-day-ahead variance forecasts against the next day's realized variance. GARCH and GARCH-$t$ converge for all 888 series, GJR for 98.4\,\% and EGARCH for 92.8\,\% (after up to two restarts; the failures are reported as such, not as estimates), in 2.9--18\,ms per fit; persistence medians are 0.956--0.973. Daily GARCH forecasts have a median QLIKE of 0.39--0.40 against 0.27--0.28 for the realized-variance random walk: a one-day-ahead forecast built from intraday data beats one built from daily returns, as the literature since \citet{AndersenBollerslevDieboldLabys2003} would predict, and the gap is not a numerical artefact. The GPU's contribution in E3 is the likelihood grid: evaluating 256 $(\omega,\alpha,\beta)$ combinations per series for all 888 series takes 23\,ms on Metal against 117\,ms on 18 CPU threads (5.1$\times$); the grid argmin is identical on both backends for all 888 series, with a maximum relative difference of $2\times10^{-3}$ in the likelihood at the least-likely grid points (near the non-stationarity boundary).2829\begin{figure}[t]30\centering\includegraphics[width=\textwidth]{figures/fig_e3.pdf}31\caption{E3 --- GARCH-family QML on 888 daily return series (2015--2024). Panel A: share of converged fits by model. Panel B: distribution of the estimated persistence across converged fits. Panel C: distribution of the QLIKE of fixed-parameter one-day-ahead variance forecasts against next-day realized variance over the last 40 sessions of 2024; the dashed line is the median QLIKE of the realized-variance random walk.}32\label{fig:e3}33\end{figure}3435\begin{table}[t]36\centering\small37\caption{E3 --- GARCH-family QML on 888 daily return series (2015--2024); forecasts evaluated on the last 40 sessions of 2024 against realized variance.}38\label{tab:e3}39\resizebox{\textwidth}{!}{\input{tables/tab_e3_fits}}40\end{table}4142\paragraph{E4 --- realized covariance and connectedness.} For $N \in \{10, 30, 60, 100\}$ symbols with at least 95\,\% regular-bar coverage, daily realized covariance matrices are formed from synchronised 5-minute returns (78 per day) on the days where every symbol has the full grid, and rolling Diebold--Yilmaz total connectedness is computed from a VAR(1) on the daily log-RV panel (120-day windows, $H = 10$). Figure~\ref{fig:e4} and Table~\ref{tab:e4} show the two constraints the charter asked for. Memory is not one of them: the rolling connectedness over 133 windows takes 0.5, 2.3, 8.9 and 29\,ms for $N = 10, 30, 60, 100$ on the CPU and never fails. Conditioning is: the median condition number of the daily realized covariance grows from 81 ($N = 10$) to 422 ($N = 30$) and $5.9\times10^3$ ($N = 60$), and the matrix is singular for $N = 100 > 78$ bins; the Ledoit--Wolf shrinkage intensity rises from 0.16 to 0.33 accordingly. Strict synchronisation also discards 70--164 of the 252 days as $N$ grows. Connectedness itself is not GPU work at these sizes; the GPU-relevant part is the realized covariance of large panels, which reduces to the batched sufficient statistics of E1.4344\begin{figure}[t]45\centering\includegraphics[width=\textwidth]{figures/fig_e4.pdf}46\caption{E4 --- realized covariance and connectedness versus the number of assets $N$. Panel A: median and maximum condition number of the daily realized covariance from synchronised 5-minute returns (78 bins; values above $10^{9}$ clipped). Panel B: mean Ledoit--Wolf shrinkage intensity. Panel C: mean total Diebold--Yilmaz connectedness over 133 rolling 120-day windows, annotated with the CPU time for all windows.}47\label{fig:e4}48\end{figure}4950\begin{table}[t]51\centering\small52\caption{E4 --- daily realized covariance (5-minute, synchronised) and rolling Diebold--Yilmaz connectedness, 2024.}53\label{tab:e4}54\resizebox{\textwidth}{!}{\input{tables/tab_e4}}55\end{table}56