IP Library › Granted Patent US 10,228,938
Granted Patent B2
US 10,228,938 · App. 15/396,345 · Granted Mar 12, 2019

Apparatus and method for instruction-based flop accounting

Inventors: Karthik Raman (Hillsboro, OR); Ariel Slonim (Haifa, IL); Ady Tal (Zichron Yaacove, IL)
Assignee: Intel Corporation
G06F9/30014G06F9/30065G06F9/30072G06F11/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,228,938
App. No.
15/396,345
Granted
Mar 12, 2019
Kind
B2
Abstract

An apparatus and method are described for floating point operation (FLOP) accounting. For example, one embodiment of a processor comprises: an instruction fetch unit to fetch instructions from system memory, the instructions including at least one masked vector floating point instruction to perform operations on a plurality of floating point data elements; a mask register to store a mask value associated with the masked vector floating point instruction; a decoder to decode the masked vector floating point instruction; and floating point operations (FLOP) accounting circuitry to read the mask register to determine a number of floating point operations to be performed during execution of the masked vector floating point instruction.

Claims (51)

1. A processor comprising:

an instruction fetch unit to fetch instructions, the instructions including at least one masked vector floating point instruction to perform operations on a plurality of floating point data elements;

a mask register to store a mask value associated with the masked vector floating point instruction;

a decoder to decode the masked vector floating point instruction; and

floating point operations (FLOP) accounting circuitry to read the mask register to determine a number of floating point operations to be performed during execution of the masked vector floating point instruction.

2. The processor as in claim 1 wherein the FLOP accounting circuitry is to determine the number of floating point operations based on a number of bits set within the mask register.

3. The processor as in claim 2 wherein a determination is made that a floating point operation is performed for each bit set within the mask register.

4. The processor as in claim 3 wherein the FLOP accounting circuitry comprises circuitry to execute a POPCNT instruction to determine a number of bits set within the mask register.

5. The processor as in claim 1 further comprising:

an accumulation circuit to accumulate the number of floating point operations performed for a plurality of masked and non-masked floating point instructions, the accumulation circuit to add the number of floating point operations determined by the FLOP accounting circuitry to an accumulated FLOP value.

6. The processor as in claim 1 wherein the floating point data elements comprise double-precision floating point data elements.

7. The processor as in claim 6 wherein a plurality of the floating point data elements are packed into a single vector register.

8. The processor as in claim 1 wherein the floating point data elements comprise single-precision floating point data elements.

9. A method comprising:

fetching instructions from system memory, the instructions including at least one masked vector floating point instruction to perform operations on a plurality of floating point data elements;

storing a mask value associated with the masked vector floating point instruction in a mask register;

decoding the masked vector floating point instruction; and

determining a number of floating point operations to be performed during execution of the masked vector floating point instruction using the mask value read from the mask register.

10. The method as in claim 9 wherein the number of floating point operations is determined based on a number of bits set within the mask register.

11. The method as in claim 10 wherein a determination is made that a floating point operation is performed for each bit set.

12. The method as in claim 11 wherein a POPCNT instruction is executed to determine a number of bits set within the mask register.

13. The method as in claim 9 further comprising:

accumulating the number of floating point operations performed for a plurality of masked and non-masked floating point instructions; and

adding the number of floating point operations to an accumulated floating point operations value.

14. The method as in claim 9 wherein the floating point data elements comprise double-precision floating point data elements.

15. The method as in claim 14 wherein a plurality of the floating point data elements are packed into a single vector register.

16. The method as in claim 9 wherein the floating point data elements comprise single-precision floating point data elements.

17. An apparatus comprising:

means for fetching instructions from system memory, the instructions including at least one masked vector floating point instruction to perform operations on a plurality of floating point data elements;

means for storing a mask value associated with the masked vector floating point instruction;

means for decoding the masked vector floating point instruction; and

means for determining a number of floating point operations to be performed during execution of the masked vector floating point instruction using the mask value.

18. The apparatus as in claim 17 wherein the number of floating point operations is determined based on a number of bits set within a mask register.

19. The apparatus as in claim 18 wherein a determination is made that a floating point operation is performed for each bit set.

20. The apparatus as in claim 19 wherein a POPCNT instruction is executed to determine a number of bits set within the mask register.

21. The apparatus as in claim 17 further comprising:

means for accumulating the number of floating point operations performed for a plurality of masked and non-masked floating point instructions, and adding the number of floating point operations to an accumulated floating point operations value.

22. The apparatus as in claim 17 wherein the floating point data elements comprise double-precision floating point data elements.

23. The apparatus as in claim 22 wherein a plurality of the floating point data elements are packed into a single vector register.

24. The apparatus as in claim 17 wherein the floating point data elements comprise single-precision floating point data elements.

25. A system comprising:

a memory to store instructions and data;

a processor to execute the instructions and process the data;

a graphics processor to perform graphics operations in response to graphics instructions;

a network interface to receive and transmit data over a network; and

an interface for receiving user input from a mouse or cursor control device, a plurality of cores executing the instructions and processing the data responsive to the user input;

the processor comprising:

an instruction fetch unit to fetch instructions from system memory, the instructions including at least one masked vector floating point instruction to perform operations on a plurality of floating point data elements;

a mask register to store a mask value associated with the masked vector floating point instruction;

a decoder to decode the masked vector floating point instruction; and

floating point operations (FLOP) accounting circuitry to read the mask register to determine a number of floating point operations to be performed during execution of the masked vector floating point instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2016
From: RAMAN, KARTHIK; SLONIM, ARIEL; TAL, ADY
To: INTEL CORPORATION
Reel/Frame 041229/0031 →
Continuity (1)
Related Publication 20180189065A1 · Jul 5, 2018