US 12,468,929 B2
Self-optimizing and self-programming computing systems: a combined compiler, complex networks, and machine learning approach
Paul Bogdan Bogdan, Los Angeles, CA (US); Shahin Nazarian, Los Angeles, CA (US); and Yao Xiao, Los Angeles, CA (US)
Assigned to University of Southern California, Los Angeles, CA (US)
Filed by UNIVERSITY OF SOUTHERN CALIFORNIA, Los Angeles, CA (US)
Filed on Aug. 11, 2020, as Appl. No. 16/990,391.
Claims priority of provisional application 62/885,517, filed on Aug. 12, 2019.
Prior Publication US 2021/0049465 A1, Feb. 18, 2021
Int. Cl. G06N 3/08 (2023.01); G06N 3/045 (2023.01)
CPC G06N 3/08 (2013.01) [G06N 3/045 (2023.01)] 27 Claims
OG exemplary drawing
 
1. A method executed by a self-optimizing and self-programming computing system, the method comprising:
a transforming a target application at compile time from low-level virtual machine intermediate representation instructions into an instruction dependency graph with one or more trained neural network classifiers, the instruction dependency graph including nodes that denete denoting low-level virtual machine intermediate representation instructions, edges that-denote denoting data dependencies, and edge weights that denote denoting an amount of data to be transferred between two dependent instructions;
b) applying the one or more trained neural network classifiers to identify first partitions in the instruction dependency graph having predefined programming features;
c) applying community detection to identify remaining partition of partitions in the instruction dependency graph having wherein the partitions include clusters and or and/or tasks with minimized data communication comprising groups of instructions having intra-group data dependencies with greater cumulative weight than inter-group data dependencies; and
d) mapping at runtime heterogeneous tasks to hardware components in a heterogeneous hardware platform using distributed intelligent schedulers configured to allocate tasks based on hardware availability and task requirements with distributed intelligent schedulers to fully utilize hardware components in a heterogeneous hardware platform such that performance is-maximized, the distributed intelligent schedulers mapping tasks onto either general central processing units (CPU), graphics processing units (GPU), or domain-specific programming elements, wherein the distributed intelligent schedulers are configured to reconfigure hardware as specified in target application requirements, and wherein the distributed intelligent schedulers are reinforced learning-based distributed intelligent schedulers configured to manage a set of domain resources required by the target application.