#!/usr/bin/env bash # 로컬(Docker 없음) 개발 환경 구축. sudo 불필요 — 전부 $HOME 아래에 설치된다. # # bash scripts/local_setup.sh # 처음 한 번 (재실행해도 안전) # source scripts/local_env.sh # 이후 매 셸마다 # # docker/Dockerfile 과 같은 스택: CUDA 12.1 / PyTorch 2.4.1 / gsplat 1.4.0 / Vulkan. set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$ROOT" export MAMBA_ROOT_PREFIX="${MAMBA_ROOT_PREFIX:-$HOME/micromamba}" MM="$HOME/.local/bin/micromamba" # 1. micromamba if [[ ! -x "$MM" ]]; then echo "[setup] micromamba 설치 → $MM" mkdir -p "$HOME/.local" curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xj -C "$HOME/.local" bin/micromamba fi # 2. 시스템 패키지 (컴파일러, CUDA 12.1, Vulkan, cmake) if "$MM" env list | grep -qE '^\s*vkgs\s'; then "$MM" update -y -n vkgs -f environment.yml else "$MM" create -y -f environment.yml fi # conda 의 activate.d 스크립트들이 미정의 변수를 참조하므로 -u 를 잠시 푼다. set +u # shellcheck source=local_env.sh source scripts/local_env.sh set -u # 3. Python — Dockerfile 3단계와 동일한 순서/핀 python -m pip install --upgrade pip setuptools wheel python -m pip install --index-url https://download.pytorch.org/whl/cu121 \ torch==2.4.1 torchvision==0.19.1 python -m pip install -r docker/requirements.txt python -m pip install --no-deps nuscenes-devkit==1.1.11 # 화질 평가 지표 LPIPS·DISTS (nusim.recon.cycle 벤치마크) python -m pip install --no-deps lpips==0.1.4 piq==0.8.0 # closed-loop 평가 환경 인터페이스 (nusim.sim.closed_loop.VkgsEnv — HUGSIM 식 Gymnasium env) python -m pip install gymnasium==1.0.0 # 4. gsplat — 설치 시점에 CUDA 확장을 미리 빌드한다 (첫 학습 때 JIT 10분 방지) if ! python -c "import gsplat" 2>/dev/null; then MAX_JOBS=8 python -m pip install --no-build-isolation gsplat==1.4.0 fi # 5. nusim (editable) — nusim / vkgs-doctor 명령 등록 python -m pip install --no-deps -e src/nusim mkdir -p cache/ccache outputs echo echo "[setup] 완료. source scripts/local_env.sh && vkgs-doctor"