Environment and execution
September 9, 2026 ยท View on GitHub
The environment uses Python 3.10.20, PyTorch 2.4.1+cu118, torchvision 0.19.1, NumPy 1.23.5 and Lightning 2.4.0. The lockfile contains exact transitive versions. Scikit-image 0.19.3 preserves the inherited multichannel API.
Native dependencies:
| Component | Source revision | Build |
|---|---|---|
| PyTorch3D | 89653419d0973396f3eff1a381ba09a07fffc2ed (v0.7.7) | CUDA 11.8, GCC/G++ 9, arch 8.6 |
| TorchSparse | 462dea4a701f87a7545afb3616bf2cf53dd404f3 | Same; sparsehash 2.0.4 headers in .cache/toolchain |
| tiny-cuda-nn, ZJU extra | 4892659e015b12bd2fce446b8a8e33e646b21746 | Same, TCNN_CUDA_ARCHITECTURES=86 |
| spconv | cu118 distribution | Locked binary wheel |
scripts/bootstrap_cuda.py first installs the non-native dependency set, then builds extensions without isolated build environments so they see the installed PyTorch. Build architecture settings must match the intended runtime device.
The StyleGAN image-filter plugin compiles at first use. The bootstrap writes .cache/cuda_environment.json and .cache/activate_cuda.fish, selecting CUDA 11.8/GCC 9 for project-local JIT builds. The GPU launcher reads that JSON; for direct commands, run source .cache/activate_cuda.fish in fish. The JIT helper infers the visible GPU architecture.
W&B runs offline. ImageNet EfficientNet and PIQ/VGG weights are downloaded on first use and stored in the PyTorch cache.
For a recorded job, the launcher checks that the chosen device is idle and records wall time, command, host, exit code and process IDs:
uv run --no-sync python scripts/run_gpu.py --gpu GPU-YOUR-UUID --smi-id 0 --name example \
-- uv run --no-sync python -m eghumannerf infer \
--checkpoint models/thu_fullsrdf.ckpt --subjects 401 --limit-val-batches 1 \
--output outputs/example
Use the device's UUID for CUDA and its nvidia-smi index or PCI address for --smi-id.