oneflow icon indicating copy to clipboard operation
oneflow copied to clipboard

feature/add-oneflow.distributions.normal.Normal

Open ccssu opened this issue 3 years ago • 1 comments

需求: https://github.com/Oneflow-Inc/oneflow/issues/10122

ccssu avatar Apr 17 '23 03:04 ccssu

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

ccssu avatar Apr 18 '23 02:04 ccssu