Selective Hardware Acceleration for Application Code Segments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing performance is hindered by inefficient execution of application code on various hardware processors, necessitating a method to enhance performance without excessive hardware resource expenditure.

Innovation Solution

A process that allows selective hardware acceleration of application code portions by identifying and annotating specific code segments for acceleration, determining suitability based on configuration received via a network, and managing acceleration through chipset APIs to optimize CPU or GPU frequency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hardware acceleration is applied to application code, then computing performance is improved, but hardware resource consumption increases

Engineering Contradiction:
Improvecomputing performanceVSAvoidhardware resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent divides application code into distinct segments that can be individually identified and annotated for hardware acceleration. By segmenting the code base and applying acceleration selectively to specific portions rather than the entire application, the system achieves performance improvements for critical paths while conserving hardware resources during non-critical execution phases.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by applying different execution modes to different parts of the application code. Specifically, certain code segments are marked with annotations to receive hardware acceleration (such as GPU or specialized processor execution) while other segments continue to execute on standard CPU, creating a heterogeneous execution environment optimized for each code region's specific requirements.

Inventive Principle:
Principle #3Local quality

2Productivity

If selective hardware acceleration is implemented, then performance optimization is achieved, but system complexity increases

Engineering Contradiction:
Improveperformance optimizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary compilation layer that automatically processes source code, inserts acceleration annotations, and generates optimized machine code. This intermediary compiler acts as a mediator between the high-level application code and the heterogeneous hardware execution environments, handling the complexity of selective acceleration transparently without requiring changes to the application's source code or manual intervention.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements self-service by enabling the compilation system to automatically identify candidate code segments for hardware acceleration and insert appropriate annotations without external intervention. The system analyzes the application code, determines which portions would benefit from acceleration, and autonomously generates the annotated version ready for optimized compilation and execution.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11327798B1Accelerating an application code portion based on a received configuration
Publication Date: 2022.05.10 META PLATFORMS INC
  • US11327798B1 patent drawing
  • US11327798B1 patent drawing
  • US11327798B1 patent drawing

AI summary

An application level request associated with a portion of an application code requested to be executed with an adjusted hardware acceleration (wherein the portion of the application code is identified using a mechanism compatible with a plurality of different hardware processors) is received. It is determined whether to allow the adjusted hardware acceleration based at least in part on a configuration received via a network.