IP Library Granted Patent US 12,657,014
Granted Patent B2
US 12,657,014 · App. 18/542,544 · Granted Jun 16, 2026

Method and system for determining optimization applicability on intermediate representation from program

Inventors: Jaejin Lee (Seoul, KR); Jungho Park (Seoul, KR); Gangwon Jo (Seoul, KR); Heehoon Kim (Daejeon, KR); Jinpyo Kim (Seoul, KR)
Assignees: MOREH CORP.; Seoul National University R&DB Foundation
G06F8/443G06N3/042
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,657,014
App. No.
18/542,544
Granted
Jun 16, 2026
Kind
B2
Abstract

Methods, systems, apparatuses, and computer-readable media are disclosed for identifying optimization opportunities for subgraphs representing programs that perform operations on data. Tests may be performed on the subgraph to identify opportunities for fusing one or more nodes, such as more data nodes and/or one or more operations nodes, of the subgraph. For instance, optimization through node fusion may be possible where the subgraph comprises all nodes and all edges in a path between two operations nodes in the subgraph. Based on such identified optimization opportunities, steps such as node fusion may be performed, and these operations may allow for the program to be run in a manner that preserves computing resources without introducing data processing errors.

Claims (75)

1 . A method executed by one or more processors, the method comprising:

receiving, as a query, a subgraph of an intermediate representation that is a subject of a determination of optimization applicability,

wherein the intermediate representation is an intermediate representation of a program executable by one or more computing devices,

wherein the program comprises data and a plurality of operations, and,

wherein the intermediate representation comprises:

a plurality of data nodes;

a plurality of operation nodes; and

a plurality of edges each representing an input/output relationship between at least one of the plurality of data nodes and at least one of the plurality of operation nodes;

determining that the subgraph may be optimized through operation fusion by determining a possibility that the program will access intermediate data nodes at a future time; and

performing, based on the determining that the query may be optimized through operation fusion, optimization on the subgraph by fusing at least two of the plurality of operation nodes;

wherein the determining that the query may be optimized through operation fusion further comprises: determining a possibility that the program will access intermediate data nodes at a future time.

2 . The method according to claim 1 ,

wherein the program comprises at least one of:

a program associated with tensors; or

a deep learning program, and

wherein the data comprises at least one of:

tensor type data, or

data of the deep learning program.

3 . The method according to claim 1 , wherein the performing the optimization comprises:

generating a modified subgraph by removing, from the subgraph, one or more nodes.

4 . The method according to claim 1 , further comprising:

generating the intermediate representation from the program; and

storing, in a database, a corresponding relationship between at least a portion of the data of the program and the data nodes of the intermediate representation.

5 . The method according to claim 4 , wherein the storing, in the database, the corresponding relationship comprises:

storing, in the database, the at least a portion of the data of the program and pointer information in which the at least a portion of the data of the program points to at least one data node of the plurality of data nodes.

6 . The method according to claim 1 , wherein the determining that the subgraph may be optimized through operation fusion comprises:

determining whether at least one operation node associated with the program is not included in the subgraph.

7 . The method according to claim 1 , wherein the determining that the subgraph may be optimized through operation fusion comprises:

determining that, for every data node of the plurality of data nodes in the subgraph, the subgraph comprises all operation nodes adjacent to the data node and all edges connecting the data node to any other node; and

determining that, for every path between at least two operation nodes of the plurality of operation nodes, the subgraph comprises all nodes and all edges in the path.

8 . An information processing system, comprising:

memory; and

one or more processors coupled to the memory and configured to execute one or more computer-readable programs stored in the memory,

wherein the memory stores instructions that, when executed by the one or more processors, cause the information processing system to:

receive, as a query, a subgraph of an intermediate representation that is a subject of a determination of optimization applicability, wherein the intermediate representation is an intermediate representation of a program executable by one or more computing devices, wherein the program comprises data and a plurality of operations, and, wherein the intermediate representation comprises:

a plurality of data nodes;

a plurality of operation nodes; and

a plurality of edges each representing an input/output relationship between at least one of the plurality of data nodes and at least one of the plurality of operation nodes;

determine that the subgraph may be optimized through operation fusion; and

perform, based on the determining that the query may be optimized through operation fusion, optimization on the subgraph by fusing at least two of the plurality of operation nodes.

9 . The information processing system according to claim 8 ,

wherein the program comprises at least one of:

a program associated with tensors; or

a deep learning program, and

wherein the data comprises at least one of:

tensor type data, or

data of the deep learning program.

10 . The information processing system according to claim 8 , wherein the instructions, when executed by the one or more processors, cause the information processing system to perform the optimization by causing the information processing system to:

generate a modified subgraph by removing, from the subgraph, one or more nodes.

11 . The information processing system according to claim 8 , wherein the instructions, when executed by the one or more processors, cause the information processing system to:

generate the intermediate representation from the program; and

store, in a database, a corresponding relationship between at least a portion of the data of the program and the data nodes of the intermediate representation.

12 . The information processing system according to claim 11 , wherein the instructions, when executed by the one or more processors, cause the information processing system to store, in the database, the corresponding relationship by causing the information processing system to:

store, in the database, the at least a portion of the data of the program and pointer information in which the at least a portion of the data of the program points to at least one data node of the plurality of data nodes.

13 . The information processing system according to claim 8 , wherein the instructions, when executed by the one or more processors, cause the information processing system to determine that the subgraph may be optimized through operation fusion by causing the information processing system to:

determine whether at least one operation node associated with the program is not included in the subgraph.

14 . The information processing system according to claim 8 , wherein the instructions, when executed by the one or more processors, cause the information processing system to determine that the subgraph may be optimized through operation fusion by causing the information processing system to:

determine that, for every data node of the plurality of data nodes in the subgraph, the subgraph comprises all operation nodes adjacent to the data node and all edges connecting the data node to any other node; and

determine that, for every path between at least two operation nodes of the plurality of operation nodes, the subgraph comprises all nodes and all edges in the path.

15 . One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors of an information processing system, cause the information processing system to:

receive, as a query, a subgraph of an intermediate representation that is a subject of a determination of optimization applicability, wherein the intermediate representation is an intermediate representation of a program executable by one or more computing devices, wherein the program comprises data and a plurality of operations, and, wherein the intermediate representation comprises:

a plurality of data nodes;

a plurality of operation nodes; and

a plurality of edges each representing an input/output relationship between at least one of the plurality of data nodes and at least one of the plurality of operation nodes;

determine that the subgraph may be optimized through operation fusion; and

perform, based on the determining that the query may be optimized through operation fusion, optimization on the subgraph by fusing at least two of the plurality of operation nodes.

16 . The one or more non-transitory computer-readable media according to claim 15 ,

wherein the program comprises at least one of:

a program associated with tensors; or

a deep learning program, and

wherein the data comprises at least one of:

tensor type data, or

data of the deep learning program.

17 . The one or more non-transitory computer-readable media according to claim 15 , wherein the instructions, when executed by the one or more processors, cause the information processing system to perform the optimization by causing the information processing system to:

generate a modified subgraph by removing, from the subgraph, one or more nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2023
From: LEE, JAEJIN; PARK, JUNGHO; JO, GANGWON; KIM, HEEHOON; KIM, JINPYO
To: MOREH CORP.; SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
Reel/Frame 065890/0085 →
Priority Claims (2)
KR 10-2021-0077964 · Jun 16, 2021 · national
KR 10-2022-0072638 · Jun 15, 2022 · national
Continuity (2)
Continuation PCTKR2022008506 · Jun 15, 2022
Related Publication 20240118878A1 · Apr 11, 2024
References Cited (27)
US 8863069B1 · Venkataramani · 2014 [cited by examiner]
US 9817931B1 · Gu · 2017 [cited by examiner]
US 10423733B1 · Venkataramani · 2019 [cited by examiner]
US 10901715B1 · Raiman · 2021 [cited by examiner]
US 11461662B1 · Zheng · 2022 [cited by examiner]
US 11467811B1 · Durakovic · 2022 [cited by examiner]
US 11681510B2 · Dolby · 2023 [cited by examiner]
US 11740456B2 · Christmas · 2023 [cited by examiner]
US 12493785B2 · Liu · 2025 [cited by examiner]
US 20040221277A1 · Owen et al. · 2004 [cited by applicant]
US 20170124452A1 · Tucker et al. · 2017 [cited by applicant]
US 20210295822A1 · Tomkins · 2021 [cited by examiner]
US 20220206765A1 · Geng et al. · 2022 [cited by applicant]
KR 1020060004953A · 2006 [cited by applicant]
WO 2021052391A1 · 2021 [cited by applicant]
Duboscq et al, “ An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler”, ACM, pp. 1-10 (Year: 2013). [cited by examiner]
Kunft et al, “An Intermediate Representation for Optimizing Machine Learning Pipelines”, ACM, pp. 1-15 (Year: 2019). [cited by examiner]
Click et al, “A Simple Graph-Based Intermediate Representation”, ACM, pp. 1-15 (Year: 1995). [cited by examiner]
Sharifian, et al, “μIR—An intermediate representation for transforming and optimizing the microarchitecture of application accelerators”, ACM, pp. 1-15 (Year: 2019). [cited by examiner]
Lin et al, “A Compiler Framework for Speculative Analysis and Optimizations”, ACM, pp. 1-11 (Year: 2003). [cited by examiner]
Barhate et al, “An Approach for Pointer Optimization using SSA based Intermediate Representation”, IEEE, pp. 1-4 (Year: 2011). [cited by examiner]
Li et al. “The Deep Learning Compiler: A Comprehensive Survey” vol. 1, No. 1, Article . Publication date: Aug. 2020., pp. 1-34. [cited by applicant]
Geifman “Compilers for Deep Learning: Definition, Pros& Cons, and Popular Examples” Retrieved from the Internet: <URL: <https://deci.ai/blog/graph-compilers>>, printed Dec. 5, 2023, p. 1-28, Apr. 28, 2021. [cited by applicant]
Oct. 30, 2025 (KR) Office Action, App No. 10-2022-0133269, 6 pages. [cited by applicant]
Reissmann, Nico, et al., RVSDG: An Intermediate Representation for Optimizing Compilers, 2020 Mar. 2020, 25 pages. [cited by applicant]
Darte, Alain, et al., Liveness Analysis in Explicitly-Parallel Programs, Proceedings of the 6th International Workshop on Polyhedral Compilation Techniques, Jan. 18, 2016, 6 pages. [cited by applicant]
Chen, Tianqi, et al., TVM: An Automated End-to-End Optimizing Compiler for Deep Learning, ArXiv: 1802.04799v3, Oct. 5, 2018, 16 pages. [cited by applicant]