当前位置: 首页 > 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.xdnf.cn/news/1382959.html

相关文章:

  • 详细介绍Linux 内存管理struct page数据结构中的_count和_mapcount有什么区别?
  • 图论好题推荐-逛公园
  • 【LInux】常用命令笔记
  • ArkUI框架之Canvas 画布
  • 什么是最小二乘法
  • 二、开关电源的EMC改善措施
  • CVPR2025丨VL2Lite:如何将巨型VLM的“知识”精炼后灌入轻量网络?这项蒸馏技术实现了任务专用的极致压缩
  • 虚幻基础:角色变换角色视角蒙太奇运动
  • 基于SpringBoot的老年人健康数据远程监控管理系统【2026最新】
  • 嵌入式开发学习———Qt软件环境下的C++学习(七)
  • 图论基础篇
  • Mybatis中缓存机制的理解以及优缺点
  • 微服务相关面试题
  • stable-baseline3介绍
  • 个人博客运行3个月记录
  • mac m4执行nvm install 14.19.1报错,安装低版本node报错解决
  • 【STM32】G030单片机的窗口看门狗
  • Flutter:ios打包ipa,证书申请,Xcode打包,完整流程
  • LeetCode Hot 100 第7天
  • mac系统本地部署Dify步骤梳理
  • 仓颉编程语言青少年基础教程:输入输出
  • 模拟实现Linux中的进度条
  • [Mysql数据库] 知识点总结5
  • 天津医科大学肿瘤医院冷热源群控系统调试完成:以 “精准控温 + 高效节能” 守护医疗核心场景
  • 实战演练(一):从零构建一个功能完备的Todo List应用
  • Spring事务管理机制深度解析:从JDBC基础到Spring高级实现
  • 力扣(LeetCode) ——965. 单值二叉树(C语言)
  • C#写的一键自动测灯带的应用 AI帮写的。
  • [灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU之串口DMA
  • list 手动实现 1