IP Library › Granted Patent US 11,182,337
Granted Patent B1
US 11,182,337 · App. 16/900,236 · Granted Nov 23, 2021

Computing efficient cross channel operations in parallel computing machines using systolic arrays

Inventors: Subramaniam Maiyuran (Gold River, CA); Jorge Parra (El Dorado Hills, CA); Supratim Pal (Bangalore, IN); Chandra Gurram (Folsom, CA)
Assignee: INTEL CORPORATION
G06F15/8046G06F15/8007G06F17/16G06N20/00
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,182,337
App. No.
16/900,236
Granted
Nov 23, 2021
Kind
B1
Abstract

An apparatus to facilitate computing efficient cross channel operations in parallel computing machines using systolic arrays is disclosed. The apparatus includes a plurality of registers and one or more processing elements communicably coupled to the plurality of registers. The one or more processing elements include a systolic array circuit to perform cross-channel operations on source data received from a single source register of the plurality of registers, the systolic array circuit modified to receive inputs from the single source register and route elements of the single source register to multiple channels in the systolic array circuit.

Claims (31)

1. An apparatus comprising:

a plurality of registers; and

one or more processing elements communicably coupled to the plurality of registers, the one or more processing elements comprising:

a systolic array circuit to perform cross-channel operations on source data received from a single source register of the plurality of registers, the systolic array circuit modified to receive inputs from the single source register and route elements of the single source register to multiple channels in the systolic array circuit, wherein routing circuitry of stages of the systolic array circuit is modified to receive input from different channels of the single source register at different stages of the systolic array circuit.

2. The apparatus of claim 1 , wherein the systolic array circuit is modified to broadcast a result value from a final row of the systolic array circuit to all elements of a destination register of the plurality of registers.

3. The apparatus of claim 1 , wherein the one or more processing elements are comprised in a graphics processing unit (GPU).

4. The apparatus of claim 1 , wherein the systolic array circuit is modified for the cross channel operations by modifying data processing units (DPUs) of the systolic array circuit to perform the cross-channel operations on the source data and modifying routing of the DPUs of the systolic array circuit to receive the input from the different channels of the single source register at the different stages of the systolic array circuit.

5. The apparatus of claim 4 , wherein the different stages of the systolic array circuit each receive a different element of the single source register on which to perform the cross-channel operations.

6. The apparatus of claim 1 , wherein a subset of channels of the systolic array circuit perform the cross-channel operations and wherein other channels of the systolic array circuit that are not comprised in the subset of channels are disabled.

7. The apparatus of claim 1 , wherein the cross-channel operations comprise at least one of a maximum operation, a minimum operation, or an are equal operation.

8. The apparatus of claim 1 , wherein a first channel of a final stage of the systolic array circuit is modified to receive inputs from more than one channel of a previous stage of the systolic array circuit.

9. The apparatus of claim 1 , wherein the apparatus is a single instruction multiple data (SIMD) machine.

10. The apparatus of claim 1 , wherein the apparatus is a single instruction multiple thread (SIMT) machine.

11. A computer-generated method comprising:

receiving, at the systolic array hardware circuit modified for cross-channel operations, source data from a single source register;

performing the cross-channel operations on the source data at a subset of channels of the systolic array hardware circuit, wherein routing circuitry of stages of the systolic array circuit is modified to receive input from different channels of the single source register at different stages of the systolic array circuit;

passing results of the cross-channel operations to subsequent stages of the systolic array hardware circuit; and

broadcasting a result of a last stage of the systolic array hardware circuit to each channel of a destination register.

12. The method of claim 11 , wherein the subsequent stages each receive a different element of the single source register on which to perform operations.

13. The method of claim 11 , wherein other channels of the systolic array hardware circuit that are not comprised in the subset of channels are disabled.

14. The method of claim 11 , wherein the systolic array hardware circuit is part of a graphics processing unit (GPU).

15. The method of claim 11 , wherein a first channel of a final stage of the systolic array circuit is modified to receive inputs from more than one channel of a previous stage of the systolic array circuit.

16. The method of claim 11 , wherein the systolic array hardware circuit is modified for the cross-channel operations by modifying data processing units (DPUs) of the systolic array hardware circuit to perform the cross-channel operations on the source data and modifying routing of the DPUs of the systolic array hardware circuit to receive the input from the different channels of the single source register at the different stages of the systolic array hardware circuit.

17. At least one non-transitory computer-readable medium having instructions stored thereon, which when executed by one or more processors, cause the processors to:

receive, at a systolic array hardware circuit modified for cross-channel operations, source data from a single source register;

perform the cross-channel operations on the source data at a subset of channels of the systolic array hardware circuit, wherein routing circuitry of stages of the systolic array circuit is modified to receive input from different channels of the single source register at different stages of the systolic array circuit;

pass results of the cross-channel operations to subsequent stages of the systolic array hardware circuit; and

broadcast a result of a last stage of the systolic array hardware circuit to each channel of a destination register.

18. The non-transitory computer-readable medium of claim 17 , wherein the subsequent stages each receive a different element of the single source register on which to perform operations.

19. The non-transitory computer-readable medium of claim 17 , wherein other channels of the systolic array hardware circuit that are not comprised in the subset of channels are disabled.

20. The non-transitory computer-readable medium of claim 17 , wherein the systolic array hardware circuit is modified for the cross-channel operations by modifying data processing units (DPUs) of the systolic array hardware circuit to perform the cross-channel operations on the source data and modifying routing of the DPUs of the systolic array hardware circuit to receive the input from the different channels of the single source register at the different stages of the systolic array hardware circuit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: MAIYURAN, SUBRAMANIAM; PARRA, JORGE; PAL, SUPRATIM; GURRAM, CHANDRA
To: INTEL CORPORATION
Reel/Frame 052928/0969 →
Priority Claims (1)
IN 202041018637 · May 1, 2020 · national
Cited By (7)
US 12,229,554 US 12,242,853 US 12,271,732 US 12,591,412 US 12,608,175 US 12,682,232 US 12,710,926