LinearSparseOperation

功能

稀疏量化Linear。

约束

定义

struct LinearSparseParam{
    bool transposeA = false;
    bool transposeB = true;
    uint32_t tilingK = 1;
    uint32_t tilingN = 1;
};

成员

成员名称

描述

transposeA

是否转置A矩阵,默认不转置。当前仅支持transposeA为false。

transposeB

是否转置B矩阵,默认转置。当前仅支持transposeB = true。

tilingK

压缩参数,由外部压缩算法决定,默认为1,目前仅支持值为8。

tilingN

压缩参数,由外部压缩算法决定,默认为1,目前仅支持值为8。

输入

参数

维度

数据类型

格式

描述

x

  1. x: [batch, m, k]

    weight: [c]

  2. x: [m,k]

    weight: [c]

int8

ND

当前只支持int8。

k是32的整数倍。

weight

int8

ND/NZ

当前只支持int8。

bias

[n] / [1,n]

int32

ND

n是16的整数倍。

deqScale

[n] / [1,n]

uint64/int64

ND

反量化的Scale。

compressIdx

[x]

int8

ND

压缩信息,x由以下计算得出。

x = k_index * n_index * 8

k_index = ceil(k1 / tilingK)

n_index = ceil(n1 / tilingN)

k1 = k / 32

n1 = n / 16

其中,ceil()函数为向上取整。

输出

参数

维度

数据类型

格式

output

根据以上输入维度,输出维度为:

  1. output: [batch, m, n]
  2. output: [m ,n]

float16

ND