Skip to content

OpenDPD Studio 2.3.1

This release addresses #70: select an individual GPU for each PA/DPD training or testing job in local Studio.

GPU selection and concurrent local runs

  • The Device selector and Settings list every detected NVIDIA GPU with its logical index and model name, including machines with identical cards.
  • Training and testing submit the selected device_index to the existing execution configuration. The review step, run record, result and report identify the concrete device, such as cuda:1.
  • Local scheduling reserves a slot per GPU. A queued job on GPU 0 no longer blocks a job assigned to GPU 1. Jobs on the same GPU remain serialized.
  • Unavailable indices are refused during validation and submission. Existing configurations without an index continue to use GPU 0.
  • ILC surrogate evaluation also honors the selected CUDA index.
  • The frontend development dependency source-map-js is updated to 1.2.2 to address the indexed-source-map denial-of-service advisory found by CI.

See the selection guide for JSON configuration and CUDA_VISIBLE_DEVICES behavior.

Install

uv pip install --python .venv --upgrade "opendpd==2.3.1" --torch-backend=auto
opendpd gui

The package includes the updated Studio interface. The hosted app lists its server devices; using your computer's GPUs requires a local Studio instance. The hosted service retains its shared queue and GPU 0 restriction.

Verification

Regression coverage includes individual-device discovery, unavailable and malformed indices, all four PA/DPD training/testing forms, imported configuration preservation, the legacy execution adapter, per-GPU queue dispatch, and the hosted GPU bridge. Multi-GPU discovery and dispatch are tested with simulated hardware; simultaneous execution on multiple physical GPUs is not verified on the single-GPU release machine.

Release checks passed on Linux with Python 3.13 and an NVIDIA RTX 4090 Laptop GPU: all four PA/DPD training/testing tasks completed through worker subprocesses on cuda:0. Browser checks with three simulated GPUs verified selection, submission, Settings, and desktop/mobile layouts. Backend and frontend regressions, type checking, API contract generation, lint and a strict documentation build passed.

Deployment

Deploy the same revision to the API, private GPU agent and pinned worker image, then update STUDIO_REF in lab-emi/opendpd-site and deploy its Pages workflow. Follow Public Studio.