IP Library Granted Patent US 12,554,545
Granted Patent B2
US 12,554,545 · App. 17/487,103 · Granted Feb 17, 2026

Dynamic allocation of platform resources

Inventors: Dmitri Tikhostoup (Markham, CA); Daniel Waihim Wong (Santa Clara, CA); William Herz (Santa Clara, CA)
Assignees: ADVANCED MICRO DEVICES, INC.; ATI TECHNOLOGIES ULC
G06F9/5044
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,554,545
App. No.
17/487,103
Filed
Sep 28, 2021
Granted
Feb 17, 2026
Kind
B2
Art Unit
2196
USPC
718/104
Abstract

A dynamic allocator for providing platform resource candidates is disclosed. In an implementation, a platform resource allocator receives a request from a workload initiator such as, an application, for a platform resource recommendation. The platform resource allocator analyzes performance capabilities and utilization metrics of a plurality of platform resources for each of a plurality of resource. The plurality of platform resources includes one or more graphics processor units (GPUs) and one or more accelerated processing units (APUs). The platform resource allocator dynamically provides the platform resource recommendation to the workload initiator to select one or more of the plurality of platform resources to execute a workload based on the performance capabilities and utilization metrics.

Claims (28)

1 . A method of providing platform resource candidates, the method comprising:

identifying one or more platform resource candidates from a plurality of platform resources based on a request received from a workload initiator for platform resource candidates, performance capabilities of the plurality of platform resources, utilization metrics of the plurality of platform resources, and non-discoverable performance capabilities that are non-discoverable by an operating system, wherein the plurality of platform resources includes one or more graphics processor units (GPUs) and one or more accelerated processing units (APUs); and

dynamically providing a recommendation including the identified one or more platform resource candidates to the workload initiator.

2 . The method of claim 1 , wherein the platform resource candidates are also identified based on non-performance capabilities and performance limitations of the plurality of platform resources.

3 . The method of claim 1 , further comprising collecting the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations for the plurality of platform resources in a platform resources library.

4 . The method of claim 1 , further comprising consulting a platform resources library to determine the non-discoverable performance capabilities that are non-discoverable by an operating system, performance limitations, and historical performance data for the plurality of platform resources based on the request from the workload initiator.

5 . The method of claim 1 , further comprising monitoring the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations for the plurality of platform resources during runtime of the workload.

6 . The method of claim 1 , further comprising dynamically providing, during runtime of the workload, updated platform resource candidates based on adjusted performance capabilities and adjusted utilization metrics of the plurality of platform resources.

7 . The method of claim 1 , further comprising ranking each of the plurality of platform resources based on the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations.

8 . The method of claim 1 , further comprising predicting a utilization impact to execute the workload for each of the plurality of platform resources based on the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations.

9 . The method of claim 1 , wherein the performance capabilities include operational modes of the plurality of platform resources, interconnection capabilities between the plurality of platform resources, power capabilities of the plurality of platform resources, and peripheral device capabilities.

10 . The method of claim 1 , wherein the plurality of platform resources further includes a local memory, a system memory, one or more peripheral devices, a display controller, a bus interface controller, and a memory subsystem controller, wherein at least one of the one or more GPUs is a discrete GPU.

11 . An apparatus of providing platform resource candidates, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed therein computer program instructions that, when executed by the computer processor, cause the apparatus to:

identify one or more platform resource candidates from a plurality of platform resources based on a request received from a workload initiator for platform resource candidates, performance capabilities and utilization metrics of the plurality of platform resources, and non-discoverable performance capabilities that are non-discoverable by an operating system, wherein the plurality of platform resources includes one or more graphics processor units (GPUs) and one or more accelerated processing units (APUs); and

dynamically provide a recommendation including the identified one or more platform resource candidates to the workload initiator.

12 . The apparatus of claim 11 , further comprising computer program instructions that, when executed, cause the apparatus to consult a platform resources library to determine the non-discoverable performance capabilities that are non-discoverable by an operating system, performance limitations, and historical performance data for the plurality of platform resources based on the request from the workload initiator.

13 . The apparatus of claim 11 , further comprising computer program instructions that, when executed, cause the apparatus to monitor the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations for the plurality of platform resources during runtime of the workload.

14 . The apparatus of claim 11 , further comprising computer program instructions that, when executed, cause the apparatus to dynamically provide, during runtime of the workload, updated platform resource candidates based on adjusted performance capabilities and adjusted utilization metrics of the plurality of platform resources.

15 . The apparatus of claim 11 , further comprising computer program instructions that, when executed, cause the apparatus to rank each of the plurality of platform resources based on the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations.

16 . The apparatus of claim 11 , further comprising computer program instructions that, when executed, cause the apparatus to predict a utilization impact to execute the workload for each of the plurality of platform resources based on the performance capabilities, the utilization metrics, the non-discoverable performance capabilities that are non-discoverable by an operating system, and performance limitations.

17 . A computer program product of providing platform resource candidates, the computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to:

identify one or more platform resource candidates from a plurality of platform resources based on a request received from a workload initiator for platform resource candidates, performance capabilities and utilization metrics of the plurality of platform resources, and non-discoverable performance capabilities that are non-discoverable by an operating system, wherein the plurality of platform resources includes one or more graphics processor units (GPUs) and one or more accelerated processing units (APUs); and

dynamically provide a recommendation including the identified one or more platform resource candidates to the workload initiator.

18 . The computer program product of claim 17 , wherein the platform resource candidates are also identified based on the identified one or more platform resource candidates based on non-performance capabilities and performance limitations of the plurality of platform resources.

19 . The computer program product of claim 17 , further comprising computer program instructions that, when executed, cause the computer to:

consult a platform resources library to determine the non-discoverable performance capabilities that are non-discoverable by an operating system, performance limitations, and historical performance data for the plurality of platform resources based on the request from the workload initiator.

20 . The computer program product of claim 17 , further comprising computer program instructions that, when executed, cause the computer to:

dynamically provide, during runtime of the workload, updated platform resource candidates based on adjusted performance capabilities and adjusted utilization metrics of the plurality of platform resources.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2021
From: WONG, DANIEL WAIHIM; HERZ, WILLIAM
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 057619/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2021
From: TIKHOSTOUP, DMITRI
To: ATI TECHNOLOGIES ULC
Reel/Frame 057620/0168 →
Continuity (1)
Related Publication 20230094384A1 · Mar 30, 2023
References Cited (44)
US 8358876B1 · Gilra et al. · 2013 [cited by applicant]
US 10818279B1 · Swanson et al. · 2020 [cited by applicant]
US 10853148B1 · Kenney et al. · 2020 [cited by applicant]
US 11397658B1 · Pang · 2022 [cited by examiner]
US 11663050B2 · Peng · 2023 [cited by examiner]
US 20030095135A1 · Kaasila et al. · 2003 [cited by applicant]
US 20060077213A1 · Li · 2006 [cited by applicant]
US 20080016512A1 · Doi · 2008 [cited by examiner]
US 20090310016A1 · Fukuda et al. · 2009 [cited by applicant]
US 20100149216A1 · Dutta et al. · 2010 [cited by applicant]
US 20100153956A1 · Capps, Jr. et al. · 2010 [cited by applicant]
US 20100329564A1 · Hervas et al. · 2010 [cited by applicant]
US 20110239220A1 · Gibson · 2011 [cited by examiner]
US 20120162234A1 · Blinzer et al. · 2012 [cited by applicant]
US 20120173709A1 · Li · 2012 [cited by examiner]
US 20130283286A1 · Lee · 2013 [cited by examiner]
US 20140176583A1 · Abiezzi et al. · 2014 [cited by applicant]
US 20140244804A1 · Mng et al. · 2014 [cited by applicant]
US 20140298349A1 · Jackson · 2014 [cited by examiner]
US 20150271491A1 · Wang · 2015 [cited by applicant]
US 20150286935A1 · Mukherjee · 2015 [cited by examiner]
US 20170317945A1 · Guo · 2017 [cited by examiner]
US 20190121674A1 · Chen · 2019 [cited by examiner]
US 20200014273A1 · Ogawa et al. · 2020 [cited by applicant]
US 20200142735A1 · Maciocco · 2020 [cited by examiner]
US 20200167361A1 · Princehouse et al. · 2020 [cited by applicant]
US 20200304752A1 · Aluru et al. · 2020 [cited by applicant]
US 20200409762A1 · Branover · 2020 [cited by examiner]
US 20210117217A1 · Croteau · 2021 [cited by examiner]
US 20210124615A1 · Klingenbrunn et al. · 2021 [cited by applicant]
US 20210144066A1 · Marinucci · 2021 [cited by examiner]
US 20210149785A1 · Li et al. · 2021 [cited by applicant]
US 20210158629A1 · Breugelmans et al. · 2021 [cited by applicant]
US 20210232399A1 · Yang · 2021 [cited by examiner]
US 20220116660A1 · Walker et al. · 2022 [cited by applicant]
US 20220309314A1 · Park et al. · 2022 [cited by applicant]
US 20220334891A1 · Fontaine · 2022 [cited by applicant]
US 20230161632A1 · Herz et al. · 2023 [cited by applicant]
International Search Report and Written Opinion, PCT/US2022/043606, Jan. 31, 2023, 14 pages. [cited by applicant]
International Search Report and Written Opinion, PCT/US2022/044565, Jan. 13, 2023, 12 pages. [cited by applicant]
Xu et al., “Scaling Up Data-Parallel Analytics Platforms: Linear Algebraic Operation Cases,” Published in: 2017 IEEE International Conference on Big Data (Big Data), Date of Conference: Dec. 11-14, 2017, Boston, MA, USA… [cited by applicant]
Fan, “Optimizing Image Sharpening Algorithm on GPU,” 2015 44th International Conference on Parallel Processing, Beijing, China, Date of Conference: Sep. 1-4, 2015, Date Added to IEEE Xplore: Dec. 10, 2015, DOI: 10.1109/… [cited by applicant]
Freedman et al., “Image and Video Upscaling from Local Self-Examples,” ACM Transactions on Graphics (TOG), vol. 30, Issue 2, https://doi.org/10.1145/1944846.1944852, Published: Apr. 22, 2011, 11 pages. [cited by applicant]
Raina et al., “Large-scale Deep Unsupervised Learning using Graphics Processors,” ICML '09: Proceedings of the 26th Annual International Conference on Machine Learning, https://doi.org/10.1145/1553374.1553486, Published… [cited by applicant]