OpenDPD Studio 2.3.0¶
DPD Arena is built around APA_200MHz_b, the 200 MHz, 256-QAM measured capture. Rank, Submit and Rules use this one dataset. The release includes 23 model entries, 83 configurations and 233 test cases, based on 218 independently fitted checkpoints. The GRU (streaming, stateful) and GMP (streaming, windowed) entries re-evaluate fitted weights with stateful execution: they account for 5 of the configurations and 15 of the test cases and add no fits. Other datasets are outside the Arena catalogue, results and packaged capture assets.
Install or upgrade with uv pip install --python .venv "opendpd==2.3.0" --torch-backend=auto; see Installation.
Results and Pareto fronts¶
Rank compares each backbone and parameter configuration using complete-symbol EVM, emitted-output ACLR, real parameters and arithmetic operations per output IQ sample. Four interactive plots show EVM and ACLR against parameters and operations; diamonds highlight each plot's Pareto front and error bars report variation across seeds. Budget filters include all configurations that fit the selected cap.
The same cost references apply to every size. Smaller models score higher at equal linearization. Only DPD costs count. Output power must stay within ±0.5 dB and mean quality must be positive to rank. Offline and stateful execution, and official and workspace results, have separate comparisons.
Frozen PA and test-only evaluation¶
Every DPD uses one validation-selected TRes-GRU PA with 4,871 parameters. PA and DPD training, validation and test inputs come from disjoint slices of the original APA_200MHz_b capture. The held-out test set contains complete OFDM symbols. Cascade outputs are predictions from this frozen PA, not new predistorted hardware measurements.
Each neural configuration receives 240 complete epochs, all stride-1 200-sample windows, batch 64 including the tail, and three seeds. This is 94,320 optimizer updates per seed. Validation alone selects weights; all fitting finishes before test evaluation. Only test EVM, ACLR and power checks determine final scores and ranks. MP/GMP least-squares methods use training-only PA feedback, never ILC targets. ILC remains outside Arena.
The APA B result bundle is a checked subset of the completed v6 experiment. Its weights, raw test observations and scores are unchanged. The full experiment is archived outside this repository, and the public protocol is dpd-arena-v6-apa-b.
Studio and hosted execution¶
The release also includes safe backbone templates, classical PA fitting, parameterized custom DPD submissions and isolated hosted Arena execution, which is off by default and needs the container check described in that guide before it is enabled. Workspace submissions do not publish a global leaderboard entry.
The custom waveform inputs and import, session, export and GPU-boundary protections from 2.2.17 and 2.2.18 are retained. CPU and CUDA execution share the scientific recipe; execution acceleration does not reduce training budgets.
For operators of a self-hosted public Studio¶
Updating the package does not update a running public Studio. Follow Public Studio and deploy the same revision to the isolated API (the guest runtime; restarting the guest API ends all current sessions), the host GPU agent (/opt/opendpd-gpu, then restart opendpd-gpu.service) and its pinned container image. Rank and Rules need only the API. Hosted Arena submissions need all three, including the agent fix that accepts Arena job inputs, and stay disabled unless OPENDPD_WEB_ARENA_SUBMISSIONS=1 is set. Redeploy the API before pointing the web frontend at this release, because the Arena and backbone-template pages call API routes that earlier releases reject.
Deployment files changed in this release: the guest and GPU hash-locked requirement files add threadpoolctl==3.6.0; opendpd-gpu.service now wants, rather than requires, the CDI refresh; the new opendpd-gpu.tmpfiles.conf is copied to /etc/tmpfiles.d/opendpd-gpu.conf and applied with systemd-tmpfiles --create so the Podman and runc runtime directories exist after a reboot; opendpd-web-vm.service adds RestartSec=5; and poweroff.py waits up to 75 s for the guest to power off. deployment/user-backbone-ruleset.json is a repository-ruleset template for contributed backbones and takes effect only when a maintainer applies it.
Validation¶
The v6 matrix is complete: 23 results, 233 test cases, with 23 eligible backbone/board summaries. All 218 fits were frozen before test. The complete independent audit passed, including 15 streaming replays. The real Chromium journey checked the APA_200MHz_b board and all four Pareto plots, a new four-case MP submission and its evidence. A wheel built from an isolated sdist verified 5 current Arena assets, the complete bundle, exact UI bytes, and a fresh MP evaluation outside the source tree. The current frontend tests, schema consistency, lint, production build and strict documentation checks also passed. Earlier core/CUDA and API checks are recorded in the experiment evidence. Results · Audit · Packaging.
Complete results · Independent audit · Packaging verification · Data isolation · Protocol