第六部分:VTK进阶(第172章 vtk-m加速器管线)
文章目录
- 1 `vtk-m` 概览与 VTK 集成
- 2 典型算子:`vtkmContour`/`vtkmClip`
- 3 CPU/GPU 后端切换与设备策略
- 4 数据桥与零拷贝(VTK <-> vtk-m)
- 5 回退路径与一致性验证
- 6 完整 C++ 实例:`vtkmContour` 加速等值面
1 vtk-m 概览与 VTK 集成
vtk-m 提供统一的“工作let(worklet)/调度器(dispatcher)”编程模型,支持多后端(如 TBB、CUDA、OpenMP、Kokkos)。VTK 通过 Filters/Accelerators/Vtkm 模块暴露一组与标准过滤器接口一致的替代实现:
vtkmContour对应vtkContourFilter/vtkFlyingEdges3D类似功能;vtkmClip、vtkmThreshold、vtkmWarpScalar等算子;- 运行期自动判断数据结构与设备可用性,尽量在设备侧执行,失败时回退 CPU。
VTK 端关注点:
- API 一致性:输入/输出数据对象类型、关键参数与行为尽量对齐;
- 失败回退:当设备内存不足或类型不支持时,回退到 VTK CPU 算子保证正确性;
- 性能:对大体素体/大规模点云,GPU 加速能显著降低时延。
