文档
注册
评分
提单
论坛
小AI

--sparsity

功能说明

Atlas 200/300/500 推理产品场景下,不支持该参数。

Atlas 推理系列产品场景下,不支持该参数。

Atlas 训练系列产品场景下,不支持该参数。

使能全局稀疏特性。

AMCT(简称AMCT)4选2结构化稀疏后输出的模型,可能存在weight连续4个Cin维度元素中至少有2个为0的场景,模型转换时通过使能全局稀疏开关,将该场景下的元素筛选成2个,从而节省后续推理的计算量,提高推理性能。其原理如下:

weight中每4个连续的元素,会生成两组2bit的index。index取值范围为{0, 1, 2},其中,第一个index表示前三个元素里面第1个非0元素的位置;第二个index表示后三个数里面最后一个非0数的位置。最终筛选成的index取值如下表格所示:

表1 筛选规则

场景

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,在推理计算时由硬件读取,作为筛选元素的凭据。

各组件交互流程如下图所示:

图1 交互流程
  1. AMCT工具对用户提供结构化稀疏的API接口,支持将稠密模型通过重训练的方式转成结构化稀疏的模型;输出基于框架的稀疏模型;模型结构上与稠密模型无差异,但在参数上已经实现了结构化稀疏,连续4个Cin维度元素中有2个为0。
  2. FE根据sparsity=1,遍历所有支持结构化稀疏的算子类型(当前支持conv2d/matmulV2/fc)里的weight,确认当前的参数分布是否能采用4选2结构化稀疏特性。如果满足要求,将conv2d/matmulV2/fc替换为Conv2dCompress/MmatmulV2Compress/FCCompress,这三个算子原型新增Alg属性来区分使用的特性是weight压缩还是4选2结构化稀疏特性。
  3. 插入CompressOp(复用weight压缩的CompressOp算子原型,增加Alg属性,用来区分weight压缩和结构化稀疏),完成结构化稀疏的weight重排和index生成。

关联参数

无。

由于硬件约束,该参数不能与--compress_weight_conf同时使用。

参数取值

参数值:

  • 1:表示开启4选2结构化稀疏。
  • 0:不开启稀疏特性。

参数默认值:0

推荐配置及收益

无。

示例

--sparsity=1

使用约束

使用该参数时,请确保模型是稀疏的模型,建议用户使用AMCT(TensorFlow)或AMCT(PyTorch)的组合压缩功能获取,且组合压缩只能是4选2结构化稀疏+量化感知训练模式。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词