IP Library Granted Patent US 11,615,044
Granted Patent B2
US 11,615,044 · App. 17/701,041 · Granted Mar 28, 2023

Graphics processing unit peer-to-peer arrangements

Inventors: James Scott Cannata (Denver, CO); German Kazakov (Longmont, CO); Christopher R. Long (Colorado Springs, CO); Jason Breakstone (Broomfield, CO)
Assignee: Liqid Inc.
G06F13/4022G06F9/5044G06F9/5077G06F12/02G06F13/28G06F13/4282G06T1/20G06F2213/0026
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,615,044
App. No.
17/701,041
Granted
Mar 28, 2023
Kind
B2
Abstract

Peer-to-peer arrangements between graphics processing units (GPUs) are provided herein. A method includes establishing synthetic devices representing GPUs in an address domain associated with a host processor, where the GPUs have a different address domain than the host processor. The method also includes forming a peer arrangement between the GPUs such that data transfers between the GPUs in the different address domain can be initiated by the host processor interfacing with the synthetic devices.

Claims (43)

1. A method comprising:

establishing synthetic devices representing graphics processing units (GPUs) in an address domain associated with a host processor, wherein the GPUs have a different address domain than the host processor; and

establishing a peer arrangement between the GPUs such that data transfers occurring between the GPUs in the different address domain are initiated by the host processor interfacing with the synthetic devices.

2. The method of claim 1 , comprising:

establishing the synthetic devices by at least establishing an isolation function between the host processor and the GPUs configured to redirect traffic transferred to the synthetic devices from the host processor for delivery to the GPUs.

3. The method of claim 1 , comprising:

adding the GPUs into the peer arrangement by at least instantiating the GPUs in the different address domain and initiating the synthetic devices representing GPUs in the address domain associated with the host processor; and

removing the GPUs from the peer arrangement by at least inactivating the synthetic devices in the address domain associated with the host processor.

4. The method of claim 1 , comprising:

establishing address traps that monitor for traffic directed to addresses associated with the synthetic devices and translate the addresses into corresponding addresses for the GPUs in the different address domain.

5. The method of claim 1 , comprising:

establishing address traps that monitor for traffic directed by the GPUs to addresses associated with the GPUs in the address domain associated with the host processor and translate the addresses into corresponding addresses for the GPUs in the different address domain.

6. The method of claim 5 , wherein the peer arrangement between the GPUs comprises a direct memory access (DMA) link established between memory associated with each of the GPUs.

7. The method of claim 1 , comprising:

establishing the synthetic devices and the peer arrangement by at least controlling communication switch circuitry that forms at least a portion of a communication fabric coupled to the host processor and the GPUs.

8. The method of claim 1 , wherein the synthetic devices and the peer arrangement comprise address traps having address translation tables.

9. The method of claim 1 , comprising:

forming a compute unit to include the host processor and the GPUs by at least including the host processor and the synthetic devices in a logical partitioning of a communication fabric communicatively coupled to the host processor and the GPUs.

10. The method of claim 1 , wherein the synthetic devices in the address domain associated with the host processor have first corresponding base address registers and first corresponding device addresses; and wherein the GPUs in the different address domain have second corresponding base address registers and second corresponding device addresses.

11. An apparatus comprising:

one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by a processing system to direct the processing system to at least:

establish synthetic devices representing graphics processing units (GPUs) in an address domain associated with a host processor, wherein the GPUs have a different address domain than the host processor; and

establish a peer arrangement between the GPUs such that data transfers occurring between the GPUs in the different address domain are initiated by the host processor interfacing with the synthetic devices.

12. The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

establish the synthetic devices by at least establishing an isolation function between the host processor and the GPUs configured to redirect traffic transferred to the synthetic devices from the host processor for delivery to the GPUs.

13. The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

add the GPUs into the peer arrangement by at least instantiating the GPUs in the different address domain and initiating the synthetic devices representing GPUs in the address domain associated with the host processor; and

remove the GPUs from the peer arrangement by at least inactivating the synthetic devices in the address domain associated with the host processor.

14. The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

establish address traps that monitor for traffic directed to addresses associated with the synthetic devices and translate the addresses into corresponding addresses for the GPUs in the different address domain.

15. The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

establish address traps that monitor for traffic directed by the GPUs to addresses associated with the GPUs in the address domain associated with the host processor and translate the addresses into corresponding addresses for the GPUs in the different address domain.

16. The apparatus of claim 15 , wherein the peer arrangement between the GPUs comprises a direct memory access (DMA) link established between memory associated with each of the GPUs.

17. The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

establish the synthetic devices and the peer arrangement by at least controlling communication switch circuitry that forms at least a portion of a communication fabric coupled to the host processor and the GPUs.

18. The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

form a compute unit to include the host processor and the GPUs by at least including the host processor and the synthetic devices in a logical partitioning of a communication fabric communicatively coupled to the host processor and the GPUs.

19. The apparatus of claim 11 , wherein the synthetic devices in the address domain associated with the host processor have first corresponding base address registers and first corresponding device addresses; and wherein the GPUs in the different address domain have second corresponding base address registers and second corresponding device addresses.

20. An apparatus, comprising:

a management controller for a communication fabric communicatively coupling a host processor and graphics processing units (GPUs);

the management controller configured to establish synthetic devices in the communication fabric that represent the GPUs in an address domain associated with a host processor, wherein the GPUs have a different address domain than the host processor; and

the management controller configured to establish a peer arrangement in the communication fabric between the GPUs such that data transfers between the GPUs in the different address domain are initiated by the host processor interfacing with the synthetic devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2022
From: BREAKSTONE, JASON; LONG, CHRISTOPHER R.; KAZAKOV, GERMAN; CANNATA, JAMES SCOTT
To: LIQID INC.
Reel/Frame 061822/0046 →
Continuity (7)
Continuation 17162922 · Jan 29, 2021
Continuation 16852676 · Apr 20, 2020
Continuation 16246712 · Jan 14, 2019
Continuation 15848268 · Dec 20, 2017
Provisional Application 62592859 · Nov 30, 2017
Provisional Application 62502806 · May 8, 2017
Related Publication 20220214987A1 · Jul 7, 2022
Cited By (7)
US 12,250,024 US 12,313,886 US 12,405,433 US 12,455,422 US 12,461,322 US 12,490,401 US 12,520,448