| | |
| | | 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; |
| | | int mem_free = (gpu_info.devices[i].memory_free >> 20) - reserved; |
| | | if(mem_free > mem_idle){ |
| | | mem_idle = mem_free; |
| | | suitable_gpu = i; |
| | |
| | | |
| | | return -1; |
| | | } |
| | | |
| | | bool satisfy(const int index, const int need, const int reserved){ |
| | | nvGpuInfo_t gpu_info; |
| | | |
| | | int ret = get_gpu_info(&gpu_info); |
| | | if(!ret){ |
| | | if (gpu_info.device_count == 0) return -1; |
| | | |
| | | for(int i = 0; i < gpu_info.device_count; i++){ |
| | | if (i == index){ |
| | | int mem_free = (gpu_info.devices[i].memory_free >> 20) - reserved - need; |
| | | if(mem_free > 0){ |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | int test(void) |
| | | { |
| | | nvGpuInfo_t gpu_buf; |