Spaces:
Running
on
Zero
Running
on
Zero
# utils/version_info.py | |
import subprocess | |
import os | |
import sys | |
import gc | |
import gradio as gr | |
git = os.environ.get('GIT', "git") | |
def commit_hash(): | |
try: | |
return subprocess.check_output([git, "rev-parse", "HEAD"], shell=False, encoding='utf8').strip() | |
except Exception: | |
return "<none>" | |
def get_xformers_version(): | |
try: | |
import xformers | |
return xformers.__version__ | |
except Exception: | |
return "<none>" | |
def get_transformers_version(): | |
try: | |
import transformers | |
return transformers.__version__ | |
except Exception: | |
return "<none>" | |
def get_accelerate_version(): | |
try: | |
import accelerate | |
return accelerate.__version__ | |
except Exception: | |
return "<none>" | |
def get_safetensors_version(): | |
try: | |
import safetensors | |
return safetensors.__version__ | |
except Exception: | |
return "<none>" | |
def get_diffusers_version(): | |
try: | |
import diffusers | |
return diffusers.__version__ | |
except Exception: | |
return "<none>" | |
def get_open3d_version(): | |
try: | |
import open3d | |
return f"{open3d.__version__} cuda:{open3d.core.cuda.is_available()}" | |
except Exception: | |
return "<none>" | |
def get_torch_info(): | |
from torch import __version__ as torch_version_, version, cuda, backends | |
initialize_cuda() | |
try: | |
info = [torch_version_, f"CUDA Version:{version.cuda}", f"Available:{cuda.is_available()}", f"flash attention enabled: {backends.cuda.flash_sdp_enabled()}", f"Capabilities: {cuda.get_device_capability(0)}", f"Device Name: {cuda.get_device_name(0)}", f"Device Count: {cuda.device_count()}",f"Devices: {os.environ['CUDA_VISIBLE_DEVICES']}", f"Zero :{os.environ['CUDA_MODULE_LOADING']}"] | |
del torch_version_, version, cuda, backends | |
return info | |
except Exception: | |
del torch_version_, version, cuda, backends | |
return "<none>" | |
def release_torch_resources(): | |
from torch import cuda | |
if cuda.is_available(): | |
# Clear the CUDA cache | |
cuda.empty_cache() | |
cuda.ipc_collect() | |
# Delete any objects that are using GPU memory | |
#for obj in gc.get_objects(): | |
# if is_tensor(obj) or (hasattr(obj, 'data') and is_tensor(obj.data)): | |
# del obj | |
# Run garbage collection | |
del cuda | |
gc.collect() | |
def initialize_cuda(): | |
from torch import cuda, version | |
if cuda.is_available(): | |
device = cuda.device("cuda") | |
print(f"CUDA is available. Using device: {cuda.get_device_name(0)} with CUDA version: {version.cuda}") | |
result = "cuda" | |
else: | |
#device = cuda.device("cpu") | |
print("CUDA is not available. Using CPU.") | |
result = "cpu" | |
return result | |
def versions_html(): | |
from torch import __version__ as torch_version_ | |
python_version = ".".join([str(x) for x in sys.version_info[0:3]]) | |
commit = commit_hash() | |
# Define the Toggle Dark Mode link with JavaScript | |
toggle_dark_link = ''' | |
<a href="#" onclick="document.body.classList.toggle('dark'); return false;" style="cursor: pointer; text-decoration: underline;"> | |
Toggle Dark Mode | |
</a> | |
''' | |
v_html = f""" | |
version: <a href="https://huggingface.co/spaces/Surn/HexaGrid/commit/{"huggingface" if commit == "<none>" else commit}" target="_blank">{"huggingface" if commit == "<none>" else commit}</a> | |
 •  | |
python: <span title="{sys.version}">{python_version}</span> | |
 •  | |
torch: {torch_version_} | |
 •  | |
diffusers: {get_diffusers_version()} | |
 •  | |
transformers: {get_transformers_version()} | |
 •  | |
safetensors: {get_safetensors_version()} | |
 •  | |
open3d: {get_open3d_version()} | |
 •  | |
gradio: {gr.__version__} | |
 •  | |
{toggle_dark_link} | |
<br> | |
Full GPU Info:{get_torch_info()} | |
""" | |
del torch_version_ | |
return v_html |