From 6f0c11092b0a39265c6af723571906e4f834706d Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 31 五月 2019 16:50:20 +0800
Subject: [PATCH] add info

---
 gpu/info.cpp |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/gpu/info.cpp b/gpu/info.cpp
index d38a8ae..f387ef2 100644
--- a/gpu/info.cpp
+++ b/gpu/info.cpp
@@ -301,7 +301,7 @@
                 goto gpu_fail;
             }
 
-            if(process_buf_size >= 0){
+            if(process_buf_size > 0){
                 infos->devices[i].running_processes = process_buf_size;
             }
     
@@ -369,7 +369,7 @@
     return suitable_gpu;
 }
 
-int getGPU(const int need){
+int getIdleGPU(const int need){
     nvGpuInfo_t gpu_buf;
 
     int ret = get_gpu_info(&gpu_buf);
@@ -381,6 +381,60 @@
 
     return -1;
 }
+
+    // unsigned int decoder_utilization;
+    // unsigned int encoder_utilization;
+    // unsigned int gpu_utilization;
+    // unsigned int memory_utilization;
+    // unsigned int temperature;
+    // unsigned int running_processes;
+
+    // unsigned long long memory_total;
+    // unsigned long long memory_free;
+    // unsigned long long memory_used;
+
+char *getGpuInfo(){
+
+    nvGpuInfo_t gpu_info;
+    int flag = get_gpu_info(&gpu_info);
+
+    char * ret= NULL;
+
+    if(!flag){
+
+        char f[] = "gpu";
+        char s[] = "|";
+
+        ret = (char*)malloc(1024 * gpu_info.device_count);
+        int len = 0;
+
+        char tmp[1024];
+
+        for(int i = 0; i < gpu_info.device_count; i++){
+            memset(tmp, 0, 1024);
+
+            nvGpuUnitInfo_t g = gpu_info.devices[i];
+            sprintf(tmp, "%s%s%d%s%d%s%d%s%d%s%d%s%llu%s%llu%s%llu%s",
+            f,s,
+            g.gpu_utilization,s,
+            g.temperature,s,
+            g.decoder_utilization,s,
+            g.encoder_utilization,s,
+            g.running_processes,s,
+            g.memory_total,s,
+            g.memory_free,s,
+            g.memory_used,s);
+
+            int l = strlen(tmp);
+            memcpy(ret+len, tmp, l);
+            len += l;
+        }
+        ret[len] = '\0';
+    }
+    
+    return ret;
+}
+
 int test(void)
 {
     nvGpuInfo_t gpu_buf;

--
Gitblit v1.8.0