Skip to content

v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Oct 14:25

AMD GPUs: GridCore schedules on a card driven by the amdgpu kernel driver,
with llama.cpp built for ROCm or Vulkan, reading everything from the
kernel. Tested on a Radeon Pro W7800 32 GB. And every process on the GPU,
GridCore's own and others', in /admin/state and the dashboard.

Added

  • gpu.device: amdgpu:N: AMD GPUs driven by the amdgpu kernel driver, for
    llama.cpp built with ROCm (HIP) or Vulkan. amdgpu:N is the N-th amdgpu
    device in PCI address order, as rocm-smi lists them. VRAM total and
    used and the utilisation come from sysfs, per-process VRAM from the DRM
    client usage stats in /proc/<pid>/fdinfo (drm-total-vram, or
    drm-memory-vram on older kernels), counted once per DRM client and only
    for this device's PCI address. Nothing to install, no cgo. auto on
    Linux uses amdgpu:0 when there is no nvidia-smi; gridcore check
    prints the device's PCI address. Tested on a Radeon Pro W7800 32 GB
    with llama.cpp b11541, ROCm and Vulkan builds.
  • /admin/state: gpu.processes, every process in the latest GPU
    snapshot with its PID, executable name, memory and, for GridCore's own
    instances, the model it serves; largest first, [] when there are none.
    Names come from /proc/<pid>/comm on Linux and ps on macOS, looked up
    once per PID rather than on every poll, and off the scheduler loop.
  • Dashboard: a GPU processes panel listing them, and the memory bar
    splits "other processes" into one segment per process, with name, PID
    and size in its tooltip. Memory the driver does not attribute to any
    process (on Apple Silicon, all of it outside GridCore's own instances)
    stays one "other" segment.