SIMD Instruction Execution Model
SIMD stands for single-instruction, multiple-data stream processing (SIMD), which means that a single instruction can be used to perform multiple data operations. The basic operation units of an SIMD instruction of Ascend AI Processor include two dimensions: space (in the unit of blocks) and time (in the unit of repeats). Generally, a block is 32 bytes, including 16 elements of type float16/uint16/int16, eight elements of type float32/uint32/int32, or 32 elements of type int8/uint8.
The address offset of the same block between adjacent iterations supports only the linear mode. That is, you need to specify the address offset of each block in the next iteration repeat.
The main operands of TIK SIMD instructions are tensors, and a few operands are scalars or immediates. According to the data flow, the operations can be classified into element-wise operations and reduce operations. The element-wise operations can be further classified into single-operand, dual-operand, and triple-operand instructions (only operands that participate in the scalar operations are counted).