Reuseable configuration data
First Claim
1. An information processor for executing a program comprising a plurality of separate program instructions:
- processing logic operable to individually execute said separate program instructions of said program;
an operand store operable to store operand values; and
an accelerator having an array comprising a plurality of functional units, said accelerator being operable to execute a combined operation corresponding to a computational subgraph of said separate program instructions by configuring individual ones of said plurality of functional units to perform particular processing operations associated with one or more processing stages of said combined operation;
wherein said accelerator executes said combined operation in dependence upon operand mapping data providing a mapping between operands of said combined operation and storage locations within said operand store and in dependence upon separately specified configuration data providing a mapping between said plurality of functional units and said particular processing operations such that said configuration data can be re-used for different operand mappings.
1 Assignment
0 Petitions
Accused Products
Abstract
An information processor for executing a program comprising a plurality of separate program instructions is provided. The processor comprises processing logic operable to individually execute said separate program instructions of said program, an operand store operable to store operand values and an accelerator having a plurality of functional units. The accelerator executes a combined operation corresponding to a computational sub-graph of the separate program instructions by configuring individual ones of said plurality of functional units to perform particular processing operations associated with the combined operation. The accelerator executes the combined operation in dependence upon operand mapping data providing a mapping between operands of the combined operation and storage locations within said operand store and in dependence upon separately specified configuration data providing a mapping between the plurality of functional units and the particular processing operations. The configuration data can be re-used for different operand mappings.
29 Citations
25 Claims
-
1. An information processor for executing a program comprising a plurality of separate program instructions:
-
processing logic operable to individually execute said separate program instructions of said program; an operand store operable to store operand values; and an accelerator having an array comprising a plurality of functional units, said accelerator being operable to execute a combined operation corresponding to a computational subgraph of said separate program instructions by configuring individual ones of said plurality of functional units to perform particular processing operations associated with one or more processing stages of said combined operation; wherein said accelerator executes said combined operation in dependence upon operand mapping data providing a mapping between operands of said combined operation and storage locations within said operand store and in dependence upon separately specified configuration data providing a mapping between said plurality of functional units and said particular processing operations such that said configuration data can be re-used for different operand mappings. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of processing information under the control of a computer program comprising a plurality of separate program instructions, said method comprising:
-
individually executing said separate program instructions of said program using processing logic; storing operand values in an operand store; executing a combined operation corresponding to a computational subgraph of said separate program instructions using an accelerator having an array comprising a plurality of functional units by configuring individual ones of said plurality of functional units to perform particular processing operations associated with one or more processing stages of said combined operation; and executing said combined operation on said accelerator in dependence upon operand mapping data providing a mapping between operands of said combined operation and storage locations within said operand store and in dependence upon separately specified configuration data providing a mapping between said plurality of functional units and said particular processing operations such that said configuration data can be re-used for different operand mappings.
-
-
23. A computer program product comprising a computer readable storage medium containing computer readable instructions that when executed are operable to compile a source code sequence comprising a plurality of separate program instructions of a computer program to form executable program instructions, said computer program comprising:
-
analysis code for analysing said source code and translating said source code into a stream of executable program instructions capable of execution by processing logic within a data processing apparatus; identifying code for identifying candidate computational subgraphs within said stream of executable program instructions; subset selection code for selecting a subset of said candidate computational subgraphs for accelerated execution as respective combined operations on an accelerator having an array comprising a plurality of functional units, individual ones of said functional units being configurable to perform particular processing operations associated with one or more stages of said combined operations, said accelerator being operable to execute said combined operations in dependence upon operand mapping data providing a mapping between operands of said combined operation and storage locations within said operand store and in dependence upon separately specified configuration data; and configuration data generating code for generating said configuration data providing a mapping between said plurality of functional units and said particular processing operations such that said configuration data can be re-used for different operand mappings.
-
-
24. A method of compiling a source code sequence comprising a plurality of separate program instructions of a computer program to form executable program instructions, said method comprising:
-
analysing said source code sequence and translating said source code sequence into a stream of executable program instructions capable of execution by processing logic within a data processing apparatus; identifying candidate computational subgraphs within said stream of executable program instructions; selecting a subset of said candidate computational subgraphs for accelerated execution as respective combined operations on an accelerator having an array comprising a plurality of functional units, individual ones of said functional units being configurable to perform particular processing operations associated with one or more stages of said combined operations, said accelerator being operable to execute said combined operations in dependence upon operand mapping data providing a mapping between operands of said combined operation and storage locations within said operand store and in dependence upon separately specified configuration data; and generating configuration data providing a mapping between said plurality of functional units and said particular processing operations such that said configuration data can be re-used for different operand mappings.
-
-
25. An information processor for executing a program comprising a plurality of separate program instructions:
-
means for processing operable to individually execute said separate program instructions of said program; means for storing operand values; and means for accelerating execution having an array comprising a plurality of functional units, said accelerating means being operable to execute a combined operation corresponding to a computational subgraph of said separate program instructions by configuring individual ones of said plurality of functional units to perform particular processing operations associated with one or more processing stages of said combined operation; wherein said accelerating means executes said combined operation in dependence upon operand mapping data providing a mapping between operands of said combined operation and storage locations within said storing means and in dependence upon separately specified configuration data providing a mapping between said plurality of functional units and said particular processing operations such that said configuration data can be re-used for different operand mappings.
-
Specification