IP Library Granted Patent US 9,465,629
Granted Patent B2
US 9,465,629 · App. 14/476,285 · Granted Oct 11, 2016

Dynamic linking and loading of post-processing kernels

Inventors: Guei-Yuan Lueh (San Jose, CA); Xiaoying He (Beijing, CN); Xuefeng Zhang (Beijing, CN); Yuenian Yang (Granite Bay, CA); Ping Liu (Sunnyvale, CA); Hong Jiang (El Dorado Hills, CA); Maxim Lukyanov (Sunnyvale, CA)
Assignee: Intel Corporation
G06F9/44521G06F8/41G06F9/4411
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 9,465,629
App. No.
14/476,285
Granted
Oct 11, 2016
Kind
B2
Abstract

A computer system may generate a plurality of component kernels, which are to be linked during the runtime. The system may determine whether a combined kernel K is present in response to receiving a first request to retrieve the combined kernel K. The system may compose the combined kernel K from the selected component kernels of the plurality of component kernels during the runtime if the combined kernel is not already present.

Claims (61)

1. A method comprising:

generating a plurality of component kernels in a code patch generator, wherein the plurality of component kernels are to be linked during runtime,

determining whether a combined kernel is present in a code manager, and

creating the combined kernel in a code composer, wherein the combined kernel is created from selected component kernels of the plurality of component kernels if the combined kernel is not present in the code manager.

2. The method of claim 1 , wherein the generating the plurality of component kernels includes:

compiling the plurality of component kernels to generate binaries with code patches that read data from a preceding kernel and write data into a successive kernel at runtime, and

loading the binaries and the code patches into a driver.

3. The method of claim 2 , wherein the creating the combined kernel includes:

determining a memory required for storing the combined kernel,

identifying input and output register regions used by the selected component kernels of the plurality of component kernels, and

applying the code patches to assign the binaries to read data from the input register regions and to write data to the output register regions.

4. The method of claim 3 , wherein the determining the memory for storing the combined kernel includes determining an order of the component kernels required to generate the combined kernel.

5. The method of claim 4 , wherein the creating the combined kernel further includes:

allocating the memory required to store the combined kernel, and

storing the combined kernel and a unique identifier associated with the combined kernel after the combined kernel is created by the code composer.

6. The method of claim 3 , wherein the creating the combined kernel further includes:

retrieving the binaries of the component kernels,

copying the binaries to the memory, and

indicating that the combined kernel is composed after applying the code patches to assign the binaries to read data from the input register regions and to write data to the output register regions.

7. The method of claim 1 , wherein the determining whether the combined kernel is present further includes transmitting a request to the code composer to generate the combined kernel if the combined kernel is not already present.

8. A non-transitory machine readable storage medium comprising:

a code patch generator to generate a plurality of component kernels, wherein the plurality of component kernels are to be linked during runtime,

a code manager coupled to the code patch generator, wherein the code manager is to determine whether a combined kernel is present, and

a code composer coupled to the code manager to create the combined kernel, wherein the combined kernel is created from selected component kernels of the plurality of component kernels if the combined kernel is not present in the code manager.

9. The non-transitory machine readable storage medium of claim 8 , wherein the code patch generator is further to:

compile the plurality of component kernels to generate binaries with code patches that read data from a preceding kernel and write data into a successive kernel at runtime, and

load the binaries and the code patches into a driver.

10. The non-transitory machine readable storage medium of claim 9 , wherein the code composer is further to:

determine a memory required for storing the combined kernel,

identify input and output register regions used by the selected component kernels of the plurality of component kernels, and

apply the code patches to assign the binaries to read data from the input register regions and to write data to the output register regions.

11. The non-transitory machine readable storage medium of claim 10 , wherein the code composer is further to:

transmit a signal to the code manager, and

determine an order of the component kernels required to generate the combined kernel.

12. The non-transitory machine readable storage medium of claim 11 , wherein the code manager is further to:

allocate the memory for storing the combined kernel after receiving the signal transmitted by the code composer, and

store the combined kernel and a unique identifier associated with the combined kernel after the combined kernel is created by the code composer.

13. The non-transitory machine readable storage medium of claim 10 , wherein the code composer is further to:

retrieve the binaries of the component kernels,

copy the binaries to the memory, and

indicate that the combined kernel is composed after applying the code patches to assign the binaries to read data from the input register regions and to write data to the output register regions.

14. The non-transitory machine readable storage medium of claim 8 , wherein the code manager is further to transmit a request to the code composer to generate the combined kernel if the combined kernel is not already present.

15. A non-transitory machine readable storage medium storing a plurality of instructions that in response to being executed by a computing device result in the computing device:

generating a plurality of component kernels in a code patch generator, wherein the plurality of component kernels are to be linked during runtime,

determining whether a combined kernel is present in a code manager, and

creating the combined kernel in a code composer, wherein the combined kernel is created from selected component kernels of the plurality of component kernels if the combined kernel is not present in the code manager.

16. The non-transitory machine readable storage medium of claim 15 , wherein the instructions in response to being executed further result in the computing device:

compiling the plurality of component kernels to generate binaries with code patches that read data from a preceding kernel and write data into a successive kernel at runtime, and

loading the binaries and the code patches into a driver.

17. The non-transitory machine readable storage medium of claim 16 , wherein the instructions in response to being executed further result in the computing device:

determining a memory required for storing the combined kernel,

identifying input and output register regions used by the selected component kernels of the plurality of component kernels, and

applying the code patches to assign the binaries to read data from the input register regions and to write data to the output register regions.

18. The non-transitory machine readable storage medium of claim 17 , wherein the instructions in response to being executed further result in the computing device determining an order of the component kernels required to generate the combined kernel.

19. The non-transitory machine readable storage medium of claim 18 , wherein the instructions in response to being executed further result in the computing device:

allocating the memory required to store the combined kernel, and

storing the combined kernel and an unique identifier associated with the combined kernel after the combined kernel is created by the code composer.

20. The non-transitory machine readable storage medium of claim 17 , wherein the instructions in response to being executed further result in the computing device:

retrieving the binaries of the component kernels,

copying the binaries to the memory, and

indicating that the combined kernel is composed after applying the code patches to assign the binaries to read data from the input register regions and to write data to the output register regions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2016
From: LUEH, GUEI-YUAN; HE, XIAOYING; ZHANG, XUEFENG; YANG, YUENIAN; LIU, PING; JIANG, HONG; LUKYANOV, MAXIM
To: INTEL CORPORATION
Reel/Frame 039971/0001 →
Continuity (2)
Continuation 11758437 · Jun 5, 2007
Related Publication 20150143387A1 · May 21, 2015