Patents by Inventor Haoran Yi

Haoran Yi has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10216495
    Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.
    Type: Grant
    Filed: February 1, 2018
    Date of Patent: February 26, 2019
    Assignee: NATIONAL INSTRUMENTS CORPORATION
    Inventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
  • Publication number: 20180181379
    Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.
    Type: Application
    Filed: February 1, 2018
    Publication date: June 28, 2018
    Inventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
  • Patent number: 9921815
    Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.
    Type: Grant
    Filed: October 14, 2015
    Date of Patent: March 20, 2018
    Assignee: National Instruments Corporation
    Inventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
  • Patent number: 9898267
    Abstract: System and method for performing correlation analysis. A program that includes multiple program structures and one or more data objects is stored. Each data object is shared by at least two of the program structures. For each program structure, decomposition effects on each of the data objects shared by the program structure resulting from each of a respective one or more optimizing transforms applied to the program structure are analyzed. One or more groups of correlated structures are determined based on the analyzing. Each group includes two or more program structures that share at least one data object, and at least one optimizing transform that is compatible with respect to the two or more program structures and the shared data object. For at least one group, the at least one optimizing transform is usable to transform the two or more program structures to meet a specified optimization objective.
    Type: Grant
    Filed: September 27, 2016
    Date of Patent: February 20, 2018
    Assignee: NATIONAL INSTRUMENTS CORPORATION
    Inventors: Hojin Kee, Haoran Yi, Tai A. Ly, Newton G. Petersen, James M. Lewis, Dustyn K. Blasig, Adam T. Arnesen, Taylor L. Riche
  • Patent number: 9733914
    Abstract: System and method for automatically parallelizing iterative functionality in a data flow program. A data flow program is stored that includes a first data flow program portion, where the first data flow program portion is iterative. Program code implementing a plurality of second data flow program portions is automatically generated based on the first data flow program portion, where each of the second data flow program portions is configured to execute a respective one or more iterations. The plurality of second data flow program portions are configured to execute at least a portion of iterations concurrently during execution of the data flow program. Execution of the plurality of second data flow program portions is functionally equivalent to sequential execution of the iterations of the first data flow program portion.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: August 15, 2017
    Assignee: NATIONAL INSTRUMENTS CORPORATION
    Inventors: Haoran Yi, Mary E. Fletcher, Robert E. Dye, Adam L. Bordelon
  • Patent number: 9690550
    Abstract: When compiling high level, graphical code (e.g. LabVIEW™ code) representative of a design, parts of the code that do not depend on external input data may be executed during the compilation process. Specific variables and/or value traces of specific variables in the program, e.g. constant values and/or repeating patterns may be recorded then analyzed, and certain transformations may be applied in the compilation process according to the results of the analysis, thereby optimizing the design. In one approach, the graph may be dynamically stepped through one node at a time, and it may be determined whether all inputs to the stepped-through node are known. If those inputs are known, type conversion and the operation corresponding to the stepped-through node may be dynamically performed. In another approach, a subset of the graphical code not depending on external data may be compiled and executed, thereby obtaining the same results as described above.
    Type: Grant
    Filed: May 5, 2015
    Date of Patent: June 27, 2017
    Assignee: NATIONAL INSTRUMENTS CORPORATION
    Inventors: Hojin Kee, Tai A. Ly, Newton G. Petersen, Jeffrey D. Washington, Haoran Yi, Dustyn K. Blasig
  • Publication number: 20170083299
    Abstract: System and method for performing correlation analysis. A program that includes multiple program structures and one or more data objects is stored. Each data object is shared by at least two of the program structures. For each program structure, decomposition effects on each of the data objects shared by the program structure resulting from each of a respective one or more optimizing transforms applied to the program structure are analyzed. One or more groups of correlated structures are determined based on the analyzing. Each group includes two or more program structures that share at least one data object, and at least one optimizing transform that is compatible with respect to the two or more program structures and the shared data object. For at least one group, the at least one optimizing transform is usable to transform the two or more program structures to meet a specified optimization objective.
    Type: Application
    Filed: September 27, 2016
    Publication date: March 23, 2017
    Inventors: Hojin Kee, Haoran Yi, Tai A. Ly, Newton G. Petersen, James M. Lewis, Dustyn K. Blasig, Adam T. Arnesen, Taylor L. Riche
  • Patent number: 9489181
    Abstract: System and method for performing correlation analysis. A program that includes multiple program structures and one or more data objects is stored. Each data object is shared by at least two of the program structures. For each program structure, decomposition effects on each of the data objects shared by the program structure resulting from each of a respective one or more optimizing transforms applied to the program structure are analyzed. One or more groups of correlated structures are determined based on the analyzing. Each group includes two or more program structures that share at least one data object, and at least one optimizing transform that is compatible with respect to the two or more program structures and the shared data object. For at least one group, the at least one optimizing transform is usable to transform the two or more program structures to meet a specified optimization objective.
    Type: Grant
    Filed: October 9, 2014
    Date of Patent: November 8, 2016
    Assignee: NATIONAL INSTRUMENTS CORPORATION
    Inventors: Hojin Kee, Haoran Yi, Tai A. Ly, Newton G. Petersen, James M. Lewis, Dustyn K. Blasig, Adam T. Arnesen, Taylor L. Riche
  • Publication number: 20160103664
    Abstract: System and method for performing correlation analysis. A program that includes multiple program structures and one or more data objects is stored. Each data object is shared by at least two of the program structures. For each program structure, decomposition effects on each of the data objects shared by the program structure resulting from each of a respective one or more optimizing transforms applied to the program structure are analyzed. One or more groups of correlated structures are determined based on the analyzing. Each group includes two or more program structures that share at least one data object, and at least one optimizing transform that is compatible with respect to the two or more program structures and the shared data object. For at least one group, the at least one optimizing transform is usable to transform the two or more program structures to meet a specified optimization objective.
    Type: Application
    Filed: October 9, 2014
    Publication date: April 14, 2016
    Inventors: Hojin Kee, Haoran Yi, Tai A. Ly, Newton G. Petersen, James M. Lewis, Dustyn K. Blasig, Adam T. Arnesen, Taylor L. Riche
  • Publication number: 20160062750
    Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.
    Type: Application
    Filed: October 14, 2015
    Publication date: March 3, 2016
    Inventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
  • Patent number: 9189215
    Abstract: System and method for convergence analysis. One or more state variables of a first program may be determined based on dependencies of variables in a first program. A second program corresponding to the first program is created based on the state variables and their dependencies, and executed multiple times. Each execution may include recording values of the state variables, determining an execution count, comparing the values to corresponding values from previous executions of the second program, and terminating the executing in response to the values matching corresponding values from at least one previous execution of the second program. A convergence property for the first program is determined based on the execution count, and indicating a number of executions of the first program required to generate all possible values of the one or more variables. The convergence property is stored, and may be useable to optimize the first program.
    Type: Grant
    Filed: August 26, 2014
    Date of Patent: November 17, 2015
    Assignee: National Instruments Corporation
    Inventors: Taylor L. Riche, Newton G. Petersen, Hojin Kee, Adam T. Arnesen, Haoran Yi, Dustyn K. Blasig, Tai A. Ly
  • Publication number: 20150242193
    Abstract: When compiling high level, graphical code (e.g. LabVIEW™ code) representative of a design, parts of the code that do not depend on external input data may be executed during the compilation process. Specific variables and/or value traces of specific variables in the program, e.g. constant values and/or repeating patterns may be recorded then analyzed, and certain transformations may be applied in the compilation process according to the results of the analysis, thereby optimizing the design. In one approach, the graph may be dynamically stepped through one node at a time, and it may be determined whether all inputs to the stepped-through node are known. If those inputs are known, type conversion and the operation corresponding to the stepped-through node may be dynamically performed. In another approach, a subset of the graphical code not depending on external data may be compiled and executed, thereby obtaining the same results as described above.
    Type: Application
    Filed: May 5, 2015
    Publication date: August 27, 2015
    Inventors: Hojin Kee, Tai A. Ly, Newton G. Petersen, Jeffrey D. Washington, Haoran Yi, Dustyn K. Blasig
  • Patent number: 9081583
    Abstract: When compiling high level, graphical code (e.g. LabVIEW™ code) representative of a design, parts of the code that do not depend on external input data may be executed during the compilation process. Specific variables and/or value traces of specific variables in the program, e.g. constant values and/or repeating patterns may be recorded then analyzed, and certain transformations may be applied in the compilation process according to the results of the analysis, thereby optimizing the design. In one approach, the graph may be dynamically stepped through one node at a time, and it may be determined whether all inputs to the stepped-through node are known. If those inputs are known, type conversion and the operation corresponding to the stepped-through node may be dynamically performed. In another approach, a subset of the graphical code not depending on external data may be compiled and executed, thereby obtaining the same results as described above.
    Type: Grant
    Filed: August 23, 2012
    Date of Patent: July 14, 2015
    Assignee: National Instruments Corporation
    Inventors: Hojin Kee, Tai A. Ly, Newton G. Petersen, Jeffrey D. Washington, Haoran Yi, Dustyn K. Blasig
  • Publication number: 20140059524
    Abstract: When compiling high level, graphical code (e.g. LabVIEW™ code) representative of a design, parts of the code that do not depend on external input data may be executed during the compilation process. Specific variables and/or value traces of specific variables in the program, e.g. constant values and/or repeating patterns may be recorded then analyzed, and certain transformations may be applied in the compilation process according to the results of the analysis, thereby optimizing the design. In one approach, the graph may be dynamically stepped through one node at a time, and it may be determined whether all inputs to the stepped-through node are known. If those inputs are known, type conversion and the operation corresponding to the stepped-through node may be dynamically performed. In another approach, a subset of the graphical code not depending on external data may be compiled and executed, thereby obtaining the same results as described above.
    Type: Application
    Filed: August 23, 2012
    Publication date: February 27, 2014
    Inventors: Hojin Kee, Tai A. Ly, Newton G. Petersen, Jeffrey D. Washington, Haoran Yi, Dustyn K. Blasig
  • Patent number: 8640112
    Abstract: System and method for vectorizing combinations of program operations. Program code is received that includes a combination of individually vectorizable program portions that collectively implement a first computation. Each individually vectorizable program portion has at least one array input and at least one array output. The combination of individually vectorizable program portions is transformed into a single vectorizable program portion that is or includes a functional composition of the combination of individually vectorizable program portions. Vectorized executable code implementing the first computation is generated based on the single vectorizable program portion. The generated executable code is directed to SIMD (Single-Instruction-Multiple-Data) computing units of a target processor.
    Type: Grant
    Filed: March 30, 2011
    Date of Patent: January 28, 2014
    Assignee: National Instruments Corporation
    Inventors: Haoran Yi, Brady C. Duggan, Robert E. Dye, Adam L. Bordelon, Jeffrey L. Kodosky
  • Patent number: 8510709
    Abstract: System and method for automatically parallelizing iterative functionality in a data flow program. A data flow program is stored that includes a first data flow program portion, where the first data flow program portion is iterative. Program code implementing a plurality of second data flow program portions is automatically generated based on the first data flow program portion, where each of the second data flow program portions is configured to execute a respective one or more iterations. The plurality of second data flow program portions are configured to execute at least a portion of iterations concurrently during execution of the data flow program. Execution of the plurality of second data flow program portions is functionally equivalent to sequential execution of the iterations of the first data flow program portion.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: August 13, 2013
    Assignee: National Instruments Corporation
    Inventors: Adam L. Bordelon, Robert E. Dye, Haoran Yi, Mary E. Fletcher
  • Patent number: 8478967
    Abstract: System and method for automatically parallelizing iterative functionality in a data flow program. A data flow program is stored that includes a first data flow program portion, where the first data flow program portion is iterative. Program code implementing a plurality of second data flow program portions is automatically generated based on the first data flow program portion, where each of the second data flow program portions is configured to execute a respective one or more iterations. The plurality of second data flow program portions are configured to execute at least a portion of iterations concurrently during execution of the data flow program. Execution of the plurality of second data flow program portions is functionally equivalent to sequential execution of the iterations of the first data flow program portion.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: July 2, 2013
    Assignee: National Instruments Corporation
    Inventors: Adam L. Bordelon, Robert E. Dye, Haoran Yi, Mary E. Fletcher
  • Patent number: 8448155
    Abstract: System and method for automatically parallelizing iterative functionality in a data flow program. A data flow program is stored that includes a first data flow program portion, where the first data flow program portion is iterative. Program code implementing a plurality of second data flow program portions is automatically generated based on the first data flow program portion, where each of the second data flow program portions is configured to execute a respective one or more iterations. The plurality of second data flow program portions are configured to execute at least a portion of iterations concurrently during execution of the data flow program. Execution of the plurality of second data flow program portions is functionally equivalent to sequential execution of the iterations of the first data flow program portion.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: May 21, 2013
    Assignee: National Instruments Corporation
    Inventors: Adam L. Bordelon, Robert E. Dye, Haoran Yi, Mary E. Fletcher
  • Publication number: 20120254845
    Abstract: System and method for vectorizing combinations of program operations. Program code is received that includes a combination of individually vectorizable program portions that collectively implement a first computation. Each individually vectorizable program portion has at least one array input and at least one array output. The combination of individually vectorizable program portions is transformed into a single vectorizable program portion that is or includes a functional composition of the combination of individually vectorizable program portions. Vectorized executable code implementing the first computation is generated based on the single vectorizable program portion. The generated executable code is directed to SIMD (Single-Instruction-Multiple-Data) computing units of a target processor.
    Type: Application
    Filed: March 30, 2011
    Publication date: October 4, 2012
    Inventors: Haoran Yi, Brady C. Duggan, Robert E. Dye, Adam L. Bordelon, Jeffrey L. Kodosky
  • Patent number: 8050454
    Abstract: Methods to process digital video using trajectory extraction and spatiotemporal decomposition for search and retrieval of video are described. An example method extracts interest point data from data representing a plurality of video frames. The interest point data is extracted from each of the video frames independent of the other video frames. Subsequent to extracting the interest point data, the example method links at least some of the interest point data to generate corresponding trajectory information. The example method also clusters the trajectory information to form clustered trajectory information and extracts a representative feature index from the clustered trajectory information.
    Type: Grant
    Filed: December 29, 2006
    Date of Patent: November 1, 2011
    Assignee: Intel Corporation
    Inventors: Haoran Yi, Igor Kozintsev, Marzia Polito