Mini-ImagePipe
DAG-based Heterogeneous GPU Image Processing Pipeline — 基于有向无环图的异构 GPU 图像处理流水线。
核心特性
- DAG 任务调度 — 自动依赖分析与并行执行
- 多流调度 — CUDA 多流并行,最大化 GPU 利用率
- 内存池管理 — 设备端内存池 + 主机端 Pinned Memory Pool
- 丰富算子 — 高斯模糊、Sobel 边缘检测、缩放、色彩空间转换
- 流水线执行 — 支持批量处理和单图处理
快速开始
# 使用 CMake Presets 构建
cmake --preset release
cmake --build --preset release
# 运行测试
ctest --preset release
# 运行 Demo
./build-release/demo_pipeline
架构
Pipeline
├── TaskGraph (DAG)
│ ├── TaskNode (GaussianBlur)
│ ├── TaskNode (Sobel)
│ └── TaskNode (Resize)
├── Scheduler (多流调度)
├── MemoryManager (设备内存池)
└── PinnedMemoryPool (主机内存池)
技术栈
| 类别 | 技术 |
|---|---|
| 语言 | CUDA C++17 |
| 构建 | CMake 3.18+ |
| GPU | SM 70+ (Volta → Hopper) |
| 测试 | Google Test v1.14.0 |