SplinePSF——应用于光学成像中的 PSF 建模
一、SplinePSF 工具概述
SplinePSF 是一个基于 C++/C 和 CUDA 实现的样条函数工具库,最初为 DeepSMLM 软件包设计,但计划扩展为独立支持的 Python/MATLAB 接口。其核心功能是通过高效计算实现样条插值,适用于超分辨率显微镜(SMLM)等需要高精度点扩散函数(PSF)建模的场景。
技术实现
- 样条函数优化:通过 CUDA 实现并行计算,显著提升大规模数据处理的效率。
- 跨平台兼容性*:代码设计考虑跨平台部署,支持主流操作系统和硬件环境。
二、SplinePSF 安装与编译指南
SplinePSF源码下载
系统平台及软件:Windows 11、Anaconda、CUDA
1、配置 CUDA 环境
参考方法:Windows 安装 CUDA 和 cuDNN
确保已安装与显卡匹配的 CUDA 驱动。通过 nvidia-smi
检查 CUDA 版本,需与 environment.yaml
中指定的 cudatoolkit
版本兼容。若版本不匹配,需调整 Conda 或系统环境变量。
2、安装依赖库
通过 Conda Prompt安装 environment.yaml
中列出的依赖项,也可直接利用conda env create -f environment.yaml
创建。建议分步安装如下:
# 创建环境
conda create -n spline_dev python=3.8 -y
conda activate spline_dev
# 安装构建工具
conda install -c conda-forge cmake=3.15 -y
conda install -c conda-forge ninja -y
conda install -c conda-forge setuptools -y
# 安装核心依赖
conda install -c conda-forge numpy -y
conda install -c conda-forge pybind11>=2.6.1 -y
# 安装CUDA开发工具(如果需要)
conda install -c conda-forge cudatoolkit-dev -y
如果安装出现ERROR: G:\software\Anaconda\envs\spline_dev\pkgs\cudatoolkit-dev\cuda_11.7.0_516.01_windows.exe Cannot open the file as archive
由于系统平台是Windows,不是Linux。将最后CUDA开发工具按照命令换成:
conda install -c conda-forge cudatoolkit=11.7 -y
3、编译生成相应的whl
直接进行编译可能会遇到以下问题:
- C/C++ 编译问题
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. Compiler: CMAKE_CXX_COMPILER-NOTFOUND Build flags: ;DVERSION_INFO=\"0.10.1.dev0\" Id flags: The output was: 系统找不到指定的文件
解决方法:
安装 Visual Studio 并勾选 “使用 C++ 的桌面开发” 和 “Windows 10/11 SDK”。并且通过 Conda 安装编译工具链,语句如下。conda install -c conda-forge compilers cmake -y
- CUDA 编译参数设置问题
由于,采用系统的CUDA计算能力与编译设置的参数不匹配。会出现nvcc fatal : Value 'sm_37' is not defined for option 'gpu-architecture' [3/7] Building CXX object CMakeFiles\spline.dir\src\pybind_spline.cpp.obj ninja: build stopped: subcommand failed.
解决方法:
查询显卡计算能力:
修改 CMakeLists.txt 的 CMAKE_CUDA_FLAGS的设置:nvidia-smi --query-gpu=compute_cap --format=csv
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --gpu-architecture=sm_75 --gpu-architecture=sm_80 --gpu-architecture=sm_86")
编译生成 Wheel 文件
在Conda执行以下命令生成适配当前环境的 Wheel 文件:
cd 上述文件路径
python setup.py bdist_wheel
注意事项
- Python 版本、操作系统及架构需与目标环境一致。
- 若编译失败,检查
CMakeError.log
定位具体错误。
补充内容
python 3.8和3.9编译好的whl文件