OpenDroneMap-ODM/opendm/gpu.py

37 wiersze
954 B
Python
Czysty Zwykły widok Historia

2021-03-23 19:15:47 +00:00
import os
2021-11-24 16:26:03 +00:00
import sys
2021-12-16 19:36:17 +00:00
import shutil
2021-02-09 17:14:05 +00:00
from opendm import log
from repoze.lru import lru_cache
2021-11-12 15:41:41 +00:00
def gpu_disabled_by_user():
return bool(os.environ.get('ODM_NO_GPU'))
2021-02-09 17:14:05 +00:00
@lru_cache(maxsize=None)
2021-12-16 19:36:17 +00:00
def has_popsift():
try:
2021-12-16 19:36:17 +00:00
from opensfm import pypopsift
return True
except:
return False
2021-02-09 17:14:05 +00:00
2021-12-16 19:36:17 +00:00
@lru_cache(maxsize=None)
def has_gpu():
if gpu_disabled_by_user():
log.ODM_INFO("Disabling GPU features (ODM_NO_GPU is set)")
2021-02-09 17:14:05 +00:00
return False
if sys.platform == 'win32':
nvcuda_path = os.path.join(os.environ.get('SYSTEMROOT'), 'system32', 'nvcuda.dll')
if os.path.isfile(nvcuda_path):
2021-12-16 19:36:17 +00:00
return True
else:
log.ODM_INFO("No CUDA drivers detected, using CPU")
2021-12-16 19:36:17 +00:00
return False
else:
2021-12-16 19:36:17 +00:00
if shutil.which('nvidia-smi') is not None:
return True
else:
log.ODM_INFO("nvidia-smi not found in PATH, using CPU")
return False