Download diagnose.py from nvidia/dvlt: direct link, hf CLI and curl.
- Browser
- Download file 2.2 kB
-
https://huggingface.co/spaces/nvidia/dvlt/resolve/main/diagnose.py
- Command line
-
hf download hf://spaces/nvidia/dvlt/diagnose.py
-
curl -L -o diagnose.py https://huggingface.co/spaces/nvidia/dvlt/resolve/main/diagnose.py
2.2 kB
| """Temporary ZeroGPU isolation entrypoint; select a stage with DVLT_DIAGNOSTIC_MODE.""" | |
| import os | |
| os.environ.setdefault('OMP_NUM_THREADS', '1') | |
| os.environ.setdefault('MKL_NUM_THREADS', '1') | |
| os.environ.setdefault('OPENBLAS_NUM_THREADS', '1') | |
| import faulthandler | |
| import sys | |
| from pathlib import Path | |
| import platform | |
| import time | |
| faulthandler.enable() | |
| def child_trace(): | |
| print('DIAGNOSTIC: child forked', flush=True) | |
| faulthandler.dump_traceback_later(30, repeat=True) | |
| os.register_at_fork(after_in_child=child_trace) | |
| import spaces | |
| import torch | |
| import gradio as gr | |
| torch.set_num_threads(1) | |
| sys.path.insert(0, str(Path(__file__).resolve().parent / 'src')) | |
| mode = os.getenv('DVLT_DIAGNOSTIC_MODE', 'minimal') | |
| print(f'DIAGNOSTIC: mode={mode}, python={platform.python_version()}, torch={torch.__version__}, cuda={torch.version.cuda}, gradio={gr.__version__}', flush=True) | |
| if mode in ('open3d', 'onnxruntime', 'rerun', 'cv2', 'accelerate', 'torchvision'): | |
| import importlib | |
| importlib.import_module(mode) | |
| print(f'DIAGNOSTIC: imported {mode}', flush=True) | |
| if mode in ('imports', 'model'): | |
| import dvlt.scripts.gradio_demo | |
| print('DIAGNOSTIC: DVLT imports complete', flush=True) | |
| if mode == 'model': | |
| from accelerate import Accelerator | |
| from dvlt.util.model_registry import ModelEntry | |
| accelerator = Accelerator(mixed_precision='bf16') | |
| entry = ModelEntry(label='DVLT', config_name='dvlt') | |
| entry.ensure_loaded(accelerator) | |
| print('DIAGNOSTIC: DVLT model loaded', flush=True) | |
| def probe(): | |
| print('DIAGNOSTIC: GPU function entered', flush=True) | |
| start = time.monotonic() | |
| x = torch.ones((32, 32), device='cuda') | |
| result = float((x @ x).sum().item()) | |
| torch.cuda.synchronize() | |
| print('DIAGNOSTIC: CUDA calculation complete', flush=True) | |
| return {'mode': mode, 'result': result, 'expected': 32768.0, 'gpu': torch.cuda.get_device_name(0), 'seconds': time.monotonic()-start} | |
| with gr.Blocks() as demo: | |
| gr.Markdown(f'# ZeroGPU diagnostic — {mode}') | |
| run = gr.Button('Run GPU probe') | |
| out = gr.JSON() | |
| run.click(probe, outputs=out, api_name='probe') | |
| if __name__ == '__main__': | |
| demo.queue().launch(ssr_mode=False) | |