IP Library Granted Patent US 11,360,776
Granted Patent B2
US 11,360,776 · App. 17/039,467 · Granted Jun 14, 2022

Machine learning for workloads for instruction set architecture optimization

Inventors: Corneliu-Ilie Calciu (Bucharest, RO); Fred Bower, III (Durham, NC); Roberto Jacob Da Silva (Oak Park, CA); Radu Iorga (Bucharest, RO)
Assignee: LENOVO Enterprise Solutions (Singapore) PTE. LTD.
G06F9/3838G06F8/48G06N3/08
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,360,776
App. No.
17/039,467
Granted
Jun 14, 2022
Kind
B2
Abstract

An apparatus for machine learning for workloads for ISA optimization is disclosed. The apparatus includes a processor and a memory that stores code executable by the processor. The executable code is executable to run program code to service a workload with a default instruction set of the processor, identify an instruction sequence from execution results for the workload, the instruction sequence called repeatedly during execution for the workload, and generate a custom instruction that includes the instruction sequence. The executable code is executable to write the custom instruction to a writable area of processor memory storing the default instruction set, recompile program code used to service the workload, where the recompiled program code includes the custom instruction, and run the recompiled program code to service the workload.

Claims (40)

1. An apparatus comprising:

a processor; and

a memory that stores code executable by the processor to:

run program code to service a workload with a default instruction set of the processor;

identify an instruction sequence from execution results for the workload, the instruction sequence called repeatedly during execution for the workload;

generate a custom instruction comprising the instruction sequence;

write the custom instruction to a writable area of processor memory storing the default instruction set;

recompile program code used to service the workload, wherein the recompiled program code comprises the custom instruction; and

run the recompiled program code to service the workload.

2. The apparatus of claim 1 , wherein the code executable by the processor is further executable by the processor to remove the custom instruction from the writable area of the processor in response to completion of the workload.

3. The apparatus of claim 1 , wherein the code executable by the processor is further executable by the processor to disable at least one default instruction of the default instruction set prior to writing the custom instruction to the writeable area of the processor memory.

4. The apparatus of claim 1 , wherein the default instruction set is stored in a microcode sequencer of the processor, the microcode sequencer comprising the writable area, wherein at least the writable area of the microcode sequencer comprises random access memory (“RAM”).

5. The apparatus of claim 4 , wherein the processor further comprises an instruction set architecture (“ISA”) update block that loads and deletes the custom instruction from the microcode sequencer.

6. The apparatus of claim 1 , wherein identifying an instruction sequence from execution results for the workload comprises identifying an instruction sequence most frequency called during execution for the workload and/or identifying an instruction sequence that takes a highest amount of processing resources during execution for the workload.

7. The apparatus of claim 1 , wherein recompiling the program code used to service the workload comprises using a compiler associated with the processor to recompile the program code, wherein the compiler accesses the custom instruction to recompile the program code.

8. The apparatus of claim 1 , wherein the custom instruction comprises a sequence of micro-operations corresponding to micro-operations of the instruction sequence where the instructions of the instruction sequence are instructions in the default instruction set.

9. The apparatus of claim 1 , wherein the program code to service the workload comprises an application and/or a function from a library.

10. The apparatus of claim 1 , wherein the workload comprises a deep neural network and/or a software defined network (“SDN”).

11. A method comprising:

running program code to service a workload with a default instruction set of a processor;

identifying an instruction sequence from execution results for the workload, the instruction sequence called repeatedly during execution for the workload;

generating a custom instruction comprising the instruction sequence;

writing the custom instruction to a writable area of processor memory storing the default instruction set;

recompiling program code used to service the workload, wherein the recompiled program code comprises the custom instruction; and

running the recompiled program code to service the workload.

12. The method of claim 11 , further comprising removing the custom instruction from the writable area of the processor in response to completion of the workload.

13. The method of claim 11 , further comprising disabling at least one default instruction of the default instruction set prior to writing the custom instruction to the writeable area of the processor memory.

14. The method of claim 11 , wherein the default instruction set is stored in a microcode sequencer of the processor, the microcode sequencer comprising the writable area, wherein at least the writable area of the microcode sequencer comprises random access memory (“RAM”).

15. The method of claim 14 , wherein the processor comprises an instruction set architecture (“ISA”) update block that loads and deletes the custom instruction from the microcode sequencer.

16. The method of claim 11 , wherein identifying an instruction sequence from execution results for the workload comprises identifying an instruction sequence most frequency called during execution for the workload and/or identifying an instruction sequence that takes a highest amount of processing resources during execution for the workload.

17. The method of claim 11 , wherein the processor uses a compiler in the processor to identify the instruction sequence from execution results for the workload and to generate the custom instruction.

18. A program product comprising a computer readable storage medium and program code, the program code being configured to be executable by a processor to perform operations comprising:

running program code to service a workload with a default instruction set of the processor;

identifying an instruction sequence from execution results for the workload, the instruction sequence called repeatedly during execution for the workload;

generating a custom instruction comprising the instruction sequence;

writing the custom instruction to a writable area of processor memory storing the default instruction set;

recompiling program code used to service the workload, wherein the recompiled program code comprises the custom instruction; and

running the recompiled program code to service the workload.

19. The program product of claim 18 , wherein the program code is further configured to perform operations comprising removing the custom instruction from the writable area of the processor in response to completion of the workload.

20. The program product of claim 18 , wherein the default instruction set is stored in a microcode sequencer of the processor, the microcode sequencer comprising the writable area, wherein at least the writable area of the microcode sequencer comprises random access memory (“RAM”) and wherein the processor comprises an instruction set architecture (“ISA”) update block that loads and deletes the custom instruction from the microcode sequencer.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 070292/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD.
Reel/Frame 070292/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2020
From: CALCIU, CORNELIU-ILIE; BOWER III, FRED; DA SILVA, ROBERTO JACOB; IORGA, RADU
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 053952/0797 →