StatelessNormal

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:根据指定的均值(mean)和标准差(stdev)生成服从正态分布的随机数张量,使用基于计数器的Philox4x32-10随机数生成算法和Box-Muller变换,严格对标GPU精度(相同seed+offset产生相同随机序列),支持mean和stdev为标量或张量。

  • 计算公式:

    y=BoxMuller(Philox(seed,offset))×stdev+meany = BoxMuller(Philox(seed, offset)) \times stdev + mean

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
shape 输入 输出张量的形状。 INT64 ND
seed 输入 Philox随机数生成器的种子。 INT64 ND
offset 输入 Philox随机数生成器的偏移量,必须为4的倍数。 INT64 ND
mean 输入 正态分布的均值,支持标量或与输出同形状的张量。 FLOAT、FLOAT16、BF16 ND
stdev 输入 正态分布的标准差,支持标量或与输出同形状的张量。 FLOAT、FLOAT16、BF16 ND
y 输出 输出指定形状的正态分布随机值。 FLOAT、BF16、FLOAT16 ND

约束说明

  • offset必须为4的倍数。
  • mean和stdev的数据类型与输出y锁步一致。
  • mean和stdev为tensor时,shape必须与输出y的shape一致(不支持广播)。
  • 仅支持SIMT编程模型(Ascend 950系列)。

调用说明

调用方式 样例代码 说明
aclnn调用 test_aclnn_stateless_normal.cpp 通过[aclnnInplaceNormal]接口方式调用StatelessNormal算子,mean和stdev均为标量。