Reconfigurable Compiler Capsules for Multi-Architecture Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing executable programs compiled for a specific processor architecture are often incompatible with different architectures, requiring retargeting or recompilation, which is time-consuming and increases program size and processing requirements.
Innovation Solution
A compiler generates executable instructions and annotations that allow programs to be compatible with multiple processor architectures, including GPUs and CPUs, by decoding and optimizing instructions to create bundled capsules that include both executable instructions and annotations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If executable programs are compiled for a specific processor architecture, then execution efficiency on that architecture is improved, but compatibility with different architectures deteriorates
Solution Approach 1:
The patent creates a universal executable program format that can be executed on multiple processor architectures (CPU, GPU, FPGA, etc.) without requiring separate compilations. The bundled capsule structure with architecture-agnostic bytecode and runtime translation layer enables one program to serve multiple architectures, directly resolving the contradiction between optimization for specific architecture and compatibility across architectures.
Solution Approach 2:
The patent introduces an intermediary runtime system that translates architecture-specific instructions from the bundled capsule into native code for the target processor at execution time. This intermediary layer allows the executable to maintain architecture independence while achieving native execution efficiency, resolving the contradiction by mediating between the universal bytecode format and architecture-specific execution requirements.
2Adaptability or versatility
If retargeting or recompilation is performed for different processor architectures, then compatibility with different architectures is improved, but processing time and resource usage increase
Solution Approach 1:
The patent performs preliminary compilation actions by pre-generating architecture-independent bundled capsules containing bytecode and necessary instructions for multiple target architectures during a single compilation process. This preliminary action eliminates the need for time-consuming retargeting or recompilation when deploying to different architectures, as the executable is already prepared for multiple targets in advance.
Solution Approach 2:
The patent merges multiple architecture-specific compiled versions into a single bundled capsule executable that contains all necessary machine code and instructions for different architectures. This consolidation reduces compilation time by performing one compilation operation that produces a universally compatible executable, rather than requiring separate compilation operations for each architecture.
3Adaptability or versatility
If retargeting or recompilation is performed for different processor architectures, then compatibility with different architectures is improved, but program size increases drastically
Solution Approach 1:
The patent implements a nested structure where a compact bundled capsule containing architecture-independent bytecode is nested within a runtime translation system. The actual architecture-specific machine code is generated on-demand during execution rather than being stored in the executable file. This nesting approach dramatically reduces program size compared to storing multiple complete architecture-specific versions, while maintaining compatibility across architectures.
Solution Approach 2:
The patent uses copying by storing a single shared copy of the architecture-independent bundled capsule that can be copied and executed on any supporting architecture. Instead of maintaining separate copies for each architecture, the system creates one master copy that adapts to different architectures through the runtime translation mechanism, significantly reducing the total program size required for multi-architecture support.
Data Source
AI summary
Apparatuses, systems, and techniques to perform a compiler to generate one or more executable programs that may be configured to be performed by one or more of a plurality of different processor architectures. In at least one embodiment, a compiler generates one or more executable programs that may be configured to be performed by one or more of a plurality of different processor architectures based, at least in part, on said original uncompiled executable program.


