G06F8/4441

Sub-idle thread priority class
11537429 · 2022-12-27 · ·

Implementations for scheduling a sub-idle thread priority class are described. An example method may include assigning, by a scheduler of a computer system, a sub-idle execution priority class to a code optimization thread; responsive to determining that a central processing unit has been idle for at least a threshold period of time, running the code optimization thread; and generating, by the code optimization thread, an optimized code of a program executable by the computer system. The method may further execute the optimized code.

Generating compilable machine code programs from dynamic language code
11537372 · 2022-12-27 · ·

Methods and systems describe providing a compilable machine code program from dynamic language code. First, the system receives a computer program consisting of code in a dynamic language. For each dynamic instruction within the code, the system: identifies all function calls within the code which may call the dynamic instruction; generates a super slice callgraph for all identified function calls for the dynamic instruction, including dependency relationships for instance variables and static variables within time constraints; and generates a set of slices for the dynamic instruction. The system then compiles and executes each slice to identify one or more values for each dynamic instruction. Next, the system updates the computer program such that each of at least a subset of the dynamic instructions is replaced with machine code instructions based on the corresponding values.

METHOD AND DEVICE FOR MANAGING ACCESSES OF MULTIPLE SOFTWARE COMPONENTS TO SOFTWARE INTERFACES

A method for managing accesses of multiple software components to software interfaces. In the method, a temporal allocation of the software components to the software interfaces is calculated statically based on requirements of the software components with respect to the software interfaces. The allocation is optimized continuously in light of an observed runtime behavior of the software components.

POINTER ALIGNMENT COMPUTATION IN PROGRAM CODE ACCORDING TO CODE PATTERN ANALYSES

Pointer alignment in a computer programming to obtain information enabling a compiler to optimize program code. Equivalence classes of pointers are collected in a program using a flow-insensitive yet field-sensitive pointer analysis operation iterating through an entire program code of the program. The equivalence classes of pointers, once collected, are mapped to and recorded in an equivalence class mapping table (ECTable). A portion of the collected equivalence classes of pointers are identified, from the ECTable, as pointer candidates for a pointer alignment computation according to a code pattern analysis of each pointer candidate. The code pattern analysis is based on available alignment information, and whether the alignment information would enable a compiler to optimize pointer references of the candidate pointer. The pointer alignment computation is then performed for each identified pointer candidate to obtain the alignment information used to optimize execution of the program.

NON-TRANSITORY COMPUTER-READABLE RECORDING MEDIUM AND COMPILATION METHOD
20220405110 · 2022-12-22 · ·

The present disclosure relates to a non-transitory computer-readable recording medium storing a complier that causes a computer to execute a process. The process includes generating a program. The program includes a first code that compares a first execution time from a start to an end of a loop processing when the loop processing is executed with a fixed-length SIMD instruction, with a second execution time from the start to the end of the loop processing when the loop processing is executed with a variable-length SIMD instruction, and a second code that executes the loop processing with the variable length SIMD instruction when a result of the comparison reveals that the first execution time is longer than the second execution time.

SYSTEM AND METHOD FOR HOT METHOD CALL GRAPH ANALYSIS

Systems and methods for hot method call graph analysis. An exemplary method can provide a hot method call graph analyzer. The method can receive a generated call graph, the generated call graph comprising a plurality of branches. The method can automatically traverse each branch of the generated call graph. For each traversed branch, the method can generate and store a list of leaf methods of each branch along with a corresponding execution time and number of samples of each leaf method, resulting in plurality of leaf method lists. The method can combine each of the plurality lists of leaf methods in an overall list of leaf methods of the generated call graph, resulting in a complete list of leaf methods of the generated call graph, which can be provided via, for example, a user interface. The systems and method described can additionally perform similar analysis for non-leaf methods.

Method and apparatus for generating chip-based computing function, device, and storage medium

Embodiments of the present disclosure provide a method and apparatus for generating a chip-based computing function, a device, and a storage medium. The method includes: acquiring an input parameter value associated with a computing function supported by a chip; determining, based on the input parameter value, at least one candidate computing function template corresponding to the computing function, the candidate computing function template having a configurable parameter associated with performance of the candidate computing function template, and the configurable parameter having at least one candidate value; and determining, according to the input parameter value and candidate values of the configurable parameter of the candidate computing function template, a target computing function template and a target value of a configurable parameter of the target computing function template.

Method for compilation optimization of hosted app, electronic device and readable storage medium

The technical solutions relate to the technical field of compilation of applications, and particularly to the technical field of mini programs. A developer tool constructs a first compilation result of the hosted APP before compilation optimization and a second compilation result of the hosted APP after the compilation optimization respectively based on a source code of the hosted APP, and uploads them to a management platform. The management platform sends the corresponding compilation results according to environment data of the hosted APP running environment provided by the host APP, so that the host APP uses the hosted APP running environment provided by the host APP to run the obtained compilation result.

Multiple output fusion for operations performed in a multi-dimensional array of processing units

Methods, systems, and apparatus, including instructions encoded on storage media, for performing reduction of gradient vectors and similarly structured data that are generated in parallel, for example, on nodes organized in a mesh or torus topology defined by connections in at least two dimension between the nodes. The methods provide parallel computation and communication between nodes in the topology.

OFFLOAD SERVER, OFFLOAD CONTROL METHOD, AND OFFLOAD PROGRAM
20230096849 · 2023-03-30 ·

An offload server includes: an application code analysis section configured to analyze a source code of an application and detect external library calls included in the source code as replacement sources; a replacement function detection section configured to retrieve libraries and IP cores from a code pattern database by using the detected external library calls as keys, as replacement-destination libraries/IP cores; and a replacement processing section configured to replace processing descriptions of the replacement sources with processing descriptions of the replacement-destination libraries/IP cores retrieved by the replacement function detection section and to generate interfaces of a CPU to the replacement-destination libraries/IP cores.