@triton.jit
def _gelu_glu_fwd_kernel_(output_ptr, input_ptr, output_row_stride,
    input_row_stride, output_col_stride, input_col_stride, n_rows, n_cols,
    BLOCK_SIZE: tl.constexpr):
    col_idx = tl.program_id(0)
    row_idx = tl.arange(0, BLOCK_SIZE)
    x = tl.load(input_ptr + row_idx * input_row_stride + col_idx *
        input_col_stride, mask=tl.arange(0, BLOCK_SIZE) < n_rows, other=-
        float('inf'))
    gate = tl.load(input_ptr + row_idx * input_row_stride + (col_idx + 
        n_cols // 2) * input_col_stride, mask=tl.arange(0, BLOCK_SIZE) <
        n_rows, other=-float('inf'))
    gate_cube = gate * gate * gate
    beta = 0.7978845608028654
    kappa = 0.044715
    inner = beta * (gate + kappa * gate_cube)
    inner_tanh = tanh(inner)
    gate_gelu = 0.5 * gate * (inner_tanh + 1)
    gelu_glu = gate_gelu * x
    tl.store(output_ptr + row_idx * output_row_stride + col_idx *
        output_col_stride, gelu_glu, mask=tl.arange(0, BLOCK_SIZE) < n_rows)
