IP Library Granted Patent US 11,782,729
Granted Patent B2
US 11,782,729 · App. 16/996,666 · Granted Oct 10, 2023

Runtime patching of configuration files

Inventors: Gregory Frederick Grohoski (Bee Cave, TX); Manish K. Shah (Austin, TX); Raghu Prabhakar (San Jose, CA); Mark Luttrell (Cedar Park, TX); Ravinder Kumar (Fremont, CA); Kin Hing Leung (Cupertino, CA); Ranen Chatterjee (Fremont, CA); Sumti Jairath (Santa Clara, CA); David Alan Koeplinger (Menlo Park, CA); Ram Sivaramakrishnan (San Jose, CA); Matthew Thomas Grimm (Boise, ID)
Assignee: SambaNova Systems, Inc.
G06F9/44505G06F9/5016
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,782,729
App. No.
16/996,666
Granted
Oct 10, 2023
Kind
B2
Abstract

A data processing system comprises a pool of reconfigurable data flow resources and a runtime processor. The pool of reconfigurable data flow resources includes arrays of physical configurable units and memory. The runtime processor includes logic to receive a plurality of configuration files for user applications. The configuration files include configurations of virtual data flow resources required to execute the user applications. The runtime processor also includes logic to allocate physical configurable units and memory in the pool of reconfigurable data flow resources to the virtual data flow resources and load the configuration files to the allocated physical configurable units. The runtime processor further includes logic to execute the user applications using the allocated physical configurable units and memory.

Claims (41)

1. A data processing system, comprising:

a pool of reconfigurable data flow resources, reconfigurable data flow resources in the pool of reconfigurable data flow resources including arrays of configurable units, configurable units in the arrays of configurable units comprising physical hardware resources; and

a host operatively coupled to the pool of reconfigurable data flow resources and configured with runtime logic to:

receive a plurality of configuration files for applications, and metadata specifying modifications to configuration files in the plurality of configuration files;

modify the configuration files based on the metadata to generate modified configuration files; and

load and execute the modified configuration files on the arrays of configurable units;

wherein the runtime logic comprises software running on a processor in the host,

wherein the runtime logic modifies the configuration files based on the metadata N times to generate the modified configuration files, and iteratively loads and executes the modified configuration files on the arrays of configurable units M times, wherein M>>N, and N is greater than one.

2. The data processing system of claim 1 , wherein M>=N.

3. The data processing system of claim 1 , wherein the modifications include updates to argument data in the configuration files, wherein the argument data specifies execution parameters of the applications.

4. The data processing system of claim 3 , wherein the metadata identifies locations of the argument data in the configuration files.

5. The data processing system of claim 1 , wherein the modifications include updates to memory mapping data in the configuration files, wherein the memory mapping data translates virtual addresses of virtual data flow resources specified in the configuration files to physical addresses of the reconfigurable data flow resources allocated to the virtual data flow resources.

6. The data processing system of claim 5 , wherein the configuration files contain bit streams, wherein the modifications include changing bits in the bit streams.

7. The data processing system of claim 1 , wherein the host has host memory.

8. The data processing system of claim 7 , wherein the runtime logic stores the modified configuration files in the host memory.

9. The data processing system of claim 8 , wherein the reconfigurable data flow resources include processor memory.

10. The data processing system of claim 9 , wherein the runtime logic loads the modified configuration files from the host memory onto the processor memory.

11. The data processing system of claim 10 , wherein the runtime logic loads the modified configuration files from the processor memory onto the arrays of configurable units for execution.

12. The data processing system of claim 1 , wherein the configuration files are generated by a compiler running in the host.

13. A data processing system, comprising:

a pool of reconfigurable data flow resources, reconfigurable data flow resources in the pool of reconfigurable data flow resources including arrays of configurable units and processor memory, configurable units in the arrays of configurable units comprising physical hardware resources; and

a host operatively coupled to the pool of reconfigurable data flow resources and having host memory, and configured with runtime logic to:

receive a plurality of configuration files for applications, and metadata specifying modifications to configuration files in the plurality of configuration files;

load the configuration files on the processor memory;

modify the configuration files loaded on the processor memory based on the metadata to generate modified configuration files; and

load and execute the modified configuration files on the arrays of configurable units, wherein the runtime logic modifies the configuration files N times to generate the modified configuration files, and iteratively loads and executes the modified configuration files on the configurable units M times, wherein M>>N, and N is greater than one.

14. A data processing system, comprising:

a pool of reconfigurable data flow resources, reconfigurable data flow resources in the pool of reconfigurable data flow resources including arrays of configurable units and a runtime processor, configurable units in the arrays of configurable units comprising physical hardware resources; and

the runtime processor configured with runtime logic to:

receive a plurality of configuration files for applications, and metadata specifying modifications to configuration files in the plurality of configuration files;

modify the configuration files based on the metadata to generate modified configuration files; and

load and execute the modified configuration files on the arrays of configurable units, wherein the runtime logic modifies the configuration files N times to generate the modified configuration files, and iteratively loads and executes the modified configuration files on the configurable units M times, wherein M>>N, and N is greater than one.

15. A system, comprising:

an array of configurable units, configurable units in the arrays of configurable units comprising physical hardware resources; and

runtime logic configured to

modify a plurality of configuration files for applications to generate modified configuration files, configuration files in the plurality of configuration files generated as a result of compiling the applications, and including configuration data for configuring configurable units in the array of configurable units to run the applications; and

load and execute the modified configuration files on the configurable units in the array of configurable units,

wherein the runtime logic modifies the configuration files N times to generate the modified configuration files, and iteratively loads and executes the modified configuration files on the configurable units M times, wherein M>>N, and N is greater than one.

16. The system of claim 15 , wherein M>=N.

17. The system of claim 15 , wherein the runtime logic modifies the configuration files by updating argument data in the configuration files, wherein the argument data specifies execution parameters of the applications.

18. The system of claim 15 , wherein the runtime logic modifies the configuration files by updating memory mapping data in the configuration files, wherein the memory mapping data translates virtual addresses of virtual data flow resources specified in the configuration files to physical addresses of the reconfigurable data flow resources allocated to the virtual data flow resources.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2020
From: GROHOSKI, GREGORY FREDERICK; SHAH, MANISH K.; PRABHAKAR, RAGHU; LUTTRELL, MARK; KUMAR, RAVINDER; LEUNG, KIN HING; CHATTERJEE, RANEN; JAIRATH, SUMTI; KOEPLINGER, DAVID ALAN; SIVARAMAKRISHNAN, RAM; GRIMM, MATTHEW THOMAS
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 053531/0227 →
Continuity (1)
Related Publication 20220058034A1 · Feb 24, 2022
Cited By (3)
US 12,413,530 US 12,602,349 US 12,681,806