US 11,782,760 B2
Time-multiplexed use of reconfigurable hardware
Anand Misra, Fremont, CA (US); Arnav Goel, San Jose, CA (US); Qi Zheng, Fremont, CA (US); Raghunath Shenbagam, San Jose, CA (US); and Ravinder Kumar, Fremont, CA (US)
Assigned to SambaNova Systems, Inc., Palo Alto, CA (US)
Filed by SambaNova Systems, Inc., Palo Alto, CA (US)
Filed on Feb. 25, 2021, as Appl. No. 17/185,264.
Prior Publication US 2022/0269534 A1, Aug. 25, 2022
Int. Cl. G06F 9/46 (2006.01); G06F 9/48 (2006.01); G06F 9/38 (2018.01)
CPC G06F 9/4887 (2013.01) [G06F 9/3887 (2013.01)] 22 Claims
OG exemplary drawing
 
1. A method for executing applications in a system comprising general hardware and reconfigurable hardware, the method comprising:
accessing a first execution file comprising metadata storing a first priority indicator associated with a first application, and a second execution file comprising metadata storing a second priority indicator associated with a second application;
interleaving use of the reconfigurable hardware by the first application and the second application, and scheduling the interleaving to take into account (i) workload of the reconfigurable hardware and (ii) the first priority indicator and the second priority indicator associated with the first application and the second application, respectively;
when the reconfigurable hardware is used by a first one of the first and second applications, using the general hardware by either the first one or a second one of the first and second applications;
configuring the reconfigurable hardware in a first configuration, when the reconfigurable hardware is used by the first application;
configuring the reconfigurable hardware in a second configuration that is different from the first configuration, when the reconfigurable hardware is used by the second application;
the first execution file further comprises a first configuration file, and the second execution file further comprises a second configuration file;
the first configuration file comprises configuration information usable to configure the reconfigurable hardware in the first configuration;
the second configuration file comprises configuration information usable to configure the reconfigurable hardware in the second configuration;
receiving a data flow graph associated with the first application; and
compiling the data flow graph, to generate the first execution file comprising (i) the first configuration file and (ii) the metadata storing the first priority indicator.