当前位置: 首页 > news >正文

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.
    解决方法:
    查询显卡计算能力:
    nvidia-smi --query-gpu=compute_cap --format=csv
    
    修改 CMakeLists.txt 的 CMAKE_CUDA_FLAGS的设置:
    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文件

http://www.dtcms.com/a/354822.html

相关文章:

  • 【贪心 或 DFS - 面试题】小于n最大数
  • 记一次雪花算法 ID 精度丢失的Bug:前端接收到的 Long 被“四舍五入”了?
  • Java HTTP 请求:Unirest 使用指南及与 HttpClient 对比
  • 数据湖与数据仓库
  • 「数据获取」25年最新安徽省路网数据安徽省路网分类数据(获取方式看绑定的资源)
  • 自动化三维测量仪工业零件自动外观三维测量-中科米堆CASAIM
  • 三维视频融合驱动视频孪生创新:智汇云舟引领数字孪生产业新范式
  • Kubernetes一EFK日志架构
  • 在 Ubuntu 24.04 上安装二进制文件(逐步指南)
  • HCIA备考知识点总结:第二章华为VRP系统知识点
  • 嵌入式学习日记(36)TCP并发服务器构建——epoll
  • leetcode算法刷题的第二十天
  • 力扣18:四数之和
  • CodeSouler v2.4.0 版本更新
  • 生成式推荐模型的长序列特征:离线存储
  • 超越文本:深入剖析多模态AI的架构原理
  • c++ 观察者模式 订阅发布架构
  • FFmpeg05:编解码实战
  • 机器学习框架下:金价近3400关口波动,AI量化模型对PCE数据的动态监测与趋势预测
  • 企业通讯软件以安全为基,搭建高效的通讯办公平台
  • RA4M2环境搭建与新建工程
  • 新手向:Python开发简易股票价格追踪器
  • Linux内核IPv4 RAW套接字深度解析:从数据包构造到可靠传输的挑战
  • Dify 和 LangChain 区别对比总结
  • 【实操教学】ArcGIS 如何进行定义坐标系
  • Python实现点云基于法向量、曲率和ISS提取特征点
  • 【GM3568JHF】FPGA+ARM异构开发板 使用指南:显示与触摸
  • 第二章:Cesium 视图控制与相机操作
  • Java集合操作:Apache Commons Collections4启示录
  • React中优雅管理CSS变量的最佳实践