Low latency remoting to accelerators
AssigneeIntel Corporation
InventorsPradeep Pappachan, Sujoy Sen, Joseph Grecco, Mukesh Gangadhar Bhavani Venkatesan, Reshma Lal
Life of this patent
Estimating the term…
Abstract
A method of offloading performance of a workload includes receiving, on a first computing system acting as an initiator, a first function call from a caller, the first function call to be executed by an accelerator on a second computing system acting as a target, the first computing system coupled to the second computing system by a network; determining a type of the first function call; and generating a list of parameter values of the first function call.
Claims18
An apparatus comprising:
- a processor;
- and
- a memory device coupled to the processor, the memory device having instructions stored thereon that, in response to execution by the processor, cause the processor to:
- receive, on a first computing system acting as an initiator, a first function call from a caller, the first function call to be executed by an accelerator on a second computing system acting as a target, the first computing system coupled to the second computing system by a network;
- determine a type of the first function call;
- generate a list of parameter values of the first function call;
- send a first message including a name of the first function call, the list of parameter values of the first function call, and one or more new entries for a symbol table, the one or more new entries representing pseudo-output parameter values, to the second computing system;
- and
- when the type of the first function call is an asynchronously callable function without output dependencies, return control to the caller;
- when the type of the first function call is an asynchronously callable function with substitutable output parameters, assign newly created symbols to output parameters and return control to the caller;
- and when the type of the first function call is a synchronous function, block the caller until a response to the first message is received from the second computing system.
A method comprising:
- receiving, on a first computing system acting as an initiator, a first function call from a caller, the first function call to be executed by an accelerator on a second computing system acting as a target, the first computing system coupled to the second computing system by a network;
- determining a type of the first function call;
- generating a list of parameter values of the first function call;
- sending a first message including a name of the first function call, the list of parameter values of the first function call, and one or more new entries for a symbol table, the one or more new entries representing pseudo-output parameter values, to the second computing system;
- and
- when the type of the first function call is an asynchronously callable function without output dependencies, returning control to the caller;
- when the type of the first function call is an asynchronously callable function with substitutable output parameters, assigning newly created symbols to output parameters and returning control to the caller;
- and when the type of the first function call is a synchronous function, blocking the caller until a response to the first message is received from the second computing system.
At least one non-transitory machine-readable storage medium comprising instructions that, when executed, cause at least one processor to:
- receive, on a first computing system acting as an initiator, a first function call from a caller, the first function call to be executed by an accelerator on a second computing system as a target, the first computing system coupled to the second computing system by a network;
- determine a type of the first function call;
- generate a list of parameter values of the first function call;
- send a first message including a name of the first function call, the list of parameter values of the first function call, and one or more new entries for a symbol table, the one or more new entries representing pseudo-output parameters values, to the second computing system;
- and
- when the type of the first function call is an asynchronously callable function without output dependencies, return control to the caller;
- when the type of the first function call is an asynchronously callable function with substitutable output parameters, assign newly created symbols to output parameters and return control to the caller;
- and when the type of the first function call is a synchronous function, block the caller until a response to the first message is received from the second computing system.
A system comprising:
- a first computing system acting as an initiator;
- and
- a second computing system acting as a target, the second computing coupled to the first computing system by a network, the second computing system including an accelerator;
- wherein the first computing system is to receive a function call from a caller;
- determine a type of the function call;
- generate a list of parameter values of the function call;
- send a first message including a name of the function call, the list of parameter values of the function call, and one or more new entries for a symbol table, the one or more new entries representing pseudo-output parameters values, to the second computing system;
- and when the type of the function call is an asynchronously callable function without output dependencies, return control to the caller;
- when the type of the function call is an asynchronously callable function with substitutable output parameters, assign newly created symbols to output parameters and return control to the caller;
- and when the type of the function call is a synchronous function, block the caller until a response to the first message is received from the second computing system;
- and
- wherein the second computing system is to receive the first message;
- add the one or more new entries from the first message into the symbol table;
- for each input parameter value in the list of parameter values of the function call, if there is a corresponding symbol table index, substitute a symbol table entry associated with the corresponding symbol table index for a pseudo-output parameter value;
- execute the function by the accelerator using the input parameter values;
- when the type of the function call is the asynchronously callable function with substitutable output parameters, for each output parameter in the list of parameter values, map a pseudo-output parameter value from the list of parameter values of the function call to a corresponding output value in the symbol table;
- and send a second message including the name of the function call and a list of output parameter values to the first computing system.
Dependencies are inferred from the claim text.