本项目为 C/CUDA + Python 扩展混合工程,采用 CMake 构建,代码/头文件/产物结构规范,便于维护和部署。
include/:所有头文件(.h, .cuh)src/:所有实现文件(.c, .cu, .cpp)bin/:最终生成的可执行程序lib/:最终生成的动态库(如 Python 模块 .so)example/:测试数据、样例输入、测试脚本build/:cmake 构建临时目录(可删除)CMakeLists.txt:cmake 配置文件
以下操作均在项目根目录下完成。
rm -rf build bin libmkdir build
cd buildcmake .. -DCMAKE_BUILD_TYPE=Release- 此步会自动检测依赖(CUDA, pybind11, Python),并生成适合本机的 Makefile 和工程文件。
- 可用
Debug替换Release以生成带调试信息的版本。
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+。
- 路径找不到? 检查你是否在项目根目录执行命令,并确保数据/输入文件路径正确。
- 其他问题? 直接联系开发者,或参考源码内注释。