SPRUIG6K January 2018 – March 2024
The C7000 Host Emulation Matrix Multiply Accelerator (MMA) interface is the same as the interface used with the C7000 compiler on the target hardware with one important difference. All intrinsics and definitions mentioned in
c7x_mma.h
are also defined and implemented for C7000 Host Emulation and can be used in the same ways. However, programs must explicitly indicate when the MMA state advances by calling the provided __HWAADV() intrinsic. This is because, unlike the target hardware, the MMA that is emulated for the host can't be tied to the notion of a CPU clock.
Programs must keep track of instructions that are intended to execute in parallel and explicitly advance the MMA state by calling __HWAADV() after each set of "parallel" instructions.
To make portability easier between host and target modes, the __HWAADV() intrinsic is defined as an empty macro by the target compiler.