fetching vram for amd gpus

pull/20/head
FlightlessMango 4 years ago committed by jackun
parent d97719e3d6
commit 23280e0e78
No known key found for this signature in database
GPG Key ID: 119DB3F1D05A9ED3

@ -17,13 +17,21 @@
using namespace std;
int gpuLoad = 0, gpuTemp = 0, cpuTemp = 0;
FILE *amdGpuFile = nullptr, *amdTempFile = nullptr, *cpuTempFile = nullptr;
int gpuLoad = 0, gpuTemp = 0, cpuTemp = 0, gpuMemUsed = 0, gpuMemTotal = 0;
FILE *amdGpuFile = nullptr, *amdTempFile = nullptr, *cpuTempFile = nullptr, *amdGpuVramTotalFile = nullptr, *amdGpuVramUsedFile = nullptr;
int numCpuCores = std::thread::hardware_concurrency();
pthread_t cpuThread, gpuThread, cpuInfoThread, nvidiaSmiThread;
struct amdGpu {
int load;
int temp;
int64_t memoryUsed;
int64_t memoryTotal;
};
extern struct amdGpu amdgpu;
string exec(string command) {
char buffer[128];
string result = "";
@ -75,14 +83,30 @@ void *getNvidiaGpuInfo(void *){
void *getAmdGpuUsage(void *){
rewind(amdGpuFile);
fflush(amdGpuFile);
if (fscanf(amdGpuFile, "%d", &gpuLoad) != 1)
gpuLoad = 0;
if (fscanf(amdGpuFile, "%d", &amdgpu.load) != 1)
amdgpu.load = 0;
gpuLoad = amdgpu.load;
rewind(amdTempFile);
fflush(amdTempFile);
if (fscanf(amdTempFile, "%d", &gpuTemp) != 1)
gpuTemp = 0;
gpuTemp /= 1000;
if (fscanf(amdTempFile, "%d", &amdgpu.temp) != 1)
amdgpu.temp = 0;
amdgpu.temp /= 1000;
gpuTemp = amdgpu.temp;
rewind(amdGpuVramTotalFile);
fflush(amdGpuVramTotalFile);
if (fscanf(amdGpuVramTotalFile, "%lld", &amdgpu.memoryTotal) != 1)
amdgpu.memoryTotal = 0;
amdgpu.memoryTotal /= (1024 * 1024);
gpuMemTotal = amdgpu.memoryTotal;
rewind(amdGpuVramUsedFile);
fflush(amdGpuVramUsedFile);
if (fscanf(amdGpuVramUsedFile, "%lld", &amdgpu.memoryUsed) != 1)
amdgpu.memoryUsed = 0;
amdgpu.memoryUsed /= (1024 * 1024);
gpuMemUsed = amdgpu.memoryUsed;
pthread_detach(gpuThread);
return NULL;

Loading…
Cancel
Save