2026-02-13 项目全面优化

Bug 修复

  • pipeline.cpp: 修复 execute()task 引用类型混用 ./-> 的编译错误
  • GaussianBlurOperator: generateKernel() 添加 cudaMalloc/cudaMemcpy 错误检查,失败时正确清理
  • KernelConfig::forImage1D: intsize_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 架构表、项目结构描述、工程质量章节