Portable Framework for Heterogeneous Compute Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multi-processor architectures require static binding with proprietary hardware, leading to increased complexity and costs, underutilization of infrastructure, and platform-specific code, making it challenging to develop portable and efficient software applications.
Innovation Solution
A portable framework that parses annotated code, transforms it into an intermediate form based on hardware architecture descriptions and optimization metrics, determines optimal computing resources, and schedules task execution without static binding, utilizing heterogeneous resources like GPUs, FPGAs, and CPUs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If static binding with proprietary hardware is used, then hardware optimization is improved, but device complexity and software portability deteriorate
Solution Approach 1:
The patent introduces a portable framework as an intermediary layer between the software application and heterogeneous hardware resources. This framework includes a task dispatcher that translates high-level task descriptions into hardware-specific operations, and a resource manager that abstracts hardware details. The intermediate representation (IR) format serves as a mediator that can be optimized for different hardware platforms without requiring static binding, thus achieving hardware optimization while maintaining software portability and reducing development complexity.
2Power
If static binding with proprietary hardware is used, then hardware performance is improved, but adaptability and infrastructure cost deteriorate
Solution Approach 1:
The patent creates a universal portable framework that can execute on multiple heterogeneous hardware platforms including CPUs, GPUs, FPGAs, and other accelerators. The framework uses a hardware-agnostic intermediate representation that can be deployed across different infrastructure environments without modification. This multi-functionality approach allows the same software to adapt to various hardware configurations, achieving both high performance on specific hardware and broad portability across platforms, while reducing infrastructure deployment costs through shared codebase.
3Productivity
If static binding is used, then execution efficiency on specific hardware is improved, but resource utilization and flexibility deteriorate
Solution Approach 1:
The patent implements dynamic task dispatching that can adaptively allocate computational tasks to appropriate hardware resources based on runtime conditions, task characteristics, and hardware availability. The portable framework maintains a pool of heterogeneous computing resources and dynamically binds tasks to optimal execution platforms without static hardware binding. This dynamic approach ensures high execution efficiency by matching task requirements with suitable hardware capabilities while maximizing resource utilization and preventing hardware underutilization across the infrastructure.
Data Source
AI summary
Configurations of a system and a method for implementing a framework that optimizes the execution and deployment of operations in a computationally intensive software applications including varying complexity workloads, are described. In one aspect, a portable framework (PF) may transform an algorithmic routine developed via an IDE into an intermediate form. The PF may enable adding constraint definitions to the intermediate form of the algorithmic software routine. The PF may further enable or provision including constraint definitions, hardware architecture description and multiple optimization metrics to the intermediate form. Based on the constraint definitions, the hardware architecture description, and the multiple optimization metrics the PF may determine computing resources from multiple heterogenous hardware resources deployed on a hardware platform. The execution of the operations may be optimized by deploying the operations to be executed on the determined computing resources.


