IP Library › Granted Patent US 12,405,838
Granted Patent B2
US 12,405,838 · App. 18/636,749 · Granted Sep 2, 2025

Disaggregated computing for distributed confidential computing environment

Inventors: Reshma Lal (Portland, OR); Pradeep Pappachan (Tualatin, OR); Luis Kida (Beaverton, OR); Soham Jayesh Desai (Rochester, MN); Sujoy Sen (Beaverton, OR); Selvakumar Panneer (Portland, OR); Robert Sharp (Austin, TX)
Assignee: INTEL CORPORATION
G06F9/5083G06F9/3814G06F9/5027G06T1/20G06T1/60
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,405,838
App. No.
18/636,749
Granted
Sep 2, 2025
Kind
B2
Abstract

An apparatus to facilitate disaggregated computing for a distributed confidential computing environment is disclosed. The apparatus includes one or more processors to: provide a remote GPU middleware layer to act as a proxy for an application stack on a client platform that is separate from the remote server platform, wherein the remote GPU middleware layer comprises is to expose an abstraction of the remote GPU to userspace components of a remote GPU stack, the userspace components running on the client machine; communicate with a kernel mode driver of the one or more processors to cause the host memory to be allocated for data structures used to communicate commands between the client and the remote GPU; and invoke the kernel mode driver to submit a workload generated by the application stack, the workload submitted for processing by the remote GPU using the data structures allocated in the host memory.

Claims (30)

1. An apparatus comprising:

one or more processors of a remote server platform communicably coupled to host memory and to a remote graphics processing unit (GPU), the one or more processors to:

provide a remote GPU middleware layer on the remote server platform to act as a proxy for an application stack hosted on a client platform that is separate from the remote server platform, wherein the remote GPU middleware layer is to expose an abstraction of the remote GPU to userspace components of a remote GPU stack, the userspace components hosted on the client platform;

communicate, by the remote GPU middleware layer, with a kernel mode driver of the one or more processors to cause the host memory to be allocated for data structures used to communicate commands between the client platform and the remote GPU; and

invoke, by the remote GPU middleware layer, the kernel mode driver to submit a workload generated by the application stack, the workload submitted for processing by the remote GPU using the data structures allocated in the host memory.

2. The apparatus of claim 1 , wherein the data structures comprise command buffers and other data structures that are received from a runtime component and user mode driver component of the client platform, and wherein the command buffers and the other data structures are generated based on instructions from the application stack.

3. The apparatus of claim 2 , wherein the kernel mode driver utilizes the command buffers and the other data structures to prepare a context of the workload and schedule the workload on the remote GPU.

4. The apparatus of claim 1 , wherein the client platform is to execute a corresponding remote GPU middleware layer to interface with the remote GPU middleware layer of the remote server platform, and wherein the remote GPU middleware layer is to expose the abstraction of the remote GPU to the userspace components of the remote GPU stack on the client platform, and is to mediate transfer of data between the client platform and the remote GPU.

5. The apparatus of claim 1 , wherein the remote GPU middleware layer is a transport-agnostic interface for the application stack on the client platform.

6. The apparatus of claim 1 , wherein the remote GPU middleware layer comprises a transport sublayer to communicate command and data between the client platform and the remote GPU.

7. The apparatus of claim 1 , wherein the remote GPU comprises a network interface controller (NIC) for direct transfers of data between the client platform and the remote GPU.

8. The apparatus of claim 1 , wherein a GPU local memory of the remote GPU is mapped to an address space of the application stack of the client platform to allow the application stack to access the GPU local memory directly.

9. The apparatus of claim 1 , wherein the one or more processors comprise one or more of a GPU, a central processing unit (CPU), or a hardware accelerator.

10. A method comprising:

providing, by one or more processors of a remote server platform communicably coupled to a host memory and to a remote graphics processing unit (GPU), a remote GPU middleware layer on the remote server platform to act as a proxy for an application stack hosted on a client platform that is separate from the remote server platform, wherein the remote GPU middleware layer is to expose an abstraction of the remote GPU to userspace components of a remote GPU stack, the userspace components hosted on the client platform;

communicating, by the remote GPU middleware layer, with a kernel mode driver of the one or more processors to cause the host memory to be allocated for data structures used to communicate commands between the client platform and the remote GPU; and

invoking, by the remote GPU middleware layer, the kernel mode driver to submit a workload generated by the application stack, the workload submitted for processing by the remote GPU using the data structures allocated in the host memory.

11. The method of claim 10 , wherein the data structures comprise command buffers and other data structures that are received from a runtime component and user mode driver component of the client platform, and wherein the command buffers and the other data structures are generated based on instructions from the application stack.

12. The method of claim 11 , wherein the kernel mode driver utilizes the command buffers and the other data structures to prepare a context of the workload and schedule the workload on the remote GPU.

13. The method of claim 10 , wherein the client platform is to execute a corresponding remote GPU middleware layer to interface with the remote GPU middleware layer of the remote server platform, and wherein the remote GPU middleware layer is to expose the abstraction of the remote GPU to the userspace components of the remote GPU stack on the client platform, and is to mediate transfer of data between the client platform and the remote GPU.

14. The method of claim 10 , wherein the remote GPU middleware layer comprises a transport sublayer to communicate command and data between the client platform and the remote GPU.

15. The method of claim 10 , wherein a GPU local memory of the remote GPU is mapped to an address space of the application stack of the client platform to allow the application stack to access the GPU local memory directly.

16. A non-transitory machine readable storage medium having stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations to:

provide, by the one or more processors of a remote server platform communicably coupled to a host memory and to a remote graphics processing unit (GPU), a remote GPU middleware layer on the remote server platform to act as a proxy for an application stack hosted on a client platform that is separate from the remote server platform, wherein the remote GPU middleware layer is to expose an abstraction of the remote GPU to userspace components of a remote GPU stack, the userspace components hosted on the client platform;

communicate, by the remote GPU middleware layer, with a kernel mode driver of the one or more processors to cause the host memory to be allocated for data structures used to communicate commands between the client platform and the remote GPU; and

invoke, by the remote GPU middleware layer, the kernel mode driver to submit a workload generated by the application stack, the workload submitted for processing by the remote GPU using the data structures allocated in the host memory.

17. The non-transitory machine readable storage medium of claim 16 , wherein the data structures comprise command buffers and other data structures that are received from a runtime component and user mode driver component of the client platform, and wherein the command buffers and the other data structures are generated based on instructions from the application stack.

18. The non-transitory machine readable storage medium of claim 17 , wherein the kernel mode driver utilizes the command buffers and the other data structures to prepare a context of the workload and schedule the workload on the remote GPU.

19. The non-transitory machine readable storage medium of claim 16 , wherein the client platform is to execute a corresponding remote GPU middleware layer to interface with the remote GPU middleware layer of the remote server platform, and wherein the remote GPU middleware layer is to expose the abstraction of the remote GPU to the userspace components of the remote GPU stack on the client platform, and is to mediate transfer of data between the client platform and the remote GPU.

20. The non-transitory machine readable storage medium of claim 16 , wherein a GPU local memory of the remote GPU is mapped to an address space of the application stack of the client platform to allow the application stack to access the GPU local memory directly.

Continuity (4)
Continuation 17526097 · Nov 15, 2021
Continuation 17133066 · Dec 23, 2020
Provisional Application 63083565 · Sep 25, 2020
Related Publication 20240281302A1 · Aug 22, 2024
References Cited (101)
US 7971236B1 · Lentini · 2011 [cited by applicant]
US 8930717B2 · Smith · 2015 [cited by applicant]
US 10074206B1 · Ingegneri · 2018 [cited by applicant]
US 10372497B1 · Zelenov · 2019 [cited by examiner]
US 10482291B2 · Woodall · 2019 [cited by applicant]
US 10528765B2 · Smith et al. · 2020 [cited by applicant]
US 10649790B1 · Ingegneri · 2020 [cited by applicant]
US 10652108B2 · Guim Bernat · 2020 [cited by applicant]
US 10776145B2 · Iyer et al. · 2020 [cited by applicant]
US 11449963B1 · Beeler et al. · 2022 [cited by applicant]
US 11893425B2 · Lal et al. · 2024 [cited by applicant]
US 11941457B2 · Lal et al. · 2024 [cited by applicant]
US 11989595B2 · Lal et al. · 2024 [cited by applicant]
US 12033005B2 · Lal et al. · 2024 [cited by applicant]
US 12093748B2 · Lal et al. · 2024 [cited by applicant]
US 12164973B2 · Lal et al. · 2024 [cited by applicant]
US 12229605B2 · Lal et al. · 2025 [cited by applicant]
US 12260263B2 · Lal et al. · 2025 [cited by applicant]
US 20060168091A1 · Makhervaks et al. · 2006 [cited by applicant]
US 20060259570A1 · Feng et al. · 2006 [cited by applicant]
US 20120254587A1 · Biran et al. · 2012 [cited by applicant]
US 20130162661A1 · Bolz et al. · 2013 [cited by applicant]
US 20140240327A1 · Lustig et al. · 2014 [cited by applicant]
US 20140281169A1 · Mehrotra et al. · 2014 [cited by applicant]
US 20150326684A1 · Takefman et al. · 2015 [cited by applicant]
US 20160093012A1 · Rao et al. · 2016 [cited by applicant]
US 20160147710A1 · Franke et al. · 2016 [cited by applicant]
US 20160342547A1 · Liss et al. · 2016 [cited by applicant]
US 20160358306A1 · Begeman et al. · 2016 [cited by applicant]
US 20170213053A1 · Areno et al. · 2017 [cited by applicant]
US 20170300361A1 · Lanka et al. · 2017 [cited by applicant]
US 20170351639A1 · Borikar · 2017 [cited by applicant]
US 20180082083A1 · Smith et al. · 2018 [cited by applicant]
US 20180205553A1 · Hoppert et al. · 2018 [cited by applicant]
US 20190044519A1 · Atsatt et al. · 2019 [cited by applicant]
US 20190044875A1 · Murty et al. · 2019 [cited by applicant]
US 20190102568A1 · Hausauer et al. · 2019 [cited by applicant]
US 20190108106A1 · Aggarwal et al. · 2019 [cited by applicant]
US 20190179755A1 · Mudumbai et al. · 2019 [cited by applicant]
US 20190286479A1 · Tian et al. · 2019 [cited by applicant]
US 20190355163A1 · Imbrogno et al. · 2019 [cited by applicant]
US 20200004701A1 · Subbarao et al. · 2020 [cited by applicant]
US 20200004993A1 · Volos et al. · 2020 [cited by applicant]
US 20200127836A1 · Pappachan et al. · 2020 [cited by applicant]
US 20200127850A1 · Scarlata et al. · 2020 [cited by applicant]
US 20200132761A1 · Rahardjo et al. · 2020 [cited by applicant]
US 20200167488A1 · Yitbarek et al. · 2020 [cited by applicant]
US 20200211148A1 · Mackinnon · 2020 [cited by applicant]
US 20200218684A1 · Sen et al. · 2020 [cited by applicant]
US 20200226009A1 · Bachmutsky et al. · 2020 [cited by applicant]
US 20200228388A1 · Schulz et al. · 2020 [cited by applicant]
US 20200242258A1 · Smith et al. · 2020 [cited by applicant]
US 20200342112A1 · Plusquellic · 2020 [cited by applicant]
US 20200364516A1 · Krasner et al. · 2020 [cited by applicant]
US 20210117246A1 · Lal et al. · 2021 [cited by applicant]
US 20210406178A1 · Enrici et al. · 2021 [cited by applicant]
US 20220004397A1 · Ringlein et al. · 2022 [cited by applicant]
US 20220019356A1 · Hong et al. · 2022 [cited by applicant]
US 20220100579A1 · Lal et al. · 2022 [cited by applicant]
US 20220100580A1 · Lal et al. · 2022 [cited by applicant]
US 20220100581A1 · Lal et al. · 2022 [cited by applicant]
US 20220100582A1 · Lal et al. · 2022 [cited by applicant]
US 20220100583A1 · Lal et al. · 2022 [cited by applicant]
US 20220100584A1 · Lal et al. · 2022 [cited by applicant]
US 20220206969A1 · Que et al. · 2022 [cited by applicant]
US 20220214912A1 · Julien et al. · 2022 [cited by applicant]
US 20240086258A1 · Lal et al. · 2024 [cited by applicant]
US 20240184639A1 · Lal et al. · 2024 [cited by applicant]
DE 102021207514A1 · 2022 [cited by applicant]
EP 2383648A1 · 2011 [cited by applicant]
EP 3719657A1 · 2020 [cited by applicant]
NL 2029026B1 · 2022 [cited by applicant]
WO 2016101288A1 · 2016 [cited by applicant]
WO 2022066304A1 · 2022 [cited by applicant]
U.S. Appl. No. 18/511,296 “Notice of Allowance” mailed Aug. 14, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 18/538,171 “Notice of Allowance” mailed Oct. 23, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 17/528,374 “Notice of Allowance” mailed Nov. 26, 2024, 8 pages. [cited by applicant]
Anonymous: CUDA Runtime API version v11.1.74, Chapter 5, section 5.29, Sep. 15, 2020, XP055865248, retrieved from the Internet [retrieved on Jan. 31, 2022]. [cited by applicant]
International Patent Application No. PCT/US2021/045185 “International Preliminary Report on Patentability”, mailed Apr. 6, 2023, 9 pages. [cited by applicant]
International Patent Application No. PCT/US2021/045185 “International Search Report and Written Opinion”, mailed on Dec. 3, 2021, 13 pages. [cited by applicant]
International Patent Application No. PCT/US2021/045185 “Notification Concerning the Availability of the Publication of the International Application”, mailed on Mar. 31, 2022, 1 page. [cited by applicant]
Dutch Application No. 2029026 “Notice of Grant”, mailed Jul. 27, 2022, 6 pages. [cited by applicant]
Dutch Application No. 2029026 “Search Report and Written Opinion”, mailed May 25, 2022, 12 pages. [cited by applicant]
Taranov, K. et al. “sRDMA—Efficient NIC-based Authentication and Encryption for Remote Direct Memory Access”, 2020 USENIX Annual Technical Conference, Jul. 15-17, 2020, pp. 691-704. [cited by applicant]
U.S. Appl. No. 17/133,066 “Notice of Allowance” mailed Aug. 17, 2023, 9 pages. [cited by applicant]
U.S. Appl. No. 17/525,143 “Non-Final Office Action” mailed Sep. 13, 2023, 19 pages. [cited by applicant]
U.S. Appl. No. 17/525,143 “Notice of Allowance” mailed Dec. 8, 2023, 8 pages. [cited by applicant]
U.S. Appl. No. 17/526,097 “Non-Final Office Action” mailed Sep. 13, 2023, 19 pages. [cited by applicant]
U.S. Appl. No. 17/526,097 “Notice of Allowance” mailed Jan. 24, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 17/528,374 “Final Office Action” mailed Jan. 29, 2024, 19 pages. [cited by applicant]
U.S. Appl. No. 17/528,374 “Non-Final Office Action” mailed Sep. 13, 2023, 18 pages. [cited by applicant]
U.S. Appl. No. 17/528,374 “Advisory Action” mailed Apr. 9, 2024, 3 pages. [cited by applicant]
U.S. Appl. No. 17/531,005 “Notice of Allowance” mailed Sep. 27, 2023, 11 pages. [cited by applicant]
U.S. Appl. No. 17/532,562 “Non-Final Office Action” mailed Sep. 26, 2023, 15 pages. [cited by applicant]
U.S. Appl. No. 17/532,562 “Notice of Allowance” mailed Feb. 27, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 17/532,569 “Non-Final Office Action” mailed Sep. 26, 2023, 13 pages. [cited by applicant]
U.S. Appl. No. 17/532,569 “Final Office Action” mailed Feb. 23, 2024, 16 pages. [cited by applicant]
U.S. Appl. No. 17/133,066 “Notice of Allowance” mailed May 28, 2024, 10 pages. [cited by applicant]
U.S. Appl. No. 18/511,296 “Non-Final Office Action” mailed Jun. 3, 2024, 11 pages. [cited by applicant]
U.S. Appl. No. 18/538,171 “Non-Final Office Action” mailed Jul. 11, 2024, 13 pages. [cited by applicant]
U.S. Appl. No. 17/532,569 “Advisory Action” mailed May 2, 2024, 3 pages. [cited by applicant]