IP Library › Granted Patent US 11,403,102
Granted Patent B2
US 11,403,102 · App. 16/914,293 · Granted Aug 2, 2022

Technology to learn and offload common patterns of memory access and computation

Inventors: Vy Vo (Portland, OR); Dipanjan Sengupta (Hillsboro, OR); Mariano Tepper (Portland, OR); Javier Sebastian Turek (Beaverton, OR)
Assignee: Intel Corporation
G06F9/321G06F9/5016G06F9/5066G06F11/3457G06F12/0815G06K9/6262G06N3/0454G06N3/063G06F2212/1021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,403,102
App. No.
16/914,293
Granted
Aug 2, 2022
Kind
B2
Abstract

Systems, apparatuses and methods may provide for technology that recognizes, via a neural network, a pattern of memory access and compute instructions based on an input set of machine instructions, determines, via a neural network, a sequence of instructions to be offloaded for execution by the secondary computing device based on the recognized pattern of memory access and compute instructions, and translates the sequence of instructions to be offloaded from instructions executable by a central processing unit (CPU) into instructions executable by the secondary computing device.

Claims (57)

1. A computing system comprising:

a secondary computing device; and

an apparatus coupled to the secondary computing device, the apparatus including one or more substrates and logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the one or more substrates to:

recognize, via a neural network, a pattern of memory access and compute instructions based on an input set of machine instructions;

determine, via the neural network, a sequence of instructions to be offloaded for execution by the secondary computing device based on the recognized pattern of memory access and compute instructions; and

translate the sequence of instructions to be offloaded from instructions executable by a central processing unit (CPU) into instructions executable by the secondary computing device.

2. The computing system of claim 1 , wherein the neural network comprises a recurrent neural network (RNN), wherein the pattern of memory access and compute instructions includes one or more of transitional probabilities or sequential dependencies between instructions of the input set of instructions, wherein the sequence of instructions to be offloaded includes one or more of a recurring sequence, a sequence having an offload execution time benefit, a sequence that would result in high latency from repeated memory operations, or a sequence that would result in cache misses, and wherein the logic coupled to the one or more substrates is further to mark the instructions to be offloaded in a program counter on the CPU.

3. The computing system of claim 2 , wherein the RNN is trained via one or more of a hardware simulation with benchmarks known to increase cache misses and cause memory latency issues, direct training to detect sequences that result in long latencies of memory access, or embedding the RNN in a reinforcement learning agent.

4. The computing system of claim 1 , wherein the logic coupled to the one or more substrates is further to, when the CPU is idle:

task the CPU with a first process to execute the sequence of instructions;

task the secondary computing device with a second process, concurrently with the first process, to execute the translated sequence of instructions;

if the second process completes prior to the first process, accept an execution result of the second process and terminate the first process; and

otherwise, if the second process does not complete prior to the first process, accept an execution result of the first process and terminate the second process.

5. The computing system of claim 1 , wherein the input set of machine instructions may be provided via a hardware prefetcher having a large look-ahead window to capture binary source code and an instruction decoder to decode the captured binary source code into machine instructions.

6. The computing system of claim 1 , wherein the logic to translate the sequence of instructions to be offloaded comprises a hardware table that includes direct mapping between the instructions executable by the CPU and the instructions executable by the secondary computing device.

7. A semiconductor apparatus comprising:

one or more substrates; and

logic coupled to the one or more substrates, wherein the logic is implemented at least partly in one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the one or more substrates to:

recognize, via a neural network, a pattern of memory access and compute instructions based on an input set of machine instructions;

determine, via the neural network, a sequence of instructions to be offloaded for execution by a secondary computing device based on the recognized pattern of memory access and compute instructions; and

translate the sequence of instructions to be offloaded from instructions executable by a central processing unit (CPU) into instructions executable by the secondary computing device.

8. The semiconductor apparatus of claim 7 , wherein the neural network comprises a recurrent neural network (RNN), wherein the pattern of memory access and compute instructions includes one or more of transitional probabilities or sequential dependencies between instructions of the input set of instructions, wherein the sequence of instructions to be offloaded includes one or more of a recurring sequence, a sequence having an offload execution time benefit, a sequence that would result in high latency from repeated memory operations, or a sequence that would result in cache misses, and wherein the logic coupled to the one or more substrates is further to mark the instructions to be offloaded in a program counter on the CPU.

9. The semiconductor apparatus of claim 8 , wherein the RNN is trained via one or more of a hardware simulation with benchmarks known to increase cache misses and cause memory latency issues, direct training to detect sequences that result in long latencies of memory access, or embedding the RNN in a reinforcement learning agent.

10. The semiconductor apparatus of claim 7 , wherein the logic coupled to the one or more substrates is further to, when the CPU is idle:

task the CPU with a first process to execute the sequence of instructions;

task the secondary computing device with a second process, concurrently with the first process, to execute the translated sequence of instructions;

if the second process completes prior to the first process, accept an execution result of the second process and terminate the first process; and

otherwise, if the second process does not complete prior to the first process, accept an execution result of the first process and terminate the second process.

11. The semiconductor apparatus of claim 7 , wherein the input set of machine instructions may be provided via a hardware prefetcher having a large look-ahead window to capture binary source code and an instruction decoder to decode the captured binary source code into machine instructions.

12. The semiconductor apparatus of claim 7 , wherein the logic to translate the sequence of instructions to be offloaded comprises a hardware table that includes direct mapping between the instructions executable by the CPU and the instructions executable by the secondary computing device.

13. The semiconductor apparatus of claim 7 , wherein the logic coupled to the one or more substrates includes transistor channel regions that are positioned within the one or more substrates.

14. At least one non-transitory computer readable storage medium comprising a set of first instructions which, when executed by a computing system, cause the computing system to:

recognize, via a neural network, a pattern of memory access and compute instructions based on an input set of machine instructions;

determine, via the neural network, a sequence of instructions to be offloaded for execution by a secondary computing device based on the recognized pattern of memory access and compute instructions; and

translate the sequence of instructions to be offloaded from instructions executable by a central processing unit (CPU) into instructions executable by the secondary computing device.

15. The at least one non-transitory computer readable storage medium of claim 14 , wherein the neural network comprises a recurrent neural network (RNN), wherein the pattern of memory access and compute instructions includes one or more of transitional probabilities or sequential dependencies between instructions of the input set of instructions, wherein the sequence of instructions to be offloaded includes one or more of a recurring sequence, a sequence having an offload execution time benefit, a sequence that would result in high latency from repeated memory operations, or a sequence that would result in cache misses, and wherein the first instructions, when executed, further cause the computing system to mark the instructions to be offloaded in a program counter on the CPU.

16. The at least one non-transitory computer readable storage medium of claim 15 , wherein the RNN is trained via one or more of a hardware simulation with benchmarks known to increase cache misses and cause memory latency issues, direct training to detect sequences that result in long latencies of memory access, or embedding the RNN in a reinforcement learning agent.

17. The at least one non-transitory computer readable storage medium of claim 14 , wherein the first instructions, when executed, further cause the computing system to, when the CPU is idle:

task the CPU with a first process to execute the sequence of instructions;

task the secondary computing device with a second process, concurrently with the first process, to execute the translated sequence of instructions;

if the second process completes prior to the first process, accept an execution result of the second process and terminate the first process; and

otherwise, if the second process does not complete prior to the first process, accept an execution result of the first process and terminate the second process.

18. The at least one non-transitory computer readable storage medium of claim 14 , wherein the input set of machine instructions may be provided via a hardware prefetcher having a large look-ahead window to capture binary source code and an instruction decoder to decode the captured binary source code into machine instructions.

19. The at least one non-transitory computer readable storage medium of claim 14 , wherein to translate the sequence of instructions to be offloaded comprises reading a hardware table that includes direct mapping between the instructions executable by the CPU and the instructions executable by the secondary computing device.

20. A method of offloading instructions for execution, comprising:

recognizing, via a neural network, a pattern of memory access and compute instructions based on an input set of machine instructions;

determining, via the neural network, a sequence of instructions to be offloaded for execution by a secondary computing device based on the recognized pattern of memory access and compute instructions; and

translating the sequence of instructions to be offloaded from instructions executable by a central processing unit (CPU) into instructions executable by the secondary computing device.

21. The method of claim 20 , further comprising marking the instructions to be offloaded in a program counter on the CPU, wherein the neural network comprises a recurrent neural network (RNN), wherein the pattern of memory access and compute instructions includes one or more of transitional probabilities or sequential dependencies between instructions of the input set of instructions, and wherein the sequence of instructions to be offloaded includes one or more of a recurring sequence, a sequence having an offload execution time benefit, a sequence that would result in high latency from repeated memory operations, or a sequence that would result in cache misses.

22. The method of claim 21 , wherein the RNN is trained via one or more of a hardware simulation with benchmarks known to increase cache misses and cause memory latency issues, direct training to detect sequences that result in long latencies of memory access, or embedding the RNN in a reinforcement learning agent.

23. The method of claim 20 , further comprising, when the CPU is idle:

tasking the CPU with a first process to execute the sequence of instructions;

tasking the secondary computing device with a second process, concurrently with the first process, to execute the translated sequence of instructions;

if the second process completes prior to the first process, accepting an execution result of the second process and terminating the first process; and

otherwise, if the second process does not complete prior to the first process, accepting an execution result of the first process and terminating the second process.

24. The method of claim 20 , wherein the input set of machine instructions may be provided via a hardware prefetcher having a large look-ahead window to capture binary source code and an instruction decoder to decode the captured binary source code into machine instructions.

25. The method of claim 20 , wherein translating the sequence of instructions to be offloaded comprises reading a hardware table that includes direct mapping between the instructions executable by the CPU and the instructions executable by the secondary computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2022
From: VO, VY; SENGUPTA, DIPANJAN; TEPPER, MARIANO; TUREK, JAVIER SEBASTIAN
To: INTEL CORPORATION
Reel/Frame 059223/0727 →
Continuity (1)
Related Publication 20200326949A1 · Oct 15, 2020