• Andrey Filippov's avatar
    CLAUDE: elphel-perfd - CPU+GPU performance daemon, no sudo in the control path · 74d8341c
    Andrey Filippov authored
    Design ruled by Andrey 07/17/2026 (lives in imagej-elphel: the capability
    follows the hardware the project runs on - 224/137; other programs use the
    same localhost socket/CLI):
    - perfd/elphel_perfd.py: root systemd service; line protocol on
      127.0.0.1:48890 (PING/STATUS/HOLD measure|max/RELEASE); a hold is TIED TO
      THE CONNECTION (client crash = auto-release), refcounted, strongest
      profile wins. 'measure' = CPU performance (power-profiles-daemon hold,
      same call as the old cpu_perf_hold.py it supersedes) + GPU persistence +
      clocks LOCKED (default 2550 MHz; 5060 Ti burst boost measured ~2595 @
      23 W/49 C - the lock is about run-to-run +-1% reproducibility for
      per-item margin evaluation, not speed). 'max' = performance, unlocked.
      ExecStopPost=nvidia-smi -rgc so a dead daemon never leaves clocks locked.
    - perfd/install.sh (one-time sudo, idempotent) + perfctl (unprivileged CLI:
      'perfctl hold measure -- <cmd>') + README.
    - Java: com.elphel.imagej.common.PerfDaemon (plain TCP, Java-8, zero deps;
      Hold implements AutoCloseable); Eyesis_Correction startup probe (one
      console line - uses the daemon when installed, prints the sudo install
      command when not); CuasPoseRT preloaded RT harness holds 'measure' for
      the timed run, releases after the RT summary.
    Tested end-to-end user-mode (daemon on a test port): protocol, Java client,
    CPU hold engaged, GPU lock correctly permission-refused as non-root,
    auto-release on disconnect. GPU lock path activates once installed under
    root. mvn package + test PASS.
    Co-authored-by: 's avatarClaude Opus 4.8 <claude-opus-4-8@anthropic.com>
    Co-authored-by: 's avatarClaude Fable 5 <claude-fable-5@anthropic.com>
    74d8341c
Name
Last commit
Last update
..
imagej Loading commit data...