oneflow
oneflow copied to clipboard
feature/add-oneflow.distributions.normal.Normal
需求: https://github.com/Oneflow-Inc/oneflow/issues/10122
oneflow中 normal op
Note
/data/home/fengwen/package/oneflow/oneflow/ir/include/OneFlow/OneFlowUserOps.td:6822
def OneFlow_NormalOp : OneFlow_BaseOp<"normal", [NoMemoryEffect, NoGrad, DeclareOpInterfaceMethods<UserOpCompatibleInterface>]> {
let output = (outs
OneFlow_Tensor:$out
);
let attrs = (ins
DefaultValuedAttr<F64Attr, "0.">:$mean,
DefaultValuedAttr<F64Attr, "1.">:$std,
DefaultValuedAttr<SI64Attr, "0">:$seed,
OneFlow_DataType:$dtype,
ShapeAttr:$shape,
StrArrayAttr:$nd_sbp
);
let same_output_regst_num = 1;
let has_logical_tensor_desc_infer_fn = 1;
let has_physical_tensor_desc_infer_fn = 1;
let has_get_sbp_fn = 1;
let has_data_type_infer_fn = 1;
let has_nd_sbp_infer_fn = 1;
}
/data/home/fengwen/package/oneflow/oneflow/user/kernels/distributions/normal_kernel.h:57
// NormalDistribution<device_type, T> distribution(static_cast<T>(mean), static_cast<T>(std));
NormalDistribution 定义:
/data/home/fengwen/package/oneflow/oneflow/user/kernels/distributions/normal_distribution.h:33
NormalDistribution 实现
CUDA:
/data/home/fengwen/package/oneflow/oneflow/user/kernels/distributions/normal_distribution.cu
CPU:
/data/home/fengwen/package/oneflow/oneflow/user/kernels/distributions/normal_distribution.cpp