16 : input_shape_{input.shape()},
17 input_strides_{input.strides()},
18 input_type_{input.dtype()},
19 out_shape_{out.shape()},
20 out_strides_{out.strides()},
21 out_type_{out.dtype()},
22 approximate_{approximate},
23 output_size_{out.numel()},
25 is_input_contiguous_{input.IsContiguous()},
26 is_out_contiguous_{out.IsContiguous()},
27 device_index_{out.device().index()} {
28 assert(input_shape_ == out_shape_ &&
29 "`GeluInfinilm` input and output shapes must match");
30 assert(input_type_ == out_type_ &&
31 "`GeluInfinilm` input and output dtypes must match");
32 assert((approximate.empty() || approximate ==
"none") &&
33 "`GeluInfinilm` only supports exact approximation");
34 assert(!out.HasBroadcastDim() &&
35 "`GeluInfinilm` output must not have broadcasted dimensions");