@triton.jit
def triton_swiglu_forward(input_a_ptr, input_b_ptr, output_ptr, row_stride,
    num_columns: tl.constexpr, BLOCK_SIZE: tl.constexpr):
    prog_id = tl.program_id(0).to(tl.int64)
    input_a_ptr += prog_id * row_stride
    input_b_ptr += prog_id * row_stride
    output_ptr += prog_id * row_stride
    column_offsets = tl.arange(0, BLOCK_SIZE)
    active_mask = column_offsets < num_columns
    input_a_row = tl.load(input_a_ptr + column_offsets, mask=active_mask,
        other=0).to(tl.float32)
    input_b_row = tl.load(input_b_ptr + column_offsets, mask=active_mask,
        other=0)
    result_row = silu(input_a_row) * input_b_row
    tl.store(output_ptr + column_offsets, result_row, mask=active_mask)
