Skip to main content

GPUFlight Docs

Deep GPU kernel diagnostics for development. Continuous, low-overhead profiling for production.
Switch modes with one environment variable. Supports NVIDIA CUDA and AMD ROCm.

Quick start

1. Add to your build

CMakeLists.txt
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(gpufl
GIT_REPOSITORY https://github.com/gpu-flight/gpufl-client.git
GIT_TAG main)
FetchContent_MakeAvailable(gpufl)

target_link_libraries(my_app PRIVATE gpufl::gpufl)

2. Pick how data reaches the dashboard

Your application uploads telemetry live via a background thread — HttpLogSink. Best for local dev, SSH, and Jupyter. One process, no daemon.

main.cpp
#include "gpufl/gpufl.hpp"

int main() {
gpufl::InitOptions opts;
opts.app_name = "my_app";
opts.log_path = "/tmp/runs/my_app";
opts.backend_url = "https://api.gpuflight.com";
opts.api_key = std::getenv("GPUFL_API_KEY");
gpufl::init(opts);

// ... your CUDA / HIP work ...

gpufl::shutdown();

// Deferred upload — post-shutdown, never during the workload.
gpufl::UploadOptions uopts;
uopts.log_path = opts.log_path;
uopts.backend_url = opts.backend_url;
uopts.api_key = opts.api_key;
gpufl::uploadLogs(uopts);
}

Need step-by-step? Installation guide · How data reaches the dashboard