--sparsity
功能说明
 
     使能全局稀疏特性。
AMCT(简称AMCT)4选2结构化稀疏后输出的模型,可能存在weight连续4个Cin维度元素中至少有2个为0的场景,模型转换时通过使能全局稀疏开关,将该场景下的元素筛选成2个,从而节省后续推理的计算量,提高推理性能。其原理如下:
weight中每4个连续的元素,会生成两组2bit的index。index取值范围为{0, 1, 2},其中,第一个index表示前三个元素里面第1个非0元素的位置;第二个index表示后三个数里面最后一个非0数的位置。最终筛选成的index取值如下表格所示:
| 
          场景  | 
        
          ele0  | 
        
          ele1  | 
        
          ele2  | 
        
          ele3  | 
        
          Index[0]  | 
        
          Index[1]  | 
       
|---|---|---|---|---|---|---|
| 
          2个非0元素  | 
        
          0  | 
        
          0  | 
        
          X  | 
        
          Y  | 
        
          2'b10  | 
        
          2'b10  | 
       
| 
          0  | 
        
          X  | 
        
          0  | 
        
          Y  | 
        
          2'b01  | 
        
          2'b10  | 
       |
| 
          1个非0元素  | 
        
          0  | 
        
          0  | 
        
          0  | 
        
          X  | 
        
          2'b00  | 
        
          2'b10  | 
       
| 
          0  | 
        
          0  | 
        
          X  | 
        
          0  | 
        
          2'b10  | 
        
          2'b00  | 
       |
| 
          全0元素  | 
        
          0  | 
        
          0  | 
        
          0  | 
        
          0  | 
        
          2'b00  | 
        
          2'b00  | 
       
由于稀疏矩阵每4个int8元素将生成2个2bit的index和2个int8的稠密weight的元素,一个index为2bit,所以4个index组成一个int8的元素,因此最后输出的index矩阵的大小是稠密weight的1/4。其中:
index矩阵用来记录稀疏weight每4个元素中挑选出2个元素的index,在推理计算时由硬件读取,作为筛选元素的凭据。
各组件交互流程如下图所示:
    - AMCT工具对用户提供结构化稀疏的API接口,支持将稠密模型通过重训练的方式转成结构化稀疏的模型;输出基于框架的稀疏模型;模型结构上与稠密模型无差异,但在参数上已经实现了结构化稀疏,连续4个Cin维度元素中有2个为0。
 - FE根据sparsity=1,遍历所有支持结构化稀疏的算子类型(当前支持conv2d/matmulV2/fc)里的weight,确认当前的参数分布是否能采用4选2结构化稀疏特性。如果满足要求,将conv2d/matmulV2/fc替换为Conv2dCompress/MmatmulV2Compress/FCCompress,这三个算子原型新增Alg属性来区分使用的特性是weight压缩还是4选2结构化稀疏特性。
 - 插入CompressOp(复用weight压缩的CompressOp算子原型,增加Alg属性,用来区分weight压缩和结构化稀疏),完成结构化稀疏的weight重排和index生成。
 
参数取值
参数值:
- 1:表示开启4选2结构化稀疏。
 - 0:不开启稀疏特性。
 
参数默认值:0
推荐配置及收益
无。
示例
--sparsity=1
使用约束
使用该参数时,请确保模型是稀疏的模型,建议用户使用AMCT(TensorFlow)或AMCT(PyTorch)的组合压缩功能获取,且组合压缩只能是4选2结构化稀疏+量化感知训练模式。