2026-02-13 项目全面优化
Bug 修复
- pipeline.cpp: 修复
execute() 中 task 引用类型混用 ./-> 的编译错误
- GaussianBlurOperator:
generateKernel() 添加 cudaMalloc/cudaMemcpy 错误检查,失败时正确清理
- KernelConfig::forImage1D:
int → size_t 防止大图像宽高相乘时整数溢出
CMake 现代化
- 移除全局
include_directories,改用 target_include_directories + generator expressions
- 添加 sm_89 (Ada Lovelace) 和 sm_90 (Hopper) CUDA 架构
- 添加编译选项 generator expressions(Debug:
-G -lineinfo, Release: -O3)
- GTest 从
find_package 切换为 FetchContent v1.14.0,无需预装
- 修复
test_main.cpp 冗余:移除 GTest::gtest_main 链接,保留手动 main()
- 移除多余的显式
cudart 链接
- 添加
CMAKE_EXPORT_COMPILE_COMMANDS ON
新增
CMakePresets.json(default/release/minimal 三种预设)
.clang-format(Google 风格,4 空格缩进,100 列限宽)
.github/workflows/ci.yml(CUDA 容器构建 + clang-format 检查)
代码优化
- MemoryManager: Device 内存池从 first-fit 改为 best-fit,与 Pinned 池策略一致
- GaussianBlurOperator: 中间缓冲区改用
MemoryManager 分配,不再直接调用 cudaMalloc
- Sobel: 移除未使用的共享内存 kernel 死代码(~100 行)
文档
- README 添加 CI badge、CMake Presets 使用说明、GPU 架构表、项目结构描述、工程质量章节