可靠性与工程约束
可靠性来自哪里
这个项目的可靠性不是靠“看起来能跑”,而是来自三条线同时成立:
- 资源生命周期明确:使用
CudaBuffer<T>和执行上下文抽象,避免裸cudaMalloc/cudaFree。 - 错误语义明确:通过
SpMVError和 CUDA 检查宏把失败显式暴露出来。 - 测试贴近代码:通过 CPU 参考路径和聚焦的回归测试保障行为。
为什么这对展示项目很重要
面试或开源展示时,读者更容易相信一个项目,如果它能回答:
- 资源怎么释放?
- 失败怎么暴露?
- benchmark 数据怎么解释?
- 设计变化如何追溯?
可靠性清单
- RAII 封装 GPU 资源
- CPU 参考实现用于交叉验证
- property tests ≥ 100 次迭代
- GitHub Pages 把设计与引用一起公开