ai-infra-interview-305

第 38 题:稀疏化(sparsity)如何被编译器利用?2:4 structured sparsity的硬件支持?

题目

稀疏化(sparsity)如何被编译器利用?2:4 structured sparsity的硬件支持?


完整讲解

一、稀疏化如何被编译器利用?

稀疏化(sparsity)指权重或激活中大量为 0;编译器可 识别稀疏表示(如 COO、CSR、block-sparse、2:4 结构)并做:一、稀疏 kernel(只算非零或按块跳过);二、 图改写(把 dense op 换成 sparse op、或插入稀疏格式转换);三、 与融合/调度结合(如稀疏 matmul 后接的激活可融合进同一 kernel)。前提是 IR 或前端能表达「稀疏」——要么用稀疏类型/属性,要么用专门 op(如 SparseTensor、2:4 压缩 op)。

二、2:4 structured sparsity 是什么?

2:4 稀疏:每连续 4 个元素中恰好 2 个非零(2 个为 0);是 NVIDIA 在 Ampere 上支持的格式,硬件可 一条指令 完成「2:4 稀疏 × 稠密」的乘加,吞吐高于纯稠密。编译器/库(如 cuSPARSELt)需要:一、 把权重量化成 2:4 格式(含索引/元数据);二、 在图上用 2:4 稀疏 op(或调用库)替代原 dense matmul;三、 保证 layout 与硬件约定一致(如 4 元组内 2 非零的索引编码)。

三、硬件支持与编译配合


面试要点


记忆要点

  1. 稀疏利用:稀疏 kernel、图改写、融合;IR 需能表达稀疏或专用 op。
  2. 2:4 = 每 4 个中 2 个非零;Ampere Tensor Core 支持,需权重 2:4 编码。
  3. 编译器做 2:4 图替换与格式对接;非 2:4 稀疏多走软件 kernel。
返回模块 返回总览