Skip to content

Releases: ai-computing/rm-accel

rm-accel 0.5.0

Choose a tag to compare

@gspark-etri gspark-etri released this 20 Oct 00:46

Found in the ai-rm end-to-end run (ai-rm#32): two training processes started on a node outside Kubernetes held both
of its RNGD cards, the device plugin and the AcceleratorProfiles reported them free, and a decode pod placed there
failed with EBUSY (#9).

Added

  • Card occupancy (rm_abstract.airm.occupancy): per card, the holders from furiosa-smi ps --format json, the
    Rebellions driver's ctx_info / rbln-stat --json contexts and /proc/<pid>/fd, each classified by
    /proc/<pid>/cgroup as k8s (pod) or host. Published in spec.extra as inUse and holders (pid, executable
    basename, managed). A card held by a host process also gets health: busy and healthy: "false", which
    rm-controller already skips. AIRM_OCCUPANCY=0 turns it off; without the host PID namespace no occupancy is
    published (with a warning).
  • Node label airm.ai-computing.io/host-held=<n>; /metrics series rm_accel_accelerators_in_use and
    rm_accel_accelerators_host_held.
  • Chart values hostPID (default true) and occupancy (default true).

Verified on: furiosa-smi 2026.4.0, rbln-stat 3.0.0, Python 3.10/3.11, cgroup v2 + containerd. Read-only dry-run on two NPU nodes: host-held RNGD cards reported busy, idle cards free; rm-controller excludes the busy cards (#10).
Install: chart deploy/helm/rm-abstract-node 0.6.0 (hostPID: true is needed to see host processes), or pip install https://github.com/ai-computing/rm-accel/archive/refs/tags/v0.5.0.tar.gz.
Limits: GPUs not covered; a busy ATOM and k8s-held cards are verified by fixtures only.

v0.4.1

Choose a tag to compare

@gspark-etri gspark-etri released this 19 Oct 04:59

Fixed

  • Rebellions: take the device index from rbln<N>, not npu. rbln-stat restarts npu at 0 in each device group, so a 4-card host was reported as 2 ATOM (ids collided).

v0.4.0 — ai-rm L1 accelerator abstraction

Choose a tag to compare

@gspark-etri gspark-etri released this 19 Oct 03:22

Repositioned as the L1 accelerator abstraction of ai-rm.

Added

  • ai-rm protocol v0.1 adapter rm_abstract.airm: AcceleratorProvider rm-abstract
    (entry point airm.accelerator_providers), discovery through read-only vendor tools with
    HardwareDetector as fallback, datasheet peak_tflops for RNGD and ATOM.
  • Node daemon python -m rm_abstract.airm.daemon: AcceleratorProfile per device, node labels
    airm.ai-computing.io/<vendor>.<model>, airm_accelerators on /metrics.
  • Helm chart deploy/helm/rm-abstract-node (DaemonSet, RBAC).
  • ai-rm.yaml component manifest; dependency on rm-core v0.1.1.
  • tools/check_sensitive.py and a CI job that scans every push.
  • README in English with a Korean translation (README.ko.md).

Changed

  • Package metadata: description, keywords, authors and URLs now point to ai-computing.
  • Ruff configuration moved to [tool.ruff.lint]; code formatted with ruff and black.
  • CI runs the full rm_core.conformance and a daemon dry-run; mypy is reported but non-blocking
    while existing type errors are fixed.
  • test_all_examples.sh → scripts/run_examples.sh (no hard-coded path);
    test_multi_engine.py → scripts/manual/multi_engine_check.py.

Moved

  • CLEANUP_SUMMARY.md, docs/FINAL_TEST_REPORT.md, docs/TEST_RESULTS.md and
    docs/PRESENTATION.md → docs/archive/ (point-in-time, not maintained).