IP Library › Granted Patent US 12,314,766
Granted Patent B2
US 12,314,766 · App. 18/516,072 · Granted May 27, 2025

Hardware accelerator service discovery

Inventors: Shrikant Kelkar (San Jose, CA); Lakshmi Sharma (Saratoga, CA); Manoj Jayadevan (Cupertino, CA); Gargi Adhav (San Jose, CA); Parveen Patel (Cupertino, CA); Parthasarathy Ranganathan (San Jose, CA)
Assignee: Google LLC
G06F9/5044G06F9/4881G06F9/505G06F9/5061
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,314,766
App. No.
18/516,072
Granted
May 27, 2025
Kind
B2
Abstract

The present disclosure includes systems, methods, and computer-readable mediums for discovering capabilities of a hardware (HW) accelerator card. A processor may communicate a request for a listing of acceleration services to a HW accelerator card connected to the processor via the communication interface. The HW accelerator card may retrieve the listing from memory and provide a response to the processor that includes a listing of the HW acceleration services provided by the HW accelerator card.

Claims (39)

1. A method for discovering capabilities of a hardware (HW) accelerator card of a computing device, the method comprising:

opening, by one or more processors of the computing device via a communication interface, a communication channel between the one or more processors and the HW accelerator card of the computing device;

requesting, by the one or more processors via a communication interface and using the communication channel, a listing of acceleration services from the HW accelerator card;

receiving, by the one or more processors via the communication interface and using the communication channel, the listing of acceleration services from the HW accelerator card, wherein the listing of acceleration services is stored within the HW accelerator card, the acceleration services comprising functions and/or capabilities of accelerators on the HW accelerator card; and

transmitting, by the one or more processors, a workload instruction to the HW accelerator card, the workload instruction defining a workload for processing by the HW accelerator card that uses one or more of the acceleration services in the listing of acceleration services.

2. The method of claim 1 , further comprising requesting status updates from the HW accelerator card during processing of the workload by the HW accelerator card.

3. The method of claim 1 , wherein opening the communication channel comprises:

requesting a handle to the HW accelerator card; and

receiving the handle to the HW accelerator card.

4. The method of claim 3 , wherein the request for the listing of acceleration services from the HW accelerator card is sent using the handle.

5. The method of claim 3 , further comprising closing the handle after receiving a status update indicating completion of the workload by the HW accelerator card.

6. The method of claim 1 , wherein a processor of the HW accelerator card retrieves the listing of acceleration services from memory of the HW accelerator card in response to receiving the request from the one or more processors.

7. A system comprising:

a communication interface;

a hardware (HW) accelerator card comprising one or more accelerators and a first memory storing a listing of acceleration services provided by the one or more accelerators; and

a processor, in communication with the HW accelerator card via the communication interface, the processor configured to:

open, via the communication interface, a communication channel between the processor and the HW accelerator card;

request, via the communication interface and using the communication channel, the listing of acceleration services from the HW accelerator card;

receive, via the communication interface, the listing of acceleration services from the HW accelerator card, the acceleration services comprising functions and/or capabilities of accelerators on the HW accelerator card; and

transmit a workload instruction to the HW accelerator card, the workload instruction defining a workload for processing by the HW accelerator card that uses one or more of the acceleration services in the listing of acceleration services.

8. The system of claim 7 , wherein the processor is further configured to request status updates from the HW accelerator card during processing of the workload by the HW accelerator card.

9. The system of claim 8 , wherein the processor is further configured to:

request a handle to the hardware HW accelerator card; and

receive the handle.

10. The system of claim 9 , wherein the request for the listing of acceleration services from the HW accelerator card is sent using the handle.

11. The system of claim 9 , wherein the processor is further configured to close the handle after receiving a status update indicating completion of the workload from the HW accelerator card.

12. The system of claim 7 , wherein the HW accelerator card further comprises a compute complex, the compute complex configured to:

retrieve the listing of acceleration services from the first memory in response to receiving the request from the processor.

13. A non-transitory, tangible computer-readable storage medium on which computer-readable instructions of a program are stored, the instructions, when executed by one or more processors, cause the one or more processors to perform a method, the method comprising:

opening, via a communication interface, a communication channel between the one or more processors and a hardware (HW) accelerator card;

request, via the communication interface and using the communication channel, the listing of acceleration services from the HW accelerator card;

receiving, via the communication interface, a listing of acceleration services from the HW accelerator card, wherein the listing of acceleration services is stored within the HW accelerator card, the acceleration services includes functions and/or capabilities of accelerators on the HW accelerator card; and

transmitting a workload instruction to the HW accelerator card, the workload instruction defining a workload for processing by the HW accelerator card that uses one or more of the acceleration services in the listing of acceleration services.

14. The non-transitory, tangible computer-readable storage medium of claim 13 , the method further comprising requesting status updates from the HW accelerator card during processing of the workload by the HW accelerator card.

15. The non-transitory, tangible computer-readable storage medium of claim 13 , the method further comprising:

requesting, from an operating system executing on the one or more computing devices, a handle to a hardware (HW) accelerator card; and

receiving the handle to the HW accelerator card.

16. The non-transitory, tangible computer-readable storage medium of claim 15 , wherein the request for the listing of acceleration services from the HW accelerator card is sent using the handle.

17. The non-transitory, tangible computer-readable storage medium of claim 16 , further comprising closing the handle after receiving a status update indicating completion of the workload instructions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2023
From: KELKAR, SHRIKANT; SHARMA, LAKSHMI; JAYADEVAN, MANOJ; ADHAV, GARGI; PATEL, PARVEEN; RANGANATHAN, PARTHASARATHY
To: GOOGLE LLC
Reel/Frame 065644/0714 →
Continuity (2)
Continuation 17351849 · Jun 18, 2021
Related Publication 20240086247A1 · Mar 14, 2024
References Cited (20)
US 6633898B1 · Seguchi et al. · 2003 [cited by applicant]
US 10102035B2 · Bartfai-Walcott et al. · 2018 [cited by applicant]
US 10175991B2 · Biran et al. · 2019 [cited by applicant]
US 10324873B2 · Kaushik et al. · 2019 [cited by applicant]
US 10365830B2 · He et al. · 2019 [cited by applicant]
US 11321907B1 · Dagani et al. · 2022 [cited by applicant]
US 20110320739A1 · Ragunathan et al. · 2011 [cited by applicant]
US 20180307499A1 · Chen et al. · 2018 [cited by applicant]
US 20190004871A1 · Sukhomlinov et al. · 2019 [cited by applicant]
US 20200026575A1 · Guim Bernat et al. · 2020 [cited by applicant]
US 20200028921A1 · Cai et al. · 2020 [cited by applicant]
US 20200142753A1 · Harwood et al. · 2020 [cited by applicant]
US 20200177481A1 · Venkatesh et al. · 2020 [cited by applicant]
US 20200218684A1 · Sen et al. · 2020 [cited by applicant]
US 20200341810A1 · Ranganathan et al. · 2020 [cited by applicant]
EP 3731091A1 · 2020 [cited by applicant]
JP 2021528740A · 2021 [cited by applicant]
Extended European Search Report for European Patent Application No. 22156098.0 dated Aug. 23, 2022. 8 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2022/047988 dated Jan. 30, 2023. 13 pages. [cited by applicant]
Notice of Grant for Japanese Patent Application No. 2023-572177 dated Feb. 4, 2025. 3 pages. [cited by applicant]