 template<typename DType>
 __global__ void LayerNormFusedForwardKernelContig(const int nbatch,
                                                   const int nchannel,
-                                                  const float eps,
+                                                  const DType eps,
                                                   const DType* __restrict__ in_data,
                                                   const DType* __restrict__ gamma,
                                                   const DType* __restrict__ beta,

 *
 */
template<typename DType>
__device__ void welford_online_sum_step(const DType curr,
                                   DType& mean,
                                   DType& sigma2,
                                   DType& count) {
  count += DType(1);
  DType delta = curr - mean;
  mean += delta / count;

 *  TODO(sxjscience) Explore the possibility of int lhs_count and rhs_count
 */
template<typename DType>
__device__ __inline__ void chan_merge_partition(const DType lhs_mean,
                                                const DType lhs_sigma2,
                                                const DType lhs_count,
                                                DType& rhs_mean,
                                                DType& rhs_sigma2,
                                                DType& rhs_count) {
  DType delta = rhs_mean - lhs_mean;
  DType nA = lhs_count;
  DType nB = rhs_count;
