• 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
..
CholeskyBlock.java Loading commit data...
CholeskyBlockTest.java Loading commit data...
CholeskyFloat.java Loading commit data...
CholeskyLDLTMulti.java Loading commit data...
CholeskyLLTMulti.java Loading commit data...
DoubleFHT.java Loading commit data...
DoubleGaussianBlur.java Loading commit data...
EProperties.java Loading commit data...
FilterProperties.java Loading commit data...
GenericJTabbedDialog.java Loading commit data...
GenericJTabbedDialogMcp.java Loading commit data...
LogTee.java Loading commit data...
MultiThreading.java Loading commit data...
PerfDaemon.java Loading commit data...
PolynomialApproximation.java Loading commit data...
ShowDoubleFloatArrays.java Loading commit data...
WindowTools.java Loading commit data...
package-info.java Loading commit data...