conda create -n fischbach_edge python=3.10
pip install PyQt6 pyqtgraph matplotlib
conda install -y cmake ninja pkg-config numpy

휘쉬바크 컴퓨터에는 아래 설치가 필요했음

sudo apt install -y libxcb-cursor0

Opencv cuda 버전 설치

export OPENCV_VERSION=4.10.0
git clone --depth 1 -b ${OPENCV_VERSION} <https://github.com/opencv/opencv.git>
git clone --depth 1 -b ${OPENCV_VERSION} <https://github.com/opencv/opencv_contrib.git>

중요: CUDA_ARCH_BIN은 본인 GPU 컴퓨트 캐퍼빌리티에 맞춰야 합니다. (예: RTX 30=8.6, RTX 40=8.9, A100=8.0, RTX A6000=8.6, RTX 50=12.0)

conda install -c conda-forge -y "openexr=3.*" "imath=3.*" "libdeflate" "zlib"
conda install -c conda-forge libavif aom dav1d rav1e svt-av1
# 12.1
conda install --override-channels -c "nvidia/label/cuda-12.1.0" -c nvidia --strict-channel-priority "cuda-toolkit=12.1.*"
conda install cudnn=8.9.2 -c nvidia

# 12.8 엣지
conda install nvidia::cuda-toolkit==12.8.0
conda install --channel "nvidia/label/cuda-12.8.0" cudnn # 9.17이 설치됨
conda install -c conda-forge cudnn=8.9.7 cuda-version=12.8

conda env config vars set CUDA_HOME=$CONDA_PREFIX
conda deactivate
conda activate fischbach_edge

python -m pip install torch==2.3.0 torchvision==0.18.0 --index-url <https://download.pytorch.org/whl/cu121>
python -m pip install plyfile tqdm dacite
cd ~/src/opencv
mkdir -p build && cd build

PY_SITE=$(python -c "import site; print(site.getsitepackages()[0])")

cmake -G Ninja \\
  -D CMAKE_BUILD_TYPE=Release \\
  -D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX \\
  -D CMAKE_PREFIX_PATH=$CONDA_PREFIX \\
  -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \\
  -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \\
  -D BUILD_opencv_python3=ON \\
  -D PYTHON3_EXECUTABLE=$(which python) \\
  -D PYTHON3_PACKAGES_PATH=$PY_SITE \\
  -D WITH_CUDA=ON \\
  -D WITH_CUDNN=ON \\
  -D OPENCV_DNN_CUDA=ON \\
  -D WITH_CUBLAS=ON \\
  -D CUDA_FAST_MATH=ON -D ENABLE_FAST_MATH=ON \\
  -D CUDA_ARCH_BIN=8.6 \\
  -D WITH_AVIF=ON \\
  ..
ninja -j"$(nproc)"
ninja install