Files
mlx-swift-examples/Applications/LLMEval/ViewModels/DeviceStat.swift
Ashraful Islam c37018d7d2 feat: adds gpu usages stat in the toolbar (#36)
* feat: adds gpu usages stat in the toolbar
2024-03-25 10:29:54 -07:00

43 lines
849 B
Swift

import Foundation
import LLM
import MLX
@Observable
class DeviceStat {
var gpuUsage = GPU.snapshot()
private var initialGPUSnapshot = GPU.snapshot()
private var timer: Timer?
init() {
startTimer()
}
deinit {
stopTimer()
}
private func startTimer() {
timer?.invalidate()
timer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { [weak self] _ in
self?.updateStats()
}
}
private func stopTimer() {
timer?.invalidate()
timer = nil
}
private func updateStats() {
updateGPUUsages()
}
private func updateGPUUsages() {
let gpuSnapshotDelta = initialGPUSnapshot.delta(GPU.snapshot())
DispatchQueue.main.async { [weak self] in
self?.gpuUsage = gpuSnapshotDelta
}
}
}