输入输出

输入

参数

维度

数据类型

格式

描述

input

[m, k]/[batch, m, k]

  • 浮点:float16/bf16
  • 量化:float16/bf16/int8

ND

矩阵乘运算的A矩阵。

k为32的整数倍。

当type为ALL_GATHER_LINEAR_REDUCE_SCATTER时,不支持量化。

weight

[k, n]

NZ:浮点额外支持[1, n/16, k, 16]

  • 浮点:float16/bf16
  • 量化:int8
  • 浮点:ND/NZ
  • 量化:ND

权重,矩阵乘的B矩阵。“backend”为“lcoc”时float16/bf16支持NZ;“backend”为“hccl”或“lccl”时仅float16支持NZ。

当type为ALL_GATHER_LINEAR_REDUCE_SCATTER时,不支持量化。

bias

  • “quantType”“per_tensor”时支持:[1]
  • “quantType”“per_channel”时支持:[1, n]/[n]
  • “quantType”“为”“per_group”时支持:[k/quantGroupSize, n]
  • W8A16量化场景:float16/bf16
  • W8A8量化场景:int32

ND

叠加的偏置矩阵。

n为16的整数倍。

ALL_GATHER_LINEAR_REDUCE_SCATTER时,不支持。

deqScale

  • “quantType”“per_tensor”时支持:[1]
  • “quantType”“per_channel”时支持:[1, n]/[n]
  • “quantType”“为”“per_group”时支持:[k/quantGroupSize, n]
  • W8A16量化场景:float16/bf16
  • W8A8量化场景:int64

ND

反量化的scale。

量化时输入。

当type为ALL_GATHER_LINEAR_REDUCE_SCATTER时不支持。

residual

[n]

float16/bf16

ND

残差,用于叠加到最后的输出结果上。

当type为ALL_GATHER_LINEAR_REDUCE_SCATTER时不支持。

输出

参数

维度

数据类型

格式

描述

output

  • 当type为linear_all_reduce/pure_linear:[m, n]/[batch, m, n]
  • 当type为linear_reduce_scatter:[m/rankSize, n]/[batch/rankSize, m, n]
  • 当type为all_gather_linear:[m*rankSize, n]/[batch*rankSize, m, n];
  • 当type为ALL_GATHER_LINEAR_REDUCE_SCATTER:[m*agDim/rsDim, n]

float16/bf16

ND

输出tensor,维度数与x一致。

intermediateOutput

[m*rankSize, n]/[batch*rankSize, m, n]

float16/bf16

ND

输出tensor,维度数与x一致。

“keepIntermediate”为true且“ParallelType”使用“ALL_GATHER_LINEAR”时生效。