Coprocessor Code Translation via Machine Learning Models

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Algorithm designers face challenges in programming for parallel coprocessors like GPUs or FPGAs, as they often require expertise in low-level languages, leading to lengthy execution times and the need for specialized programmers for modifications.

Innovation Solution

The method involves translating coprocessor-unaware code into coprocessor-aware code using machine learning, enabling execution on coprocessors without requiring knowledge of low-level languages, by parsing source code to generate intermediate code, analyzing it to determine a model for coprocessor-aware code generation, and generating coprocessor-aware code based on that model.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If designers use high-level coprocessor-unaware programming languages, then ease of programming is improved, but execution time increases and productivity decreases

Engineering Contradiction:
Improveease of programmingVSAvoidexecution time
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces an intermediary translation system that converts high-level coprocessor-unaware code into optimized coprocessor-aware code. This mediator handles the complexity of parallel programming automatically, allowing designers to write simple high-level code while the system generates efficient low-level code that executes quickly on coprocessors like GPUs and FPGAs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the manual mechanical process of writing complex parallel code with an automated machine learning-based translation system. The system uses trained models to automatically generate optimized coprocessor code from high-level source code, eliminating the need for designers to manually handle the complex mechanics of parallel programming.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If designers seek help from experts in GPU or FPGA languages, then execution time is reduced, but device complexity and need for specialized expertise increases

Engineering Contradiction:
Improveexecution timeVSAvoidspecialized programming expertise
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent enables self-service by allowing algorithm designers to automatically translate their own high-level code into optimized coprocessor code without needing external experts. The machine learning-based translation system empowers designers to independently generate efficient parallel code, eliminating the dependency on specialized GPU or FPGA programmers.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent creates a universal translation system that works with multiple high-level programming languages and generates code for various coprocessor types (GPUs, FPGAs, APUs). This multi-functional system handles different language inputs and coprocessor targets, making specialized expertise unnecessary across different platforms.

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

3Productivity

If experts implement algorithms for coprocessors, then execution time is reduced, but loss of time in implementation and modifications increases

Engineering Contradiction:
Improveexecution timeVSAvoidimplementation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-training machine learning models on large datasets of high-level code and corresponding optimized coprocessor code. This preliminary training enables the system to rapidly translate new code without requiring time-consuming manual implementation, allowing designers to get results in seconds rather than hours or days.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the slow manual mechanical process of expert implementation with automated machine learning-based code generation. The system uses trained models to instantly translate high-level code into optimized coprocessor code, eliminating the time-consuming human effort previously required for both initial implementation and subsequent modifications.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10324729B2Machine intelligence and learning for graphic chip accessibility and execution
Publication Date: 2019.06.18 THE CHARLES STARK DRAPER LABORATORY INC
  • US10324729B2 patent drawing
  • US10324729B2 patent drawing
  • US10324729B2 patent drawing

AI summary

Methods and systems enabling rapid application development, verification, and deployment requiring only knowledge of high level languages. Two aspects of the disclosed methods and systems are called Machine Intelligence and Learning for Graphic chip Accessibility (MILeGrA) and Machine Intelligence and Learning for Graphic chip Execution (MILeGrE). Using MILeGrA and MILeGrE, high-level language programmers do not need to learn complex coprocessor programming languages, but can still use coprocessors (e.g., GPU processors) to benefit from results-in-seconds big data capabilities through the translation of coprocessor-unaware code to coprocessor-aware code. Execution of such coprocessor-unaware code on coprocessors includes parsing the coprocessor-unaware code to generate intermediate code, analyzing the intermediate code to determine a model for coprocessor-aware code generation, and generating coprocessor-aware code based on the model using machine learning techniques.