US2023048915A1PendingUtilityA1
Low latency remoting to accelerators
Est. expiryJun 25, 2041(~14.9 yrs left)· nominal 20-yr term from priority
G06F 9/548G06F 9/505G06F 9/547G06F 2209/509G06F 9/546
63
PatentIndex Score
0
Cited by
0
References
0
Claims
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.
Claims
exact text as granted — not AI-modified1 .- 18 . (canceled)
19 . 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 a graphical processing unit (GPU) 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.
20 . The apparatus of claim 19 , the memory device having instructions stored thereon that, in response to execution by the processor, cause the processor to:
unblock the caller when the response to the first message is received from the second computing system when the type of the first function call is synchronous function.
21 . The apparatus of claim 19 , wherein the first function call is a request to offload performance of a workload from the first computing system to the GPU on the second computing system.
22 . The apparatus of claim 19 , the memory device having instructions stored thereon that, in response to execution by the processor, cause the processor to:
receive, on the first computing system, a second message including a name of a second function call, a list of parameter values of the second function call, and one or more new entries for the symbol table, the one or more new entries representing pseudo-output parameter values, from the second computing system; add the one or more new entries from the second message into the symbol table; for each input parameter value in the list of parameter values of the second 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 a GPU on the first computing system using the input parameter values; when the type of the second function call is the asynchronously callable function with substitutable output parameters, for each output parameter in the list of parameter values of the second function call, map a pseudo-output parameter value from the list of parameter values of the second function call to a corresponding output value in the symbol table; and send a third message including the name of the second function call and a list of output parameter values to the second computing system.
23 . The apparatus of claim 22 , wherein the second function call is a request to offload performance of a workload from the second computing system to the GPU on the first computing system.
24 . 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 a graphical processing unit (GPU) 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.
25 . The method of claim 24 , comprising unblocking the caller when the response to the first message is received from the second computing system when the type of the first function call is synchronous function.
26 . The method of claim 24 , wherein the first function call is a request to offload performance of a workload from the first computing system to the GPU on the second computing system.
27 . The method of claim 24 , comprising:
receiving, on the first computing system, a second message including a name of a second function call, a list of parameter values of the second function call, and one or more new entries for the symbol table, the one or more new entries representing pseudo-output parameters values, from the second computing system; adding the one or more new entries from the second message into the symbol table; for each input parameter value in the list of parameter values of the second function call, if there is a corresponding symbol table index, substituting the symbol table entry associated with the corresponding symbol table index for a pseudo-output parameter value; executing the function by a GPU on the first computing system using the input parameter values; when the type of the second function call is the asynchronously callable function with substitutable output parameters, for each output parameter in the list of parameter values of the second function call, mapping a pseudo-output parameter value from the list of parameter values of the second function call to a corresponding output value in the symbol table; and sending a third message including the name of the second function call and a list of output parameter values to the second computing system.
28 . The method of claim 27 , wherein the second function call is a request to offload performance of a workload from the second computing system to the GPU on the first computing system.
29 . 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 a graphical processing unit (GPU) 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 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.
30 . The at least one non-transitory machine-readable storage medium of claim 29 , wherein the instructions, when executed further cause the at least one processor to unblock the caller when the response to the first message is received from the second computing system when the type of the first function call is synchronous function.
31 . The at least one non-transitory machine-readable storage medium of claim 29 , wherein the first function call is a request to offload performance of a workload from the first computing system to the GPU on the second computing system.
32 . The at least one non-transitory machine-readable storage medium of claim 29 comprising instructions that, when executed, cause at least one processor to:
receive, on the first computing system, a second message including a name of a second function call, a list of parameter values of the second function call, and one or more new entries for symbol table, the one or more new entries representing pseudo-output parameters values, from the second computing system;
add the one or more new entries from the second message into the symbol table;
for each input parameter value in the list of parameter values of the second 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 a GPU on the first computing system using the input parameter values;
when the type of the second function call is the asynchronously callable function with substitutable output parameters, for each output parameter in the list of parameter values of the second function call, map a pseudo-output parameter value from the list of parameter values of the second function call to a corresponding output value in the symbol table; and
send a third message including the name of the second function call and a list of output parameter values to the second computing system.
33 . The at least one non-transitory machine-readable storage medium of claim 29 , wherein the second function call is a request to offload performance of a workload from the second computing system to the GPU on the first computing system.Join the waitlist — get patent alerts
Track US2023048915A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.