Runtime GPU Binary Cross-Compiler for ISA Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Different graphics processing unit (GPU) architectures have distinct instruction set architectures (ISAs) and application binary interfaces (ABIs), leading to binary incompatibility issues where programs compiled for one GPU cannot be executed on another without modification.

Innovation Solution

A computing device with a second GPU having a different ISA and a processor that executes a run-time executable cross-compiler to translate compiled binaries from the first ISA to the second ISA, allowing GPU-executed programs to run on the second GPU by analyzing and translating sequences of GPU-executed programs in O(N) complexity, where N is the number of instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If programs are compiled for a specific GPU instruction set architecture, then execution efficiency on that GPU is improved, but compatibility with other GPU architectures deteriorates

Engineering Contradiction:
Improveexecution efficiencyVSAvoidcompatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a binary translation layer that acts as an intermediary between the compiled binary and the target GPU. The translator converts instructions from a source ISA to a target ISA at runtime, enabling programs compiled for one GPU architecture to execute on another architecture without modifying the original compiled binary, thus maintaining both execution efficiency and compatibility

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If static discovery and intermediate representations are used for cross-compilation, then translation accuracy is improved, but compilation time and system complexity deteriorate

Engineering Contradiction:
Improvetranslation accuracyVSAvoidcompilation time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of the binary code to identify translation patterns and instruction mappings before actual translation. By pre-processing the binary to understand its structure and instruction sequences, the system achieves accurate translation without requiring complex intermediate representations or lengthy compilation processes

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts only the essential translation information needed for binary translation, such as instruction opcodes and operand patterns, without converting the entire program into complex intermediate representations. This selective extraction maintains translation accuracy while significantly reducing processing overhead and system complexity

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10102015B1Just in time GPU executed program cross compilation
Publication Date: 2018.10.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10102015B1 patent drawing
  • US10102015B1 patent drawing
  • US10102015B1 patent drawing

AI summary

A computing device for just-in-time cross-compiling compiled binaries of application programs that utilize graphics processing unit (GPU) executed programs configured to be executed on a first GPU having a first instruction set architecture (ISA), the computing device including a second GPU having a second ISA different from the first ISA of the first GPU, and a processor configured to execute an application program that utilizes a plurality of GPU-executed programs configured to be executed for the first ISA of the first GPU, execute a run-time executable cross-compiler configured to, while the application program is being executed, translate compiled binary of the plurality of GPU-executed programs from the first ISA to the second ISA, and execute the translated plurality of GPU-executed programs on the second GPU.