repository of Interpretable Deconvolution for Calcium imaging.
- Obtain
pdmglobally on your system. Either follow the official guide, or if you prefer to use conda,conda install -c conda-forge pdminto yourbaseenvironment. - Clone the repo and enter:
git clone https://github.com/Aharoni-Lab/indeca.git cd indeca - If you want to use conda/mamba to handle dependencies, create a conda environment:
Otherwise skip to next step
conda create -n indeca -c conda-forge python=3.12 conda activate indeca pdm install
- Install cuda-toolkit 11.8 into the environment:
mamba env create -n indeca-dev -f environment/cuda.yml conda activate indeca-dev
- Obtain cuosqp source code:
cd .. git clone https://github.com/osqp/cuosqp.git - Find the computing capability of your GPU and modify line 120-125 of
osqp_sources/CMakeLists.txtunder the cuosqp repo accordingly:set(CMAKE_CUDA_ARCHITECTURES 89) # modify the compute capability 89 to match your GPU # if (DFLOAT) # set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --gpu-architecture=compute_89 --gpu-code=sm_89") # else() # # To use doubles we need compute capability 6.0 for atomic operations # set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --gpu-architecture=compute_89 --gpu-code=sm_89") # endif()
- Obtain a copy of cuda examples 11.8 from here
- Add the extracted cuda examples folder to the include directories:
- add the directory after line 5 of
osqp_sources/lin_sys/cuda/cuda_pcg/CMakeLists.txt - modify the directory to point to the cuda examples folder at line 27 of
osqp_sources/algebra/cuda/CMakeLists.txt:set(helper_cuda_header_dir /path/to/cuda-samples-11.8/Common)
- add the directory after line 5 of
- Run
CUDA_PATH=whatever python setup.py install. If you followed the steps correctly,CUDA_PATHshouldn't matter (but it has to be set). - Verify that
cuosqpis installed under your environment.