IP Library Granted Patent US 12,260,263
Granted Patent B2
US 12,260,263 · App. 17/528,374 · Granted Mar 25, 2025

Disaggregated computing for distributed confidential computing environment

Inventors: Reshma Lal (Portland, OR); Pradeep Pappachan (Tualatin, OR); Luis Kida (Beaverton, OR); Soham Jayesh Desai (Hillsboro, OR); 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,260,263
App. No.
17/528,374
Granted
Mar 25, 2025
Kind
B2
Abstract

An apparatus to facilitate disaggregated computing for a distributed confidential computing environment is disclosed. The apparatus includes a graphics processing unit (GPU) to: provide a virtual GPU monitor (VGM) to interface over a network with a middleware layer of a client platform, the VGM to interface with the middleware layer using a message passing interface; configure and expose, by the VGM, virtual functions (VFs) of the GPU to the middleware layer of the client platform; intercept, by the VGM, request messages directed to the GPU from the middleware layer, the request messages corresponding to VFs of the GPU to be utilized by the client platform; and generate, by the VGM, a response to the request messages for the middleware client.

Claims (33)

1. An apparatus comprising:

a graphics processing unit (GPU) to:

provide a virtual GPU monitor (VGM) to interface over a network with a middleware layer of a client platform that is operated remote to the GPU, the VGM to interface with the middleware layer using a message passing interface, and wherein the client platform hosts userspace components of a GPU stack of the GPU, the userspace components comprising an application to utilize the GPU for acceleration of tasks of the application running on the client platform, a runtime corresponding to the GPU, a user mode driver of the GPU, and a kernel mode driver of the GPU;

expose, by the VGM, virtual functions (VFs) of the GPU to the middleware layer of the client platform;

process, by the VGM, request messages directed to the GPU from the middleware layer, the request messages originating from the application and corresponding to VFs of the GPU to be utilized by the client platform; and

generate, by the VGM, a response to the request messages for the middleware layer.

2. The apparatus of claim 1 , wherein the GPU virtualizes resources of the GPU and exposes the resources to the client platform, the resources comprising at least the VFs and memory of the GPU.

3. The apparatus of claim 1 , wherein the GPU is further to facilitate GPU attestation, GPU encryption, GPU integrity-protection, and verification of data and control messages at the GPU inside of a trusted execution environment (TEE) of the GPU.

4. The apparatus of claim 1 , wherein the runtime and the user mode driver are to prepare command buffers and data structures based on first instructions from the application.

5. The apparatus of claim 4 , wherein the command buffers and the data structures to initialize the GPU and to dispatch a workload of the application on the GPU based on second instructions from a command streamer of the GPU.

6. The apparatus of claim 1 , wherein the client platform comprises a GPU middleware layer to abstract details associated with a network connection between the client platform and the GPU, and wherein the GPU middleware layer to build a device model of the GPU based on information acquired from the GPU via the VGM.

7. The apparatus of claim 1 , wherein the VGM exposes a plurality of interfaces to the client platform, the plurality of interfaces comprises at least one of a management interface, a control interface, and a data interface.

8. A method comprising:

providing, by a graphics processing unit (GPU), a virtual GPU monitor (VGM) to interface over a network with a middleware layer of a client platform that is operated remote to the GPU, the VGM to interface with the middleware layer using a message passing interface, and wherein the client platform hosts userspace components of a GPU stack of the GPU, the userspace components comprising an application to utilize the GPU for acceleration of tasks of the application running on the client platform, a runtime corresponding to the GPU, a user mode driver of the GPU, and a kernel mode driver of the GPU;

exposing, by the VGM, virtual functions (VFs) of the GPU to the middleware layer of the client platform;

processing, by the VGM, request messages directed to the GPU from the middleware layer, the request messages originating from the application and corresponding to VFs of the GPU to be utilized by the client platform; and

generating, by the VGM, a response to the request messages for the middleware layer.

9. The method of claim 8 , wherein the GPU virtualizes resources of the GPU and exposes the resources to the client platform, the resources comprising at least the VFs and memory of the GPU.

10. The method of claim 8 , wherein the GPU is further to facilitate GPU attestation, encrypting, and integrity-protecting, and verifying data and control messages at the GPU inside of a trusted execution environment (TEE) of the GPU.

11. The method of claim 8 , wherein the runtime and the user mode driver are to prepare command buffers and data structures based on first instructions from the application.

12. The method of claim 11 , wherein the command buffers and the data structures to initialize the GPU and to dispatch a workload of the application on the GPU based on second instructions from a command streamer of the GPU.

13. The method of claim 8 , wherein the client platform comprises a GPU middleware layer to abstract details associated with a network connection between the client platform and the GPU, and wherein the GPU middleware layer to build a device model of the GPU based on information acquired from the GPU via the VGM.

14. The method of claim 8 , wherein the VGM exposes a plurality of interfaces to the client platform, the plurality of interfaces comprises at least one of a management interface, a control interface, and a data interface.

15. 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 a graphics processing unit (GPU) of the one or more processors, a virtual GPU monitor (VGM) to interface over a network with a middleware layer of a client platform that is operated remote to the GPU, the VGM to interface with the middleware layer using a message passing interface, and wherein the client platform hosts userspace components of a GPU stack of the GPU, the userspace components comprising an application to utilize the GPU for acceleration of tasks of the application running on the client platform, a runtime corresponding to the GPU, a user mode driver of the GPU, and a kernel mode driver of the GPU;

expose, by the VGM, virtual functions (VFs) of the GPU to the middleware layer of the client platform;

process, by the VGM, request messages directed to the GPU from the middleware layer, the request messages originating from the application and corresponding to VFs of the GPU to be utilized by the client platform; and

generate, by the VGM, a response to the request messages for the middleware layer.

16. The non-transitory machine readable storage medium of claim 15 , wherein the GPU virtualizes resources of the GPU and exposes the resources to the client platform, the resources comprising at least the VFs and memory of the GPU.

17. The non-transitory machine readable storage medium of claim 15 , wherein the GPU is further to facilitate GPU attestation, encrypting, and integrity-protecting, and verifying data and control messages at the GPU inside of a trusted execution environment (TEE) of the GPU.

18. The non-transitory machine readable storage medium of claim 15 , wherein the runtime and the user mode driver are to prepare command buffers and data structures based on first instructions from the application, and wherein the command buffers and the data structures to initialize the GPU and to dispatch a workload of the application on the GPU based on second instructions from a command streamer of the GPU.

19. The non-transitory machine readable storage medium of claim 15 , wherein the client platform comprises a GPU middleware layer to abstract details associated with a network connection between the client platform and the GPU, and wherein the GPU middleware layer to build a device model of the GPU based on information acquired from the GPU via the VGM.

20. The non-transitory machine readable storage medium of claim 15 , wherein the VGM exposes a plurality of interfaces to the client platform, the plurality of interfaces comprises at least one of a management interface, a control interface, and a data interface.

Continuity (3)
Continuation 17133066 · Dec 23, 2020
Provisional Application 63083565 · Sep 25, 2020
Related Publication 20220100581A1 · Mar 31, 2022
References Cited (92)
US 7971236B1 · Lentini · 2011 [cited by applicant]
US 8930717B2 · Smith · 2015 [cited by applicant]
US 10074206B1 · Ingegneri · 2018 [cited by examiner]
US 10482291B2 · Woodall · 2019 [cited by applicant]
US 10649790B1 · Ingegneri · 2020 [cited by examiner]
US 10652108B2 · Guim Bernat · 2020 [cited by applicant]
US 10528765B2 · Smith et al. · 2020 [cited by applicant]
US 10776145B2 · Iyer et al. · 2020 [cited by applicant]
US 11449963B1 · Beeler · 2022 [cited by examiner]
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 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 · 2019 [cited by examiner]
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 · 2020 [cited by examiner]
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 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 · 2022 [cited by examiner]
US 20240086258A1 · Lal et al. · 2024 [cited by applicant]
US 20240184639A1 · Lal et al. · 2024 [cited by applicant]
US 20240281302A1 · 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]
International Patent Application No. PCT/US2021/045185 “International Preliminary Report on Patentability”, mailed Apr. 6, 2023, 9 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]
Anonymous: CUDA Runtime API version v11.1.74, Chapter 5, section 5.29, Sep. 15, 2020, XP055865248, retrieved from the Internet <https://docs.nvidia.com/cuda/archive/11.1.0/pdf/CUDA_Runtime_API.pdf> [retrieved on Jan. 31… [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]
Notice of Grant for Dutch Application No. 2029026 mailed Jul. 27, 2022, 6 pages. [cited by applicant]
Search Report and Written Opinion for Dutch Application No. 2029026 mailed May 25, 2022, 12 pages. [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/526,097 “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/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,569 “Non-Final Office Action” mailed Sep. 26, 2023, 13 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/532,562 “Notice of Allowance” mailed Feb. 27, 2024, 8 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/532,569 “Advisory Action” mailed May 2, 2024, 3 pages. [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. 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]
Cited By (1)
US 12,405,838