用户定义的归约运算符¶
以下函数是 NCCL 公开的 API,用于创建和销毁自定义归约运算符,以用于归约集合。
ncclRedOpCreatePreMulSum¶
-
ncclResult_t
ncclRedOpCreatePreMulSum
(ncclRedOp_t* op, void* scalar, ncclDataType_t datatype, ncclScalarResidence_t residence, ncclComm_t comm)¶
创建一个新的归约运算符,该运算符在通过求和与对等值进行归约之前,先在本地将输入值与给定的标量相乘。输入值和标量都是 datatype 类型。仅用于针对 comm 和 datatype 启动的集合。residence 参数指示 scalar 指向的内存应该在此函数返回之前立即由主机取消引用 (ncclScalarHostImmediate),还是在执行归约集合期间由设备取消引用 (ncclScalarDevice)。返回后,新创建的运算符的句柄存储在 op 中。
ncclRedOpDestroy¶
-
ncclResult_t
ncclRedOpDestroy
(ncclRedOp_t op, ncclComm_t comm)¶
销毁归约运算符 op。该运算符必须已由 ncclRedOpCreatePreMul 使用匹配的通信器 comm 创建。一旦给出该运算符的最后一个 NCCL 函数返回,就可以销毁运算符。