Files
perfect/include/perfect/gpu_turbo.hpp
2019-09-19 15:53:43 -05:00

36 lines
798 B
C++

#pragma once
#include "detail/nvidia/nvidia-ml.hpp"
#include "result.hpp"
namespace perfect {
struct GpuTurboState {
bool enabled;
GpuTurboState() : enabled(false) {}
};
Result get_gpu_turbo_state(GpuTurboState *state, unsigned int idx) {
return detail::is_gpu_turbo_enabled(&(state->enabled), idx);
}
inline bool is_turbo_enabled(GpuTurboState state) { return state.enabled; }
Result set_gpu_turbo_state(GpuTurboState state, unsigned int idx) {
if (state.enabled) {
return detail::enable_gpu_turbo(idx);
} else {
return detail::disable_gpu_turbo(idx);
}
}
inline Result disable_gpu_turbo(unsigned int idx) {
return detail::disable_gpu_turbo(idx);
}
inline Result enable_gpu_turbo(unsigned int idx) {
return detail::enable_gpu_turbo(idx);
}
}; // namespace perfect