Patent classifications
G06F9/45525
System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address
A system for an agnostic runtime architecture. The system includes a system emulation/virtualization converter, an application code converter, and a converter wherein a system emulation/virtualization converter and an application code converter implement a system emulation process, and wherein the system converter implements a system and application conversion process for executing code from a guest image, wherein the system converter or the system emulator. The system further includes a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address, wherein a load will check for a same address of subsequent loads from a same thread, and a thread checking process that enable other thread store checks against the entire load queue and a monitor extension.
Interface and interruption management
The method includes identifying, by one or more computer processors, a program being utilized by a user. The method further includes identifying, by one or more computer processors, an environmental factor related to a user of the program. The method further includes determining, by one or more computer processes, a relationship between the program and the environmental factor. The method further includes generating, by one or more computer processors, one or more instructions for the program based at least in part on the determined relationship and the environmental factor.
Avoiding or deferring data copies
Methods and systems for avoiding or deferring data copies are disclosed. Using a virtual machine, it is determined whether a set of program code comprises references to a data object after an operation to generate a copy of the data object. If not, a set of optimized program code is generated in which the operation to copy the data object is replaced with an operation to update a reference. Using the virtual machine, it is determined whether the set of program code comprises an operation to generate a copy of a buffer object. If so, a set of further optimized program code is generated, comprising an allocation of one or more memory pages to store the buffer object with a copy-on-write parameter instead of the operation to generate the copy of the buffer object.
METHOD AND SYSTEM FOR COMPILER OPTIMIZATION BASED ON ARTIFICIAL INTELLIGENCE
This application describes methods, systems, and apparatus, including computer programs encoded on computer storage media, of an AI-assisted compiler. An example method includes obtaining intermediate code and executable code generated by compiling a computer program with a compiler; determining a reward based on one or more traces obtained by executing the executable code in a runtime system; generating an embedding vector based on the intermediate code and the one or more traces to represent code execution states; determining, using a reinforcement learning agent, one or more optimization actions based on the embedding vector and the reward; and updating the compiler by applying the one or more optimization actions.
Rendering Optimisation by Recompiling Shader Instructions
A rendering optimisation identifies a draw call within a current render (which may be the first draw call in the render or a subsequent draw call in the render) and analyses a last shader in the series of shaders used by the draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location. If this determination is positive, the method further recompiles the last shader to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers.
Microservice manager and optimizer
In one embodiment, an agent executed by a device detects an invocation that is made using Java reflection of a method associated with a microservice. The agent instruments the invocation of the method associated with the microservice, to capture one or more metrics regarding the microservice. The agent optimizes the invocation of the method associated with the microservice. The agent provides the one or more metrics regarding the microservice to a user interface.
Optimization of the execution time of a computer program by determining the implementation of a function according to range of input parameters and accuracy
This invention relates to a method of optimization of a computer program, comprising: a first step (S.sub.11, S.sub.12, S.sub.13, S.sub.14) of determination of a call of a function having at least one input parameter, said call corresponding to a first criterion according to which said input parameter is inside an interval substantially smaller than the range of possible values for said input parameter, and to a second criterion corresponding to a desired accuracy for said call; a second step (S.sub.2) of automatic generation of an executable code for implementing said function, minimizing execution time for said input parameter being within said interval and compliant with said desired accuracy; a third step (S.sub.3) of replacing the existing code implementing said function by the executable code generated at said second step.
MICROSERVICE MANAGER AND OPTIMIZER
In one embodiment, an agent executed by a device detects an invocation that is made using Java reflection of a method associated with a microservice. The agent instruments the invocation of the method associated with the microservice, to capture one or more metrics regarding the microservice. The agent optimizes the invocation of the method associated with the microservice. The agent provides the one or more metrics regarding the microservice to a user interface.
Checkpointing and restoring containers to optimize containerized managed runtime applications
Optimizing containerized applications includes receiving managed runtime code, creating a first container within a managed runtime environment, and executing the managed runtime code in the first container within the managed runtime environment. Responsive to a determination that the managed runtime environment has performed at least one optimization of the managed runtime code to create optimized managed runtime code during a first lifetime of the managed runtime environment, the first container is checkpointed into a first memory image to create a first checkpointed container including the optimized managed runtime code. The first checkpointed container is stored.
High-level vectorization and scalarization of Java vector API library methods
Vectorization and scalarization of methods are provided. A plurality of node webs is constructed based on traversing an intermediate representation of a program. Transitive closure of the plurality of node webs is performed to form a set of final node webs. It is determined that each respective node in the set of final node webs can be converted into one of vector operation code or a sequence of scalar operation codes based on at least one node including a specified vector length and only one vector length value being specified within the set of final node webs. Each respective node in the set of final node webs is converted into one of corresponding vector operation code or a corresponding sequence of scalar operation codes to accelerate execution of supported and unsupported methods of the program.