G06F9/4552

Bootstrapping profile-guided compilation and verification

Apparatus and methods related providing application execution information (AEI) are provided. A server can receive a request to provide a software package for a particular software application. The server can determine composite AEI (CAEI) for the particular software application. The CAEI can include a composite list of software with data about software methods of the particular software application executed by a computing device other than the server. The server can extract particular AEI related to the particular software application from the CAEI. The particular AEI can provide compiler hints for compiling at least one software method predicted to be executed by the particular software application. The server can generate the software package, where the software package can include the particular software application and the particular AEI. The server can provide the software package.

Methods, blockchain nodes, and storage media for deploying smart contract

A computer-implemented method, non-transitory, computer-readable medium, and computer-implemented system are provided for deploying a smart contract in a blockchain network. The computer-implemented method includes: receiving, by a blockchain node in a blockchain network, a transaction for creating a smart contract, wherein the transaction comprises machine codes of the smart contract, and the machine codes of the smart contract are obtained by a compilation service provider performing Ahead of Time (AoT) compilation on bytecodes of the smart contract; determining, by the blockchain node, that the machine codes of the smart contract are obtained by a trusted compilation service provider; and in response to determining that the machine codes of the smart contract are obtained by the trusted compilation service provider, completing, by the blockchain node, a deployment of the smart contract.

Just-in-time post-processing computation capabilities for encrypted data

Aspects of a storage device including a memory and an encryption core are provided. The storage device may be configured for providing secure data storage, as well as one or more post-processing operations to be performed with the data. The encryption core, which may be configured to decrypt data, may control execution of one or more post-processing operations using the data. A read command received from a host device may include a tag associated with data identified by the read command. When encrypted data is retrieved from memory according to the read command, the encryption core may decrypt the encrypted data and provide the decrypted data for post-processing based on the tag. A corresponding post-processing operation may return a result when executed using the decrypted data. Rather than raw data identified by the read command, the result may be delivered to the host device in response to the read command.

SYSTEM AND METHOD FOR ADAPTING EXECUTABLE OBJECT TO A PROCESSING UNIT

Embodiments are generally directed to a system and method for adapting executable object to a processing unit. An embodiment of a method to adapt an executable object from a first processing unit to a second processing unit, comprises: adapting the executable object optimized for the first processing unit of a first architecture, to the second processing unit of a second architecture, wherein the second architecture is different from the first architecture, wherein the executable object is adapted to perform on the second processing unit based on a plurality of performance metrics collected while the executable object is performed on the first processing unit and the second processing unit.

SYSTEMS AND METHODS FOR CODE GENERATION FOR A PLURALITY OF ARCHITECTURES

Systems and methods for code generation for a plurality of architectures. At a host architecture, a JIT compile operation is performed for a received JavaScript or Web Assembly file. The JIT compiler references a host library that has been updated to include at least one new JIT instruction. Output from the JIT compile operation is compiled machine code for the host architecture that has new opcodes (OPX) added, responsive to the new JIT instruction. The JIT compiler executes the opcodes (OPX) in XuCode mode, meaning that the host architecture switches into a hardware protected private ISA (Instruction Set Architecture) called XuCode to implement the new JIT opcode instruction in XuCode.

System and method for adapting executable object to a processing unit

Embodiments are generally directed to a system and method for adapting executable object to a processing unit. An embodiment of a method to adapt an executable object from a first processing unit to a second processing unit, comprises: adapting the executable object optimized for the first processing unit of a first architecture, to the second processing unit of a second architecture, wherein the second architecture is different from the first architecture, wherein the executable object is adapted to perform on the second processing unit based on a plurality of performance metrics collected while the executable object is performed on the first processing unit and the second processing unit.

Methods, blockchain nodes and storage media for executing smart contracts

A computer-implemented method, non-transitory, computer-readable medium, and computer-implemented system are provided for executing a smart contract in a blockchain network. The computer-implemented method includes, in response to determining that a smart contract is deployed on a blockchain node in a blockchain network comprising a plurality of blockchain nodes, starting, by the blockchain node, to turn a bytecode of the smart contract into a machine code of the smart contract through Just-In-Time (JIT) compilation; storing, by the blockchain node, the machine code of the smart contract locally; performing a determination of whether the machine code of the smart contract is stored locally by the blockchain node and a number of blockchain nodes storing the machine code of the smart contract in the blockchain network is not less than a predetermined number; and executing, by the blockchain node, the smart contract based on the determination.

One-time password for secure share mapping

Methods and systems for mapping a sharable resource using a one-time password are disclosed. An identifier included in a set of provided credentials uniquely associates the one-time password with an executable within a computing environment that hosts the sharable resource. When credentials are received in association with a mapping request, it is determined whether a supplied username corresponds to a user authorized to access the sharable resource and whether a representation of a supplied password received in association with the mapping request matches a representation of the one-time password. Validating the mapping request provides access to the sharable resource.

Shadow stack enforcement range for dynamic code

Enforcing shadow stack violations for dynamic code. A thread is executed at a processor, which includes generating a portion of dynamic code for execution by the thread, identifying a range of memory addresses where the portion of dynamic code is loaded in memory, and initiating execution of the portion of dynamic code. Based at least on execution of the thread, an exception triggered by a mismatch between a first return address popped from a call stack corresponding to the thread and a second return address popped from a shadow stack corresponding to the thread is processed. Processing the exception includes (i) determining whether the second return address popped from the shadow stack is within the identified range of addresses, and (ii) based on having determined that the second return address is within the range of addresses, initiating a shadow stack enforcement action.

Compiler-driver programmable device virtualization in a computing system
11573817 · 2023-02-07 · ·

Examples provide a method of virtualizing a hardware accelerator in a virtualized computing system. The virtualized computing system includes a hypervisor supporting execution of a plurality of virtual machines (VMs). The method includes: receiving a plurality of sub-programs at a compiler in the hypervisor from a plurality of compilers in the respective plurality of VMs, each of the sub-programs including a hardware-description language (HDL) description; combining, at the compiler in the hypervisor, the plurality of sub-programs into a monolithic program; generating, by the compiler in the hypervisor, a circuit implementation for the monolithic program, the circuit implementation including a plurality of sub-circuits for the respective plurality of sub-programs; and loading, by the compiler in the hypervisor, the circuit implementation to a programmable device of the hardware accelerator.