CPC G06F 9/3001 (2013.01) [G06F 7/483 (2013.01); G06F 7/5443 (2013.01); G06F 9/30036 (2013.01); G06F 9/30109 (2013.01); G06F 9/30112 (2013.01); G06F 9/3893 (2013.01)] | 23 Claims |
1. An apparatus comprising:
a memory controller;
an interconnect fabric coupled to the memory controller; and
a plurality of data processing circuits coupled to the interconnect fabric, the plurality of data processing circuits to perform operations, at least one data processing circuit comprising:
operand storage to store a first plurality of source data elements at a first precision and a second plurality of source data elements at a second precision;
execution circuitry comprising a plurality of multiply-accumulate circuits to execute a plurality of fused multiply-accumulate (FMA) instructions to perform FMA operations using at least a subset of the first plurality of source data elements and the second plurality of source data elements to generate a plurality of result data elements at the second precision, a multiply-accumulate circuit of the plurality of multiply-accumulate circuits comprising:
multiplier circuitry to multiply each source data element of a respective subset of source data elements of the first plurality of source data elements and a corresponding source data element of a respective subset of source data elements of the second plurality of source data elements to generate a plurality of products; and
adder circuitry to add the plurality of products and an initial accumulation value, if provided, or an accumulation value from a prior multiply-accumulate circuit in a chain of multiply-accumulate circuits to generate a new accumulation value,
wherein the new accumulation value is a result accumulation value if the multiply-accumulate circuit is a last multiply-accumulate circuit in the chain of multiply-accumulate circuits or the new accumulation value is to be provided to a next multiply-accumulate circuit in the chain.
|