+// Holds some metrics for GPU memory usage. Currently only exposed for NVIDIA cards
+// (no-op on all other platforms).
+
+class GPUMemoryStats {
+public:
+ GPUMemoryStats(bool verbose);
+ void update();
+
+private:
+ bool verbose, supported;
+
+ // Metrics.
+ std::atomic<int64_t> metric_memory_gpu_total_bytes{0};
+ std::atomic<int64_t> metric_memory_gpu_dedicated_bytes{0};
+ std::atomic<int64_t> metric_memory_gpu_used_bytes{0};
+ std::atomic<int64_t> metric_memory_gpu_evicted_bytes{0};
+ std::atomic<int64_t> metric_memory_gpu_evictions{0};
+};
+