IP Library Granted Patent US 12,260,200
Granted Patent B2
US 12,260,200 · App. 18/204,675 · Granted Mar 25, 2025

Defining and executing a section of code for an interpreted software language

Inventors: Jianding Luo (Palo Alto, CA); Yuan Lin (Palo Alto, CA)
Assignee: SambaNova Systems, Inc.
G06F8/451
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 12,260,200
App. No.
18/204,675
Granted
Mar 25, 2025
Kind
B2
Abstract

A software program implementing one or more artificial intelligence algorithms is compiled to create intermediate code. An interpreter retrieves a line of code included in the intermediate code. If the interpreter determines that the line of code includes a hypersection definition, the interpreter creates a hypersection based on the hypersection definition and associates a name with the hypersection based on the hypersection definition. The interpreter retrieves one or more subsequent lines of code that are associated with the hypersection and adds the one or more subsequent lines of code to the hypersection. The interpreter configures and executes the hypersection. If the interpreter retrieves an additional line of code that references a previously defined hypersection, then the interpreter determines the code included in the hypersection, reconfigures the hypersection to create a reconfigured hypersection, and executes the reconfigured hypersection.

Claims (85)

1. A computer-implemented method to execute a high-level program on a coarse-grained reconfigurable (CGR) processor comprising an array of CGR units, the computer-implemented method comprising:

retrieving a line of code included in a high-level program:

determining that the line of code includes a hypersection definition:

creating a hypersection based on the hypersection definition:

associating a name with the hypersection based on the hypersection definition:

retrieving one or more subsequent lines of code from the high-level program that are associated with the hypersection, wherein the one or more subsequent lines of code are subsequent to the line of code that includes the hypersection definition:

adding the one or more subsequent lines of code to the hypersection:

configuring the hypersection; and

executing the hypersection.

2. The computer-implemented method of claim 1 , wherein:

the high-level program comprises an intermediate language that is interpreted in real-time by an interpreter.

3. The computer-implemented method of claim 1 , wherein determining that the line of code includes the hypersection definition comprises:

determining that the line of code includes:

an indicator that indicates that a hypersection is being defined; and

the name of the hypersection.

4. The computer-implemented method of claim 1 , further comprising:

retrieving an additional line of code:

determining that the additional line of code references the hypersection:

determining the one or more subsequent lines of code included in the hypersection;

configuring the hypersection; and

executing the hypersection.

5. The computer-implemented method of claim 4 , wherein configuring the hypersection comprises:

configuring one or more inputs associated with the hypersection.

6. The computer-implemented method of claim 4 , wherein configuring the hypersection comprises:

configuring one or more weights associated with the hypersection.

7. The computer-implemented method of claim 4 , wherein configuring the hypersection comprises:

configuring one or more gradients associated with the hypersection.

8. A non-transitory computer-readable storage medium storing computer program instructions that, when executed on a processor, perform operations comprising:

retrieving a line of code included in a high-level program;

determining that the line of code includes a hypersection definition;

creating a hypersection based on the hypersection definition;

associating a name with the hypersection based on the hypersection definition;

retrieving one or more subsequent lines of code from the high-level program that are associated with the hypersection, wherein the one or more subsequent lines of code are subsequent to the line of code that includes the hypersection definition;

adding the one or more subsequent lines of code to the hypersection;

configuring the hypersection; and

executing the hypersection.

9. The non-transitory computer-readable storage medium of claim 8 , wherein:

the high-level program comprises an intermediate language that is interpreted in real-time by an interpreter.

10. The non-transitory computer-readable storage medium of claim 8 , further comprising:

retrieving a particular line of code included in the high-level program;

determining that the particular line of code does not include the hypersection definition; and

executing the particular line of code.

11. The non-transitory computer-readable storage medium of claim 8 , further comprising:

retrieving an additional line of code;

determining that the additional line of code references the hypersection;

determining the one or more subsequent lines of code included in the hypersection;

configuring the hypersection; and

executing the hypersection.

12. The non-transitory computer-readable storage medium of claim 11 , wherein

configuring the hypersection comprises:

configuring one or more inputs associated with the hypersection.

13. The non-transitory computer-readable storage medium of claim 11 , wherein

configuring the hypersection comprises:

configuring one or more weights associated with the hypersection.

14. The non-transitory computer-readable storage medium of claim 11 , wherein

configuring the hypersection comprises:

configuring one or more gradients associated with the hypersection.

15. A system comprising one or more processors coupled to a memory device, the memory device to store computer program instructions that are executable by the one or more processors to perform operations comprising:

retrieving a line of code included in a high-level program;

determining that the line of code includes a hypersection definition;

creating a hypersection based on the hypersection definition;

associating a name with the hypersection based on the hypersection definition;

retrieving one or more subsequent lines of code from the high-level program that are associated with the hypersection, wherein the one or more subsequent lines of code are subsequent to the line of code that includes the hypersection definition;

adding the one or more subsequent lines of code to the hypersection;

configuring the hypersection; and

executing the hypersection.

16. The system of claim 15 , wherein:

the high-level program comprises an intermediate language that is interpreted in real-time by an interpreter.

17. The system of claim 15 , wherein:

the high-level program implements one or more artificial intelligence algorithms.

18. The system of claim 17 , wherein the one or more artificial intelligence algorithms comprise:

a natural language processing algorithm (NLP);

a generative pre-trained transformer (GPT); or

any combination thereof.

19. The system of claim 15 , further comprising:

retrieving an additional line of code;

determining that the additional line of code references the hypersection;

determining the one or more subsequent lines of code included in the hypersection;

configuring the hypersection; and

executing the hypersection.

20. The system of claim 18 , wherein configuring the hypersection comprises:

configuring one or more inputs associated with the hypersection;

configuring one or more weights associated with the hypersection;

configuring one or more gradients associated with the hypersection; or

any combination thereof.

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 Jun 1, 2023
From: LUO, JIANDING; LIN, YUAN
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 063830/0431 →
Continuity (1)
Related Publication 20240403012A1 · Dec 5, 2024
References Cited (9)
US 7707544B2 · Beust · 2010 [cited by examiner]
US 10656921B2 · Bhogal · 2020 [cited by examiner]
US 11900113B2 · Hai · 2024 [cited by examiner]
US 20240086235A1 · Jiang · 2024 [cited by examiner]
WO 2010142987A1 · 2010 [cited by applicant]
Koeplinger et al., Spatial: A Language and Compiler for Application Accelerators, PLDI '18, Jun. 18-22, 2018, Association for Computng Machinery, 16 pages. [cited by applicant]
M. Emani et al., Accelerating Scientific Applications With Sambanova Reconfigurable Dataflow Architecture, in Computing in Science & Engineering, vol. 23, No. 2, pp. 114-119, Mar. 26, 2021, [doi: 10.1109/MCSE.2021.30572… [cited by applicant]
Podobas et al., A Survey on Coarse-Grained Reconfigurable Architectures From a Performance Perspective, IEEEAccess, vol. 2020.3012084, Jul. 27, 2020, 25 pages. [cited by applicant]
Prabhakar et al., Plasticine: A Reconfigurable Architecture for Parallel Patterns, ISCA, Jun. 24-28, 2017, 14 pages. [cited by applicant]