Skip to content

Releases: nrhevu/roctop

roctop v0.4.0

Choose a tag to compare

@nrhevu nrhevu released this 27 Jun 06:02

roctop v0.4.0

This release expands the focused GPU view and refines the GPU focus graph experience.

Highlights

  • Expanded focused GPU metrics with richer hardware and process details.
  • Added and refined GPU focus graph views.
  • Kept parent process context visible in tree mode while focused on a GPU.

Fixes

  • Removed throttle status from the focused GPU metric panel.

Full Changelog

v0.3.4...v0.4.0

roctop v0.3.4

Choose a tag to compare

@nrhevu nrhevu released this 27 Jun 03:16

roctop v0.3.4

This release improves the stability and readability of the live terminal UI, with a focus on graph history behavior and process table layout.

Highlights

  • Added a fixed 18-minute graph history window with one-second graph updates.
  • Kept graph history uncompressed so time markers remain consistent across terminal widths.
  • Improved graph panning and clamped history rendering to the 1080-second window.
  • Fixed long-window time labels, including 1080s, disappearing at the left edge of a graph.
  • Made process elapsed time tick forward once per second between collector refreshes.
  • Stabilized process table column widths to reduce layout jitter.
  • Improved truncated process row rendering so the table fills available terminal space more cleanly.
  • Stabilized inspect popup columns for long process metadata.

Fixes

  • Fixed graph time-axis labels being dropped when one graph column was one character narrower than the other.
  • Prevented graph data from drawing before the visible history limit marker.
  • Improved elapsed-time parsing and rendering for process rows.
  • Reduced UI shifting in process and inspect views.

Full Changelog

v0.3.3...v0.3.4

roctop v0.3.3

Choose a tag to compare

@nrhevu nrhevu released this 25 Jun 08:31

roctop v0.3.3

Packaging and PyPI

  • Added PyPI project URLs for the GitHub homepage, repository, and issue tracker.
  • Updated the README install section to prefer pip install roctop.
  • Rewrote the source install instructions to use a normal git clone checkout instead of direct pip install git+....
  • Updated the README demo image URL for the v0.3.3 tag.

Verification

  • Test suite passes: 167 tests.
  • CLI version reports roctop 0.3.3.

roctop v0.3.2

Choose a tag to compare

@nrhevu nrhevu released this 25 Jun 07:42

roctop v0.3.2

Fixes

  • Fixed the broken demo image on the PyPI project page by using an absolute GitHub raw URL instead of the repository-relative docs/demo.svg path.
  • Improved Esc behavior in process zoom mode: active text/GPU filters are cleared first, and a second Esc exits zoom.

Packaging

  • Bumped package version to 0.3.2.
  • Rebuilt PyPI distributions for 0.3.2.

Verification

  • Test suite passes: 167 tests.
  • twine check passes for both:
    • roctop-0.3.2.tar.gz
    • roctop-0.3.2-py3-none-any.whl

roctop v0.3.1

Choose a tag to compare

@nrhevu nrhevu released this 25 Jun 03:26

roctop v0.3.1

Highlights

  • Added GPU number filtering, so you can quickly focus the UI on selected GPUs.
  • Added process table zoom for easier inspection of long process lists.
  • Added graph history panning for navigating recent metric history.
  • Improved live graph rendering stability, including subsecond refresh behavior and keypress-driven redraws.
  • Fixed process info popup overflow handling.
  • Improved process safety and telemetry parsing around malformed or incomplete ROCm/AMD SMI process data.

Packaging and Release

  • Added GitHub Actions workflow to build Python distributions and publish to PyPI.
  • Refreshed the demo SVG with the current UI controls.
  • Bumped package version to 0.3.1.

Verification

  • Test coverage was updated across CLI, collectors, interaction, and rendering behavior.
  • Local test suite passes with 166 tests.

roctop v0.3.0

Choose a tag to compare

@nrhevu nrhevu released this 24 Jun 11:32

roctop v0.3.0

This release focuses on making the live process table feel much more like a real interactive terminal tool: process trees, popups, faster collection/rendering, and smoother cursor behavior.

Highlights

  • Added Process Tree mode with t

    • Shows GPU processes with their ancestor chain.
    • Keeps parent-child structure while sorting siblings recursively.
    • Supports parent jump with p.
    • Supports sibling navigation with h/Left and l/Right.
  • Added popup UI

    • ? opens a centered help popup with the full keybinding table.
    • i opens a selected-process info popup with GPU usage, host usage, tree context, command line, and /proc/<pid> details.
    • Help and info popups now support h/j/k/l as well as arrow keys.
  • Improved live interaction behavior

    • Cursor movement now stays within the visible process window before scrolling.
    • Selection is more stable across refreshes, duplicate PIDs, tree/flat toggles, sorting, filtering, and wrapped commands.
    • Header hints and README controls were updated for the new workflows.
  • Improved collection/render performance

    • rocm-smi and amd-smi process collection now run in parallel.
    • The collector runs independently from rendering, reducing UI stalls.
    • Key handling and rendering latency were improved for large process lists.
  • Improved metrics and graphs

    • Fixed the initial Avg %CPU: N/A startup sample by priming CPU history before live render.
    • Improved graph cadence and timeline rendering.
    • Expanded GPU utilization bars and displayed utilization decimals.
  • Improved process data

    • Added PPID support and process ancestor collection from ps.
    • Added process filtering and search controls.
    • Added standardized AMD GPU model display.
  • Updated demo and docs

    • Refreshed docs/demo.svg with synthetic tree-mode data.
    • Updated README for v0.3.0, popup controls, --version, and current live controls.

Verification

  • Full test suite passes: 131 tests
  • roctop --version now reports roctop 0.3.0

Compatibility

No intentional breaking changes. Existing flat process view, --once, and --json workflows remain supported.

roctop v0.2.0

Choose a tag to compare

@nrhevu nrhevu released this 22 Jun 17:23

roctop v0.2.0

v0.2.0 adds live history graphs, interactive process controls, safer process actions, and a refreshed synthetic demo.

Highlights

  • Added live history graphs for average CPU, memory, GPU utilization, and GPU memory usage.
  • Added interactive process navigation with j/k, arrow keys, PgUp/PgDn, and persistent selection across refreshes.
  • Added process sorting by GPU, GPU memory, GPU memory percent, CPU, memory, PID, user, time, and command.
  • Added a high-contrast sort menu with selected-column direction indicators.
  • Added process kill confirmation with selectable Cancel, SIGTERM, and SIGKILL options.

UI Improvements

  • Process commands now wrap instead of truncating, making long training/server commands readable.
  • Header layout now separates system info from keyboard shortcuts.
  • Graph layout was refined so upper/lower graphs align cleanly with the time axis.
  • GPU graph order now shows average GPU above average GPU memory.
  • GPU utilization headers were renamed from MEM/UTL to %Memory-Usage and %Utilization.
  • Selection and menu highlights were adjusted for better contrast.

Robustness

  • Improved handling for malformed amd-smi process JSON entries.
  • Live mode handles graceful Ctrl-C shutdown.
  • Process cursor stays visible after resize, sorting, long command wrapping, and table cropping.

Docs & Demo

  • Refreshed docs/demo.svg using synthetic data only.
  • Demo now shows 8 GPUs with realistic GUIDs, dummy process names, varied GPU states, and random-walk graphs.
  • Added repository contributor guidance in AGENTS.md.
  • Added a bundled Codex skill for regenerating the roctop demo SVG safely.

Upgrade

git fetch --tags
git checkout v0.2.0
.venv/bin/python -m pip install -e .

roctop v0.1.0

Choose a tag to compare

@nrhevu nrhevu released this 22 Jun 12:37

roctop v0.1.0

Initial release of roctop, a lightweight Rich terminal monitor for AMD ROCm GPUs.

Highlights

  • Live terminal UI for monitoring AMD ROCm GPU state.
  • One-shot terminal rendering with --once.
  • Normalized JSON output with --json for scripting and automation.
  • Configurable refresh interval with --interval.

Features

  • GPU overview table showing GPU index, DID, GUID, temperature, fan, power, SCLK/MCLK clocks, VRAM usage, and utilization.
  • GPU type and GFX version summary in the header when available.
  • Inline utilization bars for GPU memory and GPU activity, with color thresholds for low, medium, and high usage.
  • Process table showing GPU index, PID, user, GPU memory, GPU memory percentage, host CPU/memory usage, elapsed time, and command.
  • Data collection from rocm-smi, amd-smi process, and ps, with fallback behavior when process-specific data is unavailable.
  • Warning panel for visible ROCm/tooling issues while hiding common noisy permission warnings.
  • Truecolor Dracula-styled terminal rendering and demo SVG.

Reliability

  • Retries transient command timeouts during live rendering.
  • Handles missing commands and collection failures with clear error messages.
  • Filters zero-memory GPU processes from process output.
  • Keeps unsupported fan data visible as N/A instead of hiding the column.

Requirements

  • Python 3.10+
  • rich>=13
  • ROCm tools available on the host, especially rocm-smi; amd-smi is used when available for process memory details.