Show mem free info

This commit is contained in:
cmdr2 2022-11-14 20:35:47 +05:30
parent 36846618ec
commit 8707f88c07
3 changed files with 27 additions and 7 deletions

View File

@ -330,7 +330,7 @@
<script src="media/js/inpainting-editor.js?v=1"></script> <script src="media/js/inpainting-editor.js?v=1"></script>
<script src="media/js/image-modifiers.js?v=6"></script> <script src="media/js/image-modifiers.js?v=6"></script>
<script src="media/js/auto-save.js?v=8"></script> <script src="media/js/auto-save.js?v=8"></script>
<script src="media/js/main.js?v=18"></script> <script src="media/js/main.js?v=19"></script>
<script src="media/js/themes.js?v=4"></script> <script src="media/js/themes.js?v=4"></script>
<script src="media/js/dnd.js?v=9"></script> <script src="media/js/dnd.js?v=9"></script>
<script> <script>

View File

@ -190,10 +190,15 @@ function playSound() {
} }
} }
function setSystemInfo(devices) { function setSystemInfo(devices) {
let cpu = devices.all.cpu let cpu = devices.all.cpu.name
let allGPUs = Object.keys(devices.all).filter(d => d != 'cpu') let allGPUs = Object.keys(devices.all).filter(d => d != 'cpu')
let activeGPUs = Object.keys(devices.active) let activeGPUs = Object.keys(devices.active)
const ID_TO_TEXT = d => `${devices.all[d]} (${d})`
function ID_TO_TEXT(d) {
let info = devices.all[d]
return `${info.name} (${d}) (${info.mem_free.toFixed(1)}Gb free / ${info.mem_total.toFixed(1)} Gb total)`
}
allGPUs = allGPUs.map(ID_TO_TEXT) allGPUs = allGPUs.map(ID_TO_TEXT)
activeGPUs = activeGPUs.map(ID_TO_TEXT) activeGPUs = activeGPUs.map(ID_TO_TEXT)
@ -1422,7 +1427,7 @@ async function getDevices() {
useGPUsField.innerHTML = '' useGPUsField.innerHTML = ''
allDeviceIds.forEach(device => { allDeviceIds.forEach(device => {
let deviceName = res['all'][device] let deviceName = res['all'][device]['name']
let deviceOption = `<option value="${device}">${deviceName} (${device})</option>` let deviceOption = `<option value="${device}">${deviceName} (${device})</option>`
useGPUsField.insertAdjacentHTML('beforeend', deviceOption) useGPUsField.insertAdjacentHTML('beforeend', deviceOption)
}) })

View File

@ -356,6 +356,20 @@ def get_devices():
'active': {}, 'active': {},
} }
def get_device_info(device):
if device == 'cpu':
return {'name': device_manager.get_processor_name()}
mem_free, mem_total = torch.cuda.mem_get_info(device)
mem_free /= float(10**9)
mem_total /= float(10**9)
return {
'name': torch.cuda.get_device_name(device),
'mem_free': mem_free,
'mem_total': mem_total,
}
# list the compatible devices # list the compatible devices
gpu_count = torch.cuda.device_count() gpu_count = torch.cuda.device_count()
for device in range(gpu_count): for device in range(gpu_count):
@ -363,9 +377,9 @@ def get_devices():
if not device_manager.is_device_compatible(device): if not device_manager.is_device_compatible(device):
continue continue
devices['all'].update({device: torch.cuda.get_device_name(device)}) devices['all'].update({device: get_device_info(device)})
devices['all'].update({'cpu': device_manager.get_processor_name()}) devices['all'].update({'cpu': get_device_info('cpu')})
# list the activated devices # list the activated devices
if not manager_lock.acquire(blocking=True, timeout=LOCK_TIMEOUT): raise Exception('get_devices' + ERR_LOCK_FAILED) if not manager_lock.acquire(blocking=True, timeout=LOCK_TIMEOUT): raise Exception('get_devices' + ERR_LOCK_FAILED)
@ -376,7 +390,8 @@ def get_devices():
weak_data = weak_thread_data.get(rthread) weak_data = weak_thread_data.get(rthread)
if not weak_data or not 'device' in weak_data or not 'device_name' in weak_data: if not weak_data or not 'device' in weak_data or not 'device_name' in weak_data:
continue continue
devices['active'].update({weak_data['device']: weak_data['device_name']}) device = weak_data['device']
devices['active'].update({device: get_device_info(device)})
finally: finally:
manager_lock.release() manager_lock.release()