Runtime processor detection and installation of highly tuned processor specific routines
AssigneeHewlett-Packard Company
InventorsAnthony L. Barbour, Bruce E. Blaho
Life of this patent
Estimating the term…
Abstract
In a software library which is made up of a series of modules, both generic modules, and substitute modules are provided. While there need not be a substitute for each of the generic modules, when a substitute module is provided, it is optimized for a particular processor or architecture with which the library is expected to be used. Accordingly, when the processor or architecture is identified when the library is first initialized, the generic modules are replaced by the optimized modules, if any, which are available for use with the identified processor or architecture.
Claims6
An improved software library comprising:
- (a) at least one generic module which can operate with any processor or hardware architecture;
- (b) at least one optimized module which has been optimized for a particular processor, or hardware architecture, said at least one optimized module being adapted to replace said at least one generic module;
- (c) initialization means for initializing said software library, said initialization means being able to identify the processor, or hardware architecture, on which the library is running, and to dynamically select a set of modules which are optimized for the particular processor, or hardware architecture, which has been previously identified as being an optimized selection for use with said identified processor, or hardware architecture.
A method for selecting an improved software library comprising:
- (a) providing at least one generic module which can operate with any processor or hardware architecture;
- (b) providing at least one optimized module which has been optimized for a particular processor, or hardware architecture, said at least one optimized module being adapted to replace said at least one generic module;
- (c) initializing said software library, and identifying the processor, or hardware architecture, on which the library is running;
- and
- (d) determining whether the library contains a table of modules which has been optimized for the particular processor, or hardware architecture, which has been previously identified;
- and
- (e) selecting for use the modules which are included in any table of modules which is contained within said library and which has been identified as being optimized for use with said identified processor, or hardware architecture.
A method for selecting an improved software library comprising:
- (a) providing at least one generic module which can operate with any processor or hardware architecture;
- (b) providing at least one optimized module which has been optimized for a particular processor, or hardware architecture, said at least one optimized module being adapted to replace said at least one generic module;
- (c) initializing said software library, and identifying the processor, or hardware architecture, on which the library is running;
- and
- (d) iteratively determining whether the each of said generic modules can be replaced by an optimized module, whereby a set of optimized modules is selected for use with the particular processor, or hardware architecture, which was identified.
Dependencies are inferred from the claim text.