Systems and methods for performing primitive tasks using specialized processors
AssigneeRyft Systems, Inc.
InventorsPatrick F. McGarry, David B. Sorber, Timothy P. Bresnan, Andrew Huo, Varun K. Agrawal, Brian R. Stupar, Christopher M. Griffin, Jeremy L. Barthelemy, Robert M. Harris, Paul C. Gantz
Life of this patent
Estimating the term…
Abstract
A primitives library facilitates compiling, linking, and execution of programs that use specialized processors to perform primitive tasks. Data associated with a primitive may be accessed by a specialized-processor-based storage node manager independently of any other processing device.
Claims25
A computer program interface system comprising:
- a first storage device comprising a primitive, the primitive comprising a representation of a data-processing task, wherein the representation:
- (i) is executable, at least in part, by a first field programmable gate array (FPGA) processor of an FPGA module, and (ii) references one or more (A) operands consumed by the task or (B) results produced by the task, the operands comprising inputs to one or more operations of the task, the results comprising outputs from one or more operations of the task, and the one or more operands or results being stored in a file accessible to the first FPGA processor via an FPGA-based storage node manager independently of any operating system (OS) provided data access function;
- and
- an application program interface (API) identifying the primitive, the corresponding task, and the one or more operands or results.
A method for executing a software program using a field programmable gate array (FPGA) module, the software program comprising an application program interface (API) call to a primitive executable on a FPGA processor, the method comprising:
- executing the API call on a non-FPGA processor;
- in response to the execution of the API call, loading on and executing by a first FPGA processor of the FPGA module at least a portion of a primitive comprising a representation of a data-processing task;
- and
- accessing by the first FPGA processor a first (A) operand consumed by the task, the first operand comprising an input to an operation of the task or (B) result produced by the task, the first result comprising an output from an operation of the task, wherein the first operand or result:
- (i) is referenced by the primitive, and (ii) is stored in a file in a first storage device, via a first FPGA-based storage node manager and independently of any operating system (OS) provided data access function.
A computer program interface system comprising:
- a first storage device comprising a primitive, the primitive comprising a representation of a task, wherein the representation:
- (i) is executable, at least in part, by a specialized processing module, (ii) is based on, at least in part, an architecture of the specialized module, and (iii) references:
- (A) an operand consumed by the task or (B) a result produced by the task, the operand comprising an input to an operation of the task, the result comprising an output from the operation of the task, and the operand or the result being stored in a file accessible to the specialized processing module via a field programmable gate array (FPGA) based storage node manager independently of any operating system (OS) provided data access function;
- and
- an application program interface (API) library comprising an API identifying the primitive, the API being compilable for execution by a processing unit having an architecture that is different from the architecture of the specialized processing module,
- wherein the processing unit does not supply the operand or the result to the specialized processing module.
Dependencies are inferred from the claim text.