Skip to content

架构概览

GPU SpMV 现在把架构刻意收缩到最小闭环:稀疏存储、Kernel 执行、窄而稳定的公开 API。

系统架构

设计原则

原则实现方式好处
分层架构存储与计算分离更易维护
策略选择基于矩阵统计量选择 Kernel执行路径可预测
RAII 管理CudaBuffer<T> 与执行上下文资源生命周期更安全
错误语义化SpMVError 与显式返回值诊断更清晰

核心层次

存储层

  • CSR Matrix — 通用稀疏格式
  • ELL Matrix — 面向规则稀疏分布的列主序布局

Kernel 层

Kernel线程策略最佳场景带宽效率
Scalar CSR1 线程/行极稀疏 (nnz/row < 4)~40-50%
Vector CSR1 Warp/行均匀分布~65-75%
Merge Path动态分块高度倾斜~70-80%
ELL Kernel列并行行长度均匀~80-90%

API 层

  • spmv_csr() — CSR 格式执行
  • spmv_ell() — ELL 格式执行
  • spmv_auto_config() — 自动选择 Kernel

这份架构总览最重要的三件事

  1. 数据如何流动:从稀疏存储到选定 Kernel,再到校验后的输出。
  2. 为什么自动选择成立:围绕 avg_nnz_per_row 与偏斜度,而不是不透明调参。
  3. 为什么它可信:RAII、显式错误和聚焦测试共同提供约束。

相关文档

MIT License