Coprocessor Code Translation via Machine Learning Models
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Productivity
If experts implement algorithms for coprocessors, then execution time is reduced, but loss of time in implementation and modifications increases
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.
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.
Data Source
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.


