Skip to content

Introduction

Graphsignal is a GPU profiler for AI agents to autonomously optimize inference performance across models, engines, and GPUs. It observes an inference engine or any GPU application from a sidecar process and exposes everything it measures through a local JSON API:

  • GPU profiling — cumulative time per kernel, per CUDA graph, and per memcpy/memset/synchronization kind via CUPTI/ROCm injection, plus transfer byte counters.
  • GPU probes — a vendorable C++ header that you — or an AI agent — use to instrument code and CUDA/HIP kernels; probe values appear next to the built-in metrics.
  • Full workload picture — GPU telemetry via NVML (utilization, memory, power, clocks, throttling, XID errors), process and host metrics, inference engine metrics imported from Prometheus endpoints (vLLM, SGLang, TensorRT-LLM), and error capture from engine console output. No prompts or completions are recorded.
  • Built for AI agents — one local /signals endpoint serves every measurement as JSON an agent can read, interpret, and act on: profile, change flags or code, measure again.
  • Production feedback loop — optionally, signals upload to Graphsignal, and agents read production behavior back via the Signals API to tune the next deployment.

The name Graphsignal blends graph - the structure underlying inference - with signal - the telemetry and profiling data emitted during execution.

The Graphsignal Profiler is two processes. graphsignal-run wraps your launch command, injects the GPU activity library into the workload, and starts a watcher sidecar that collects everything — GPU activity, telemetry, engine metrics, errors — and serves it at http://127.0.0.1:18259/signals for as long as the workload runs. The workload itself carries only the low-overhead collection path; analysis, statistics, and the HTTP endpoint all live in the sidecar.

The profiler runs entirely locally: the endpoint listens on 127.0.0.1 by default, and nothing is written anywhere else unless you opt into the production feedback loop by setting GRAPHSIGNAL_API_KEY — with the key set, signals also upload to Graphsignal, where the Signals API reads them back.

  • Quick Start — install the profiler and profile a workload in minutes.
  • AI Optimization — put an AI agent in the loop, locally and against production.
  • GPU Probes — add instruments to code and kernels, by hand or by an agent.
  • Profiler CLIgraphsignal-run options, behavior, and environment variables.
  • Signals API — the endpoints an AI agent reads: the profiler’s local one, and Graphsignal’s.

Engine and platform specifics: vLLM, SGLang, TensorRT-LLM, dstack, PyTorch, CUDA, and ROCm.