Skip to content

wangkingh/xc_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xc_python 项目说明

本项目为 C/CUDA + Python 扩展混合工程,采用 CMake 构建,代码/头文件/产物结构规范,便于维护和部署。


目录结构简述

  • include/ :所有头文件(.h, .cuh)
  • src/ :所有实现文件(.c, .cu, .cpp)
  • bin/ :最终生成的可执行程序
  • lib/ :最终生成的动态库(如 Python 模块 .so)
  • example/ :测试数据、样例输入、测试脚本
  • build/ :cmake 构建临时目录(可删除)
  • CMakeLists.txt :cmake 配置文件

编译流程

以下操作均在项目根目录下完成。

1. 清理旧的构建产物(推荐每次全新编译时执行)

rm -rf build bin lib

2. 新建构建目录并进入

mkdir build
cd build

3. 运行 CMake 配置工程

cmake .. -DCMAKE_BUILD_TYPE=Release
  • 此步会自动检测依赖(CUDA, pybind11, Python),并生成适合本机的 Makefile 和工程文件。
  • 可用 Debug 替换 Release 以生成带调试信息的版本。

4. 编译所有目标

make -j$(nproc)
  • -j$(nproc) 会用多核加速编译。
  • 编译完成后产物会被自动放到 bin/lib/ 目录。

生成的文件说明

  • 可执行文件

    • 路径:bin/xc_for_large

    • 用法举例(在项目根目录下运行):

      bin/xc_for_large -A example/VV.AAKH.U.txt -B example/VV.ABNH.U.txt -O example/output -C 500
  • Python 扩展模块(动态库)

    • 路径:lib/xc_cuda.cpython-<版本>-x86_64-linux-gnu.so

    • 导入用法(Python 端):

      import sys
      sys.path.append("lib")
      import xc_cuda

其他说明

  • 所有头文件、实现文件已在 CMakeLists.txt 内自动配置,目录结构调整后无需手动修改 include 语句。
  • 推荐只用 CMake 进行构建。老的 Makefile 可删除。
  • 构建产生的 build/bin/lib/ 目录无需加入版本控制,可在 .gitignore 忽略。

常见问题

  • 缺少依赖? 确保系统已安装 CUDA、Python3、pybind11(可通过 pip 安装)、CMake 3.12+。
  • 路径找不到? 检查你是否在项目根目录执行命令,并确保数据/输入文件路径正确。
  • 其他问题? 直接联系开发者,或参考源码内注释。

About

临时处理脚本 & CUDA 工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published