binary_shift_tile

void ckernel::binary_shift_tile_init()

Please refer to documentation for any_init.

Left Shift

template<DataFormat data_format>
void ckernel::binary_left_shift_tile(uint32_t idst0, uint32_t idst1, uint32_t odst)

Performs an elementwise shift operation to the left on the input at idst0, by input at idst1: y = x0 << x1 Both inputs must be of same data type only. Output overwrites odst in DST.

The DST register buffer must be in acquired state via acquire_dst call. This call is blocking and is only available on the compute engine. A maximum of 4 tiles from each operand can be loaded into DST at once, for a total of 8 tiles, when using 16 bit formats. This gets reduced to 2 tiles from each operand for 32 bit formats.

Return value: None

Argument Description

idst0 The index of the tile in DST register buffer to use as first operand

idst1 The index of the tile in DST register buffer to use as second operand

odst The index of the tile in DST register buffer to use as output

Template Parameters:

data_formatTemplate argument specifying the data type. Supported data formats are: DataFormat::Int32, DataFormat::UInt32, DataFormat::UInt16

Right Shift

template<DataFormat data_format>
void ckernel::binary_right_shift_tile(uint32_t idst0, uint32_t idst1, uint32_t odst)

Performs an elementwise shift operation to the right on the input at idst0, by input at idst1: y = x0 >> x1 Both inputs must be of same data type only. Output overwrites odst in DST.

The DST register buffer must be in acquired state via acquire_dst call. This call is blocking and is only available on the compute engine. A maximum of 4 tiles from each operand can be loaded into DST at once, for a total of 8 tiles, when using 16 bit formats. This gets reduced to 2 tiles from each operand for 32 bit formats.

Return value: None

Argument Description

idst0 The index of the tile in DST register buffer to use as first operand

idst1 The index of the tile in DST register buffer to use as second operand

odst The index of the tile in DST register buffer to use as output

Template Parameters:

data_formatTemplate argument specifying the data type. Supported data formats are: DataFormat::Int32, DataFormat::UInt32, DataFormat::UInt16

Logical Right Shift

template<DataFormat data_format>
void ckernel::binary_logical_right_shift_tile(uint32_t idst0, uint32_t idst1, uint32_t odst)

Performs an elementwise logical shift operation to the right on the input at idst0, by input at idst1: y = x0 >> x1 Both inputs must be same data type only. Output overwrites odst in DST.

The DST register buffer must be in acquired state via acquire_dst call. This call is blocking and is only available on the compute engine. A maximum of 4 tiles from each operand can be loaded into DST at once, for a total of 8 tiles, when using 16 bit formats. This gets reduced to 2 tiles from each operand for 32 bit formats.

Return value: None

Argument Description

idst0 The index of the tile in DST register buffer to use as first operand

idst1 The index of the tile in DST register buffer to use as second operand

odst The index of the tile in DST register buffer to use as output

Template Parameters:

data_formatTemplate argument specifying the data type. Supported data formats are: DataFormat::Int32, DataFormat::UInt32, DataFormat::UInt16