video analysis2.0拆分,ffmpeg封装go接口库
chenshijun
2019-12-03 f29f269d999fc4bb8a9bfa85629f08b89971a2ef
csrc/common/gpu/info.cpp
@@ -369,6 +369,37 @@
    return suitable_gpu;
}
int getGPUPrior(const int need, const int reserved, const int lastChoice){
    nvGpuInfo_t gpu_info;
    int ret = get_gpu_info(&gpu_info);
    if(!ret){
        if (gpu_info.device_count == 0) return -1;
        int suitable_gpu = -1;
        int mem_idle = need;
        for(int i = 0; i < gpu_info.device_count; i++){
            if (i != lastChoice){
                int mem_free = gpu_info.devices[i].memory_free >> 20;
                if(mem_free > mem_idle){
                    mem_idle = mem_free;
                    suitable_gpu = i;
                }
            }
        }
        if (suitable_gpu != -1){
            return suitable_gpu;
        }else{
            if (gpu_info.device_count <= lastChoice) return -1;
            int mem_free = (gpu_info.devices[lastChoice].memory_free >> 20) - reserved;
            if(mem_free > need){
                return lastChoice;
            }
        }
    }
    return -1;
}
int getGPU(const int need){
    nvGpuInfo_t gpu_buf;