Patents by Inventor Mojtaba Mehrara

Mojtaba Mehrara 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).

  • Publication number: 20210304264
    Abstract: The present disclosure relates to the implementation of a pricing structure for the private booking of travel experiences. An experience is offered publicly, so as to be bookable by a plurality of customers, each customer booking a subset of a number of available slots for attendees. A customer may convert the experience from a public experience to a private experience by paying at least a minimum price for the private booking. Where the per person cost would exceed the minimum price, the customer pays an additional per guest value. A plurality of differing pricing rules may be applied in correspondence based on the respective numbers of different types of guests attending the event, or differing date/time instances of the experience.
    Type: Application
    Filed: March 25, 2020
    Publication date: September 30, 2021
    Applicant: Airbnb, Inc.
    Inventors: Benjamin Chute, Eric Ertmann, Andrew Hunt, Kristen Jaber, Mojtaba Mehrara, Pauline Nguyen, James Ostrowski, Gabriel Radovsky, Yunshan Weng
  • Patent number: 9645802
    Abstract: A device compiler and linker is configured to group instructions into different strands for execution by different threads based on the dependence of those instructions on other, long-latency instructions. A thread may execute a strand that includes long-latency instructions, and then hardware resources previously allocated for the execution of that thread may be de-allocated from the thread and re-allocated to another thread. The other thread may then execute another strand while the long-latency instructions are in flight. With this approach, the other thread is not required to wait for the long-latency instructions to complete before acquiring hardware resources and initiating execution of the other strand, thereby eliminating at least a portion of the time that the other thread would otherwise spend waiting.
    Type: Grant
    Filed: August 7, 2013
    Date of Patent: May 9, 2017
    Assignee: NVIDIA Corporation
    Inventors: Mojtaba Mehrara, Michael Garland, Gregory Diamos
  • Patent number: 9424038
    Abstract: A compiler-controlled technique for scheduling threads to execute different regions of a program. A compiler analyzes program code to determine a control flow graph for the program code. The control flow graph contains regions and directed edges between regions. The regions have associated execution priorities. The directed edges indicate the direction of program control flow. Each region has a thread frontier which contains one or more regions. The compiler inserts one or more update predicate mask variable instructions at the end of a region. The compiler also inserts one or more conditional branch instructions at the end of the region. The conditional branch instructions are arranged in order of execution priority of the regions in the thread frontier of the region, to enforce execution priority of the regions at runtime.
    Type: Grant
    Filed: December 10, 2012
    Date of Patent: August 23, 2016
    Assignee: NVIDIA Corporation
    Inventors: Gregory Diamos, Mojtaba Mehrara
  • Patent number: 9329846
    Abstract: Cooperative program code transformation includes receiving a transformation hint request, obtaining a suitable transformation hint, and providing the suitable transformation hint such that it is used to transform at least a portion of the program code and generate optimized code.
    Type: Grant
    Filed: November 22, 2010
    Date of Patent: May 3, 2016
    Assignee: Parakinetics Inc.
    Inventors: David I. August, Kevin C. Fan, Jae Wook Lee, Scott A. Mahlke, Mojtaba Mehrara
  • Patent number: 9274792
    Abstract: A compiler-controlled technique for scheduling threads to execute different regions of a program. A compiler analyzes program code to determine a control flow graph for the program code. The control flow graph contains regions and directed edges between regions. The regions have associated execution priorities. The directed edges indicate the direction of program control flow. Each region has a thread frontier which contains one or more regions. The compiler inserts one or more update predicate mask variable instructions at the end of a region. The compiler also inserts one or more conditional branch instructions at the end of the region. The conditional branch instructions are arranged in order of execution priority of the regions in the thread frontier of the region, to enforce execution priority of the regions at runtime.
    Type: Grant
    Filed: December 10, 2012
    Date of Patent: March 1, 2016
    Assignee: NVIDIA Corporation
    Inventors: Gregory Diamos, Mojtaba Mehrara
  • Patent number: 9229717
    Abstract: A method for allocating registers within a processing unit. A compiler assigns a plurality of instructions to a plurality of processing clusters. Each instruction is configured to access a first virtual register within a live range. The compiler determines which processing cluster in the plurality of processing clusters is an owner cluster for the first virtual register within the live range. The compiler configures a first instruction included in the plurality of instructions to access a first global virtual register.
    Type: Grant
    Filed: December 11, 2012
    Date of Patent: January 5, 2016
    Assignee: NVIDIA Corporation
    Inventors: Mojtaba Mehrara, Gregory Diamos
  • Publication number: 20150046684
    Abstract: A device compiler and linker is configured to group instructions into different strands for execution by different threads based on the dependence of those instructions on other, long-latency instructions. A thread may execute a strand that includes long-latency instructions, and then hardware resources previously allocated for the execution of that thread may be de-allocated from the thread and re-allocated to another thread. The other thread may then execute another strand while the long-latency instructions are in flight. With this approach, the other thread is not required to wait for the long-latency instructions to complete before acquiring hardware resources and initiating execution of the other strand, thereby eliminating at least a portion of the time that the other thread would otherwise spend waiting.
    Type: Application
    Filed: August 7, 2013
    Publication date: February 12, 2015
    Applicant: NVIDIA CORPORATION
    Inventors: Mojtaba Mehrara, Michael Garland, Gregory Diamos
  • Publication number: 20140165049
    Abstract: A compiler-controlled technique for scheduling threads to execute different regions of a program. A compiler analyzes program code to determine a control flow graph for the program code. The control flow graph contains regions and directed edges between regions. The regions have associated execution priorities. The directed edges indicate the direction of program control flow. Each region has a thread frontier which contains one or more regions. The compiler inserts one or more update predicate mask variable instructions at the end of a region. The compiler also inserts one or more conditional branch instructions at the end of the region. The conditional branch instructions are arranged in order of execution priority of the regions in the thread frontier of the region, to enforce execution priority of the regions at runtime.
    Type: Application
    Filed: December 10, 2012
    Publication date: June 12, 2014
    Applicant: NVIDIA CORPORATION
    Inventors: Gregory DIAMOS, Mojtaba MEHRARA
  • Publication number: 20140164745
    Abstract: A method for allocating registers within a processing unit. A compiler assigns a plurality of instructions to a plurality of processing clusters. Each instruction is configured to access a first virtual register within a live range. The compiler determines which processing cluster in the plurality of processing clusters is an owner cluster for the first virtual register within the live range. The compiler configures a first instruction included in the plurality of instructions to access a first global virtual register.
    Type: Application
    Filed: December 11, 2012
    Publication date: June 12, 2014
    Applicant: NVIDIA CORPORATION
    Inventors: Mojtaba MEHRARA, Gregory DIAMOS
  • Patent number: 7598766
    Abstract: A fabrication technique called “component and polymorphic network,” in which semiconductor chips are made from small prefabricated bare electronic component dies, e.g., application specific integrated circuits (ASICs), that are assembled according to designer specifications, and bonded to a semiconductor substrate comprising the polymorphic network. The component and polymorphic network assembly has a low overhead for producing custom chips. In another exemplary embodiment, the polymorphic network can be combined with functional components in a single die. The interconnect scheme for ports on the polymorphic network can be configured or reconfigured with configuration data prior to the runtime of an application, to achieve different interconnect schemes.
    Type: Grant
    Filed: January 9, 2008
    Date of Patent: October 6, 2009
    Assignees: University of Washington, Microsoft Corporation, Regents of the U of Michigan
    Inventors: Martha Mercaldi-Kim, Mark Oskin, John Davis, Todd Austin, Mojtaba Mehrara
  • Publication number: 20080164907
    Abstract: A fabrication technique called “component and polymorphic network,” in which semiconductor chips are made from small prefabricated bare electronic component dies, e.g., application specific integrated circuits (ASICs), that are assembled according to designer specifications, and bonded to a semiconductor substrate comprising the polymorphic network. The component and polymorphic network assembly has a low overhead for producing custom chips. In another exemplary embodiment, the polymorphic network can be combined with functional components in a single die. The interconnect scheme for ports on the polymorphic network can be configured or reconfigured with configuration data prior to the runtime of an application, to achieve different interconnect schemes.
    Type: Application
    Filed: January 9, 2008
    Publication date: July 10, 2008
    Applicant: University of Washington
    Inventors: Martha Mercaldi-Kim, Mark Oskin, John Davis, Todd Austin, Mojtaba Mehrara