Portable Framework for Heterogeneous Compute Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Power

If static binding with proprietary hardware is used, then hardware optimization is improved, but device complexity and software portability deteriorate

Engineering Contradiction:
Improvehardware optimizationVSAvoidsoftware development complexity
Core Design Contradiction:
PowerVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Power

If static binding with proprietary hardware is used, then hardware performance is improved, but adaptability and infrastructure cost deteriorate

Engineering Contradiction:
Improvehardware performanceVSAvoidsoftware portability
Core Design Contradiction:
PowerVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If static binding is used, then execution efficiency on specific hardware is improved, but resource utilization and flexibility deteriorate

Engineering Contradiction:
Improveexecution efficiencyVSAvoidhardware underutilization
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20240192934A1Framework for development and deployment of portable software over heterogenous compute systems
Publication Date: 2024.06.13 TEJAS NETWORKS LTD
  • US20240192934A1 patent drawing
  • US20240192934A1 patent drawing
  • US20240192934A1 patent drawing

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.