开发者
资源
[object Object][object Object][object Object]undefined
[object Object]
  • API功能:TP切分场景下,实现matmul和reduce_scatter的融合,融合算子内部实现计算和通信流水并行。支持perchannel,pertoken量化。

  • 计算公式: x1x1代表输入[object Object]

    基础场景:

    output=reducescatter(x1@x2+bias)output = reducescatter(x1 \mathbin{@} x2 + bias)

    量化场景:

    output=reducescatter((x1_scalex2_scale)(x1@x2+bias))output = reducescatter((x1\_scale * x2\_scale) * (x1 \mathbin{@} x2 + bias))
[object Object]
[object Object]
[object Object]
[object Object]
  • input ([object Object]):必选参数。数据类型支持[object Object][object Object][object Object],数据格式支持NDND,输入shape支持2维,形如(m, k)。

  • x2 ([object Object]):必选参数。数据类型与[object Object]一致,数据格式支持NDNDNZNZNZNZ仅在[object Object][object Object]时支持。输入shape支持2维,形如(k, n)。轴满足matmul算子入参要求,k轴相等,且k轴取值范围为[256, 65535),m轴需要整除[object Object]

  • hcom ([object Object]):必选参数。通信域handle名,通过get_hccl_comm_name接口获取。

  • world_size ([object Object]):必选参数。通信域内的rank总数。

    • [object Object]Atlas A2 训练系列产品[object Object]支持2、4、8卡,支持HCCS链路all mesh组网(每张卡和其它卡两两相连)。
    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]支持2、4、8、16、32卡,支持HCCS链路double ring组网(多张卡按顺序组成一个圈,每张卡只和左右卡相连)。
  • [object Object]*[object Object]:必选参数,代表其之前的变量是位置相关的,必须按照顺序输入;之后的变量是可选参数,位置无关,需要使用键值对赋值,不赋值会使用默认值。

  • reduce_op ([object Object]):可选参数。reduce操作类型,当前仅支持'sum',默认值为'sum'。

  • bias ([object Object]):可选参数。数据类型支持[object Object][object Object],数据格式支持NDND格式。数据类型需要和[object Object]保持一致。[object Object]仅支持一维,且维度大小与output的第1维大小相同。当前版本暂不支持[object Object]输入为非0的场景。

  • x1_scale ([object Object]):可选参数。mm左矩阵反量化参数。数据类型支持[object Object],数据格式支持NDND格式。数据维度为(m, 1), 支持pertoken量化。

  • x2_scale ([object Object]):可选参数。mm左矩阵反量化参数。数据类型支持[object Object][object Object],数据格式支持NDND格式。数据维度为(1, n), 支持perchannel量化。如需传入[object Object]数据类型的,需要提前调用torch_npu.npu_trans_quant_param来获取[object Object]数据类型的[object Object]

  • comm_turn ([object Object]):可选参数。表示rank间通信切分粒度,默认值为0,表示默认的切分方式。当前版本仅支持输入0。

  • output_dtype ([object Object]):可选参数。表示输出数据类型。仅支持在量化场景且[object Object][object Object]均为[object Object]时,可指定输出数据类型为[object Object][object Object],默认值为[object Object]

  • comm_mode ([object Object]):可选参数。表示通信模式,支持[object Object][object Object]两种模式。[object Object]模式仅支持基础场景。[object Object]模式支持基础场景和量化场景。默认值为[object Object]

[object Object]

[object Object]

shape维度和[object Object]保持一致。 基础场景时数据类型和[object Object]保持一致。 量化场景下,[object Object][object Object]数据类型时,输出数据类型为[object Object][object Object][object Object]均为[object Object]时, 输出数据类型由[object Object]指定,默认为[object Object]

[object Object]
  • [object Object]不支持输入转置后的tensor,[object Object]转置后输入,需要满足shape的第一维大小与[object Object]的最后一维相同,满足matmul的计算条件。
  • [object Object][object Object]时:
    • 该接口仅在训练场景下使用。
    • 该接口支持图模式。
    • [object Object]Atlas A2 训练系列产品[object Object]:一个模型中的通算融合算子(AllGatherMatmul、MatmulReduceScatter、MatmulAllReduce),仅支持相同通信域。
  • [object Object][object Object]时,训练和推理场景均可使用。
[object Object]
  • 单算子模式调用

    [object Object]
  • 图模式调用

    [object Object]