IP Library Granted Patent US 12,423,102
Granted Patent B2
US 12,423,102 · App. 17/134,353 · Granted Sep 23, 2025

Instructions to convert from FP16 to BF8

Inventors: Alexander Heinecke (San Jose, CA); Naveen Mellempudi (Bangalore, IN); Robert Valentine (Kiryat Tivon, IL); Mark Charney (Lexington, MA); Christopher Hughes (Santa Clara, CA); Evangelos Georganas (San Mateo, CA); Zeev Sperber (Zichron Yackov, IL); Amit Gradstein (Binyamina, IL); Simon Rubanovich (Haifa, IL)
Assignee: Intel Corporation
G06F9/30145G06F7/49947G06F9/30025G06F9/30036G06F9/30038H03M7/24
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 12,423,102
App. No.
17/134,353
Granted
Sep 23, 2025
Kind
B2
Abstract

Techniques for converting FP16 data elements to BF8 data elements using a single instruction are described. An exemplary apparatus includes decoder circuitry to decode a single instruction, the single instruction to include a one or more fields to identify a source operand, one or more fields to identify a destination operand, and one or more fields for an opcode, the opcode to indicate that execution circuitry is to convert packed half-precision floating-point data from the identified source to packed bfloat8 data and store the packed bfloat8 data into corresponding data element positions of the identified destination operand; and execution circuitry to execute the decoded instruction according to the opcode to convert packed half-precision floating-point data from the identified source to packed bfloat8 data and store the packed bfloat8 data into corresponding data element positions.

Claims (41)

1. An apparatus comprising:

a plurality of memory controllers;

a level-two (L2) cache memory coupled to the plurality of memory controllers;

a processor coupled to the plurality of memory controllers, and coupled to the L2 cache memory, the processor having a plurality of cores and a plurality of levels of cache memory, the cores including circuitry to perform operations corresponding to an instruction, the instruction to identify a source register that is to include a plurality of half-precision floating-point data elements and to identify a destination register, wherein the half-precision floating-point data elements are 16-bit data elements, the operations including to:

convert the plurality of half-precision floating-point data elements to a plurality of corresponding 8-bit floating-point data elements, wherein, when one or more of the half-precision floating-point data elements are normal numbers, conversion of the one or more normal numbers to one or more corresponding 8-bit floating-point data elements is to be performed according to a round to nearest even rounding mode, and the one or more corresponding 8-bit floating-point data elements are each to include one sign bit, five exponent bits, and two mantissa bits, wherein for each normal half-precision floating-point data element, a corresponding 8-bit floating-point data element is to be converted from the half-precision floating point data element using a rounding bias; and

store the plurality of 8-bit floating-point data elements in the destination register;

an interconnect interface coupled to the processor; and

a bus controller interface coupled to the processor.

2. The apparatus of claim 1 , wherein the instruction allows only the round to nearest even rounding mode for the conversion of the one or more normal numbers to the one or more corresponding 8-bit floating-point data elements.

3. The apparatus of claim 1 , wherein the cores comprise graphics cores.

4. The apparatus of claim 1 , wherein the cores comprise heterogeneous cores.

5. The apparatus of claim 1 , wherein the cores comprise heterogeneous graphics cores.

6. The apparatus of claim 1 , further comprising an instruction converter to convert the instruction into one or more instructions of a different instruction set executable by the cores.

7. The apparatus of claim 1 , wherein, when one or more of the half-precision floating-point data elements are not-a-number (NaN) data elements, conversion of the one or more NaN data elements is to include setting a most significant bit of a mantissa of each of one or more corresponding 8-bit floating-point data elements.

8. The apparatus of claim 1 , wherein, when one or more of the half-precision floating-point data elements are not-a-number (NaN) data elements, conversion of the one or more NaN data elements is to include modifying a bit of a mantissa of each of one or more corresponding 8-bit floating-point data elements.

9. The apparatus of claim 1 , wherein, when one or more of the half-precision floating-point data elements are not-a-number (NaN) data elements, conversion of the one or more NaN data elements is to include forcing quiet NAN (QNAN) for each of one or more corresponding 8-bit floating-point data elements.

10. An apparatus comprising:

circuitry to receive an instruction, the instruction to identify a source register that is to include a plurality of half-precision floating-point data elements and to identify a destination register, wherein the half-precision floating-point data elements are 16-bit data elements;

a plurality of memory controllers;

a level-two (L2) cache memory coupled to the plurality of memory controllers;

execution circuitry to perform operations corresponding to the instruction, including to:

convert the plurality of half-precision floating-point data elements to a plurality of corresponding 8-bit floating-point data elements, wherein, when one or more of the half-precision floating-point data elements are normal numbers, conversion of the one or more normal numbers to one or more corresponding 8-bit floating-point data elements is to be performed according to a round to nearest even rounding mode, and the one or more corresponding 8-bit floating-point data elements are each to include one sign bit, five exponent bits, and two mantissa bits, wherein, when one or more of the half-precision floating-point data elements are not-a-number (NaN) data elements, conversion of the one or more NaN data elements is to include truncating a most significant 8 bits of the half-precision floating-point data element and setting a most significant bit of a mantissa of each of one or more corresponding 8-bit floating-point data elements, wherein for each normal half-precision floating-point data element, a corresponding 8-bit floating-point data element is to be converted from the half-precision floating point data element using a rounding bias; and

store the plurality of 8-bit floating-point data elements in the destination register;

an interconnect interface coupled to the execution circuitry; and

a bus controller interface coupled to the execution circuitry.

11. The apparatus of claim 10 , wherein the instruction allows only the round to nearest even rounding mode for the conversion of the one or more normal numbers to the one or more corresponding 8-bit floating-point data elements.

12. The apparatus of claim 10 , wherein the execution circuitry is within a graphics core.

13. The apparatus of claim 10 , further comprising an instruction converter to convert the instruction into one or more instructions of a different instruction set executable by the execution circuitry.

14. An apparatus comprising:

an instruction converter to convert a first instruction into one or more other instructions, the first instruction to identify a source register that is to include a plurality of half-precision floating-point data elements and to identify a destination register, wherein the half-precision floating-point data elements are 16-bit data elements;

a plurality of memory controllers;

a level-two (L2) cache memory coupled to the plurality of memory controllers;

execution circuitry to perform operations corresponding to the first instruction, including to:

convert the plurality of half-precision floating-point data elements to a plurality of corresponding 8-bit floating-point data elements, wherein, when one or more of the half-precision floating-point data elements are normal numbers, conversion of the one or more normal numbers to one or more corresponding 8-bit floating-point data elements is to be performed according to a round to nearest even rounding mode, and the one or more corresponding 8-bit floating-point data elements are each to include one sign bit, five exponent bits, and two mantissa bits, wherein for each normal half-precision floating-point data element, a corresponding 8-bit floating-point data element is to be converted from the half-precision floating point data element using a rounding bias; and

store the plurality of 8-bit floating-point data elements in the destination register;

an interconnect interface coupled to the execution circuitry; and

a bus controller interface coupled to the execution circuitry.

15. The apparatus of claim 14 , wherein the first instruction allows only the round to nearest even rounding mode for the conversion of the one or more normal numbers to the one or more corresponding 8-bit floating-point data elements.

16. The apparatus of claim 14 , wherein, when one or more of the half-precision floating-point data elements are not-a-number (NaN) data elements, conversion of the one or more NaN data elements is to include modifying a bit of a mantissa of each of one or more corresponding 8-bit floating-point data elements.

17. The apparatus of claim 14 , wherein, when one or more of the half-precision floating-point data elements are not-a-number (NaN) data elements, conversion of the one or more NaN data elements is to include forcing quiet NAN (QNAN) for each of one or more corresponding 8-bit floating-point data elements.

18. The apparatus of claim 14 , wherein the execution circuitry is part of a graphics core.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2021
From: HEINECKE, ALEXANDER; MELLEMPUDI, NAVEEN; VALENTINE, ROBERT; CHARNEY, MARK; HUGHES, CHRISTOPHER; GEORGANAS, EVANGELOS; SPERBER, ZEEV; GRADSTEIN, AMIT; RUBANOVICH, SIMON
To: INTEL CORPORATION
Reel/Frame 056234/0682 →
Continuity (1)
Related Publication 20220206805A1 · Jun 30, 2022
References Cited (44)
US 5673407A · Poland · 1997 [cited by examiner]
US 5761103A · Oakland · 1998 [cited by examiner]
US 7444367B2 · Steele, Jr. · 2008 [cited by examiner]
US 8667250B2 · Sprangle · 2014 [cited by examiner]
US 11372643B2 · Heinecke · 2022 [cited by examiner]
US 11556615B2 · Das Sarma · 2023 [cited by examiner]
US 20020178204A1 · Steele, Jr. · 2002 [cited by examiner]
US 20020184282A1 · Yuval et al. · 2002 [cited by applicant]
US 20110173421A1 · Chen · 2011 [cited by examiner]
US 20160062954A1 · Ruff et al. · 2016 [cited by applicant]
US 20160179515A1 · San Adrian · 2016 [cited by examiner]
US 20190079762A1 · Heinecke · 2019 [cited by examiner]
US 20190294964A1 · Ouchi · 2019 [cited by examiner]
US 20200348909A1 · Das Sarma · 2020 [cited by examiner]
US 20200349216A1 · Das Sarma · 2020 [cited by examiner]
US 20210124580A1 · Heinecke · 2021 [cited by examiner]
US 20220206743A1 · Heinecke · 2022 [cited by examiner]
US 20220318013A1 · Mellempudi · 2022 [cited by examiner]
US 20240045677A1 · Heinecke · 2024 [cited by examiner]
US 20240045684A1 · Heinecke · 2024 [cited by examiner]
US 20240045686A1 · Heinecke · 2024 [cited by examiner]
US 20240045691A1 · Mellempudi · 2024 [cited by examiner]
CN 111401536A · 2020 [cited by applicant]
EP 1080421B1 · 2002 [cited by examiner]
EP 3798827A1 · 2021 [cited by examiner]
EP 4020169A1 · 2022 [cited by examiner]
EP 4020178A1 · 2022 [cited by examiner]
EP 4020184A1 · 2022 [cited by examiner]
EP 4064040A1 · 2022 [cited by examiner]
EP 4273694A2 · 2023 [cited by examiner]
EP 4276608A2 · 2023 [cited by examiner]
EP 4318229A1 · 2024 [cited by examiner]
WO WO9961997A1 · 1999 [cited by examiner]
Kusswurm ‘Modern Arm Assembly Language Programming’ Published Oct. 8, 2020. (Year: 2020). [cited by examiner]
Devnath et al. ‘A Mathematical Approach Towards Quantization of Floating Point Weights in Low Power Neural Networks’ 2020 33rd International Conference on VLSI Design and 2020 19th International Conference on Embedded S… [cited by examiner]
Wu et al., ‘Phoenix: A Low-Precision Floating-Point Quantization Oriented Architecture for Convolutional Neural Networks’ Feb. 29, 2020. (Year: 2020). [cited by examiner]
“Special Case” Arithmetic Handling For IEEE Floating Point Hardware' NN8905469, May 1, 1989. (Year: 1989). [cited by examiner]
Machine Translation of Chinese Patent Application CN 116795324 A, Sep. 22, 2023. (Year: 2023). [cited by examiner]
Machine Translation of Chinese Patent Application CN 111401536 A, Jul. 10, 2020. (Year: 2020). [cited by examiner]
Machine Translation of Chinese Patent Application CN 105634499 A, Jun. 1, 2016. (Year: 2016). [cited by examiner]
Office Action, EP App. No. 21198815.9, Jan. 17, 2023, 7 pages. [cited by applicant]
European Search Report and Search Opinion, EP App. No. 21198815.9, Mar. 18, 2022, 9 pages. [cited by applicant]
Extended European Search Report and Search Opinion, EP App. No. 23199193.6, Dec. 21, 2023, 10 pages. [cited by applicant]
Office Action, EP App. No. 21198815.9, Nov. 27, 2023, 8 pages. [cited by applicant]