IP Library › Granted Patent US 11,409,536
Granted Patent B2
US 11,409,536 · App. 15/342,809 · Granted Aug 9, 2022

Pairing SIMD lanes to perform double precision operations

Inventors: Bin He (Orlando, FL); YunXiao Zou (Shanghai, CN); Jiasheng Chen (Orlando, FL); Michael Mantor (Orlando, FL)
Assignee: ADVANCED MICRO DEVICES, INC.
G06F9/3887G06F9/30014G06F9/30036G06F9/3893
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 11,409,536
App. No.
15/342,809
Granted
Aug 9, 2022
Kind
B2
Abstract

A method and apparatus for performing a multi-precision computation in a plurality of arithmetic logic units (ALUs) includes pairing a first Single Instruction/Multiple Data (SIMD) block channel device with a second SIMD block channel device to create a first block pair having one-level staggering between the first and second channel devices. A third SIMD block channel device is paired with a fourth SIMD block channel device to create a second block pair having one-level staggering between the third and fourth channel devices. A plurality of source inputs are received at the first block pair and the second block pair. The first block pair computes a first result, and the second block pair computes a second result.

Claims (35)

1. A method for performing a multi-precision computation in a plurality of arithmetic logic units (ALUs), comprising:

pairing a first Single Instruction/Multiple Data (SIMD) block channel device with a second SIMD block channel device to create a first block pair having one-level staggering between the first and second channel devices;

pairing a third SIMD block channel device with a fourth SIMD block channel device to create a second block pair having one-level staggering between the third and fourth channel devices;

receiving a plurality of source inputs at the first block pair and the second block pair;

computing a first result by the first block pair; and

computing a second result by the second block pair, wherein the computation of the second result is performed concurrently in a same number of clock time cycles as the computing by the first block pair, and wherein the computations being performed in the first block pair to compute the first result are performed in a same clock time cycle as a corresponding computation being performed in the second block pair.

2. The method of claim 1 , further comprising clock gating one or more of the SIMD block channel devices during a period that SIMD block channel device is not used for calculations.

3. The method of claim 1 , further comprising outputting the first result at an output register of the first SIMD block channel device.

4. The method of claim 1 , further comprising outputting the first result at an output register of the second SIMD block channel device.

5. The method of claim 1 , further comprising outputting the second result at an output register of the third SIMD block channel device.

6. The method of claim 1 , further comprising outputting the second result at an output register of the fourth SIMD block channel device.

7. The method of claim 1 wherein the first result and the second result are the same result.

8. The method of claim 1 , further comprising performing normalization on the result.

9. The method of claim 1 wherein the first result is generated in a first pass of a transcendental operation and utilized by the first block pair to compute a third result for output.

10. The method of claim 9 wherein the second result is generated in the first pass of a transcendental operation and utilized by the second block pair to compute a fourth result for output.

11. An apparatus for performing a multi-precision computation, comprising:

a first arithmetic logic unit (ALU);

a second ALU operatively connected with the first ALU, wherein the first ALU is paired with a second ALU having one-level staggering as a first compute unit configured to receive a plurality of inputs and compute a first result;

a third ALU; and

a fourth ALU operatively connected with the third ALU, wherein the third ALU is paired with the fourth ALU having one-level staggering as a second compute unit configured to receive the plurality of inputs and compute a second result, and

wherein the second compute unit computes the second result concurrently in a same number of clock time cycles with the first compute unit, and wherein the computations being performed in the first compute unit to compute the first result are performed in a same clock time cycle as a corresponding computation being performed in the second compute unit.

12. The apparatus of claim 11 , further comprising an arrangement generator operatively connected to the first, second, third and fourth ALUs to provide the plurality of inputs to the respective ALUs.

13. The apparatus of claim 11 , further comprising a clock gating device operatively coupled with the first, second, third, and fourth ALUs, for clock gating one or more of the ALUs during a period that ALU is not in use for calculations.

14. The apparatus of claim 11 wherein the first, second, third and fourth ALUs include a respective output register.

15. The apparatus of claim 14 wherein the first result is output at the output register of the first ALU.

16. The apparatus of claim 14 wherein the first result is output at the output register of the second ALU.

17. The apparatus of claim 14 wherein the second result is output at the output register of the third ALU.

18. The apparatus of claim 14 wherein the second result is output at the output register of the fourth ALU.

19. The apparatus of claim 11 wherein the first result is generated in a first pass of a transcendental operation and utilized by the first compute unit to compute a third result for output and the second result is generated in the first pass of a transcendental operation and utilized by the second compute unit to compute a fourth result for output.

20. A non-transitory computer-readable medium having instructions recorded thereon, that when executed by a computing device, cause the computing device to perform operations including:

pairing a first Single Instruction/Multiple Data (SIMD) block channel device with a second SIMD block channel device to create a first block pair having one-level staggering between the first and second channel devices;

pairing a third SIMD block channel device with a fourth SIMD block channel device to create a second block pair having one-level staggering between the third and fourth channel devices;

receiving a plurality of source inputs at the first block pair and the second block pair;

computing a first result by the first block pair; and

computing a second result by the second block pair, wherein the computation of the second result is performed concurrently in a same number of clock time cycles as the computing by the first block pair, and wherein the computations being performed in the first block pair to compute the first result are performed in a same clock time cycle as a corresponding computation being performed in the second block pair.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2016
From: HE, BIN; ZOU, YUNXIAO; CHEN, JIASHENG; MANTOR, MICHAEL
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 040349/0239 →
Priority Claims (1)
CN 201610918142.5 · Oct 21, 2016 · national
Continuity (1)
Related Publication 20180113709A1 · Apr 26, 2018