Spaces:
Running on Zero
Running on Zero
File size: 1,365 Bytes
8448f43 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | """Compile the project's native extension before accepting GPU requests."""
import importlib.util
import os
from pathlib import Path
import shutil
import subprocess
import sys
def prepare_solver():
# chumpy's legacy setup imports pip, which is absent in pip's isolated
# build environment. Install it on CPU with isolation disabled instead.
if importlib.util.find_spec("chumpy") is None:
subprocess.run(
[sys.executable, "-m", "pip", "install", "--no-build-isolation", "--no-deps", "chumpy==0.70"],
check=True, timeout=180,
)
if importlib.util.find_spec("flame_solver") is not None:
return
import torch
from torch.utils.cpp_extension import CUDA_HOME
print(f"[build] Python={sys.version} torch={torch.__version__} CUDA={torch.version.cuda} CUDA_HOME={CUDA_HOME} nvcc={shutil.which('nvcc')}", flush=True)
if CUDA_HOME is None:
raise RuntimeError("CUDA development toolkit unavailable: cannot build flame_solver in this runtime")
env = os.environ.copy()
env["TORCH_CUDA_ARCH_LIST"] = "12.0+PTX"
env["MAX_JOBS"] = "2"
source = Path(__file__).resolve().parent / "cuda_extensions/flame_solver"
subprocess.run(
[sys.executable, "-m", "pip", "install", "--no-build-isolation", "--no-deps", str(source)],
env=env, check=True, timeout=1800,
)
|