Patents by Inventor John D. Keenleyside

John D. Keenleyside 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: 10331669
    Abstract: According to one exemplary embodiment, a method for processing a query associated with a database is provided. The method may include receiving the query. The method may include estimating a number of groups. The method may include copying a plurality of data from the database to graphics processing unit (GPU) memory. The method may include creating a hash table in GPU memory. The method may include determining if a group associated with the database is present in the hash table. The method may include adding the group to the hash table based on determining that the group is not present in the hash table. The method may include aggregating a value associated with the group in the hash table based on determining that the group is present in the hash table. The method may include determining a plurality of results. The method may then include retrieving the plurality of results.
    Type: Grant
    Filed: June 28, 2016
    Date of Patent: June 25, 2019
    Assignee: International Business Machines Corporation
    Inventors: Sunil J. Kamath, Kajatheepan Kanagaratnam, John D. Keenleyside, Seyed Sina Meraji
  • Patent number: 10223762
    Abstract: A method for optimization of machine learning (ML) workloads on a graphics processor unit (GPU). The method includes identifying a computation having a generic pattern commonly observed in ML processes. Hierarchical aggregation spanning a memory hierarchy of the GPU for processing is performed for the identified computation including maintaining partial output vector results in shared memory of the GPU. Hierarchical aggregation for vectors is performed including performing intra-block aggregation for multiple thread blocks of a partial output vector results on GPU global memory.
    Type: Grant
    Filed: March 16, 2018
    Date of Patent: March 5, 2019
    Assignee: International Business Machines Corporation
    Inventors: Arash Ashari, Matthias Boehm, Keith W. Campbell, Alexandre Evfimievski, John D. Keenleyside, Berthold Reinwald, Shirish Tatikonda
  • Publication number: 20180211357
    Abstract: A method for optimization of machine learning (ML) workloads on a graphics processor unit (GPU). The method includes identifying a computation having a generic pattern commonly observed in ML processes. Hierarchical aggregation spanning a memory hierarchy of the GPU for processing is performed for the identified computation including maintaining partial output vector results in shared memory of the GPU. Hierarchical aggregation for vectors is performed including performing intra-block aggregation for multiple thread blocks of a partial output vector results on GPU global memory.
    Type: Application
    Filed: March 16, 2018
    Publication date: July 26, 2018
    Inventors: Arash Ashari, Matthias Boehm, Keith W. Campbell, Alexandre Evfimievski, John D. Keenleyside, Berthold Reinwald, Shirish Tatikonda
  • Patent number: 9971808
    Abstract: According to one exemplary embodiment, a method for processing a query associated with a database is provided. The method may include receiving the query. The method may include estimating a number of groups. The method may include copying a plurality of data from the database to graphics processing unit (GPU) memory. The method may include creating a hash table in GPU memory. The method may include determining if a group associated with the database is present in the hash table. The method may include adding the group to the hash table based on determining that the group is not present in the hash table. The method may include aggregating a value associated with the group in the hash table based on determining that the group is present in the hash table. The method may include determining a plurality of results. The method may then include retrieving the plurality of results.
    Type: Grant
    Filed: June 24, 2015
    Date of Patent: May 15, 2018
    Assignee: International Business Machines Corporation
    Inventors: Sunil J. Kamath, Kajatheepan Kanagaratnam, John D. Keenleyside, Seyed Sina Meraji
  • Patent number: 9972063
    Abstract: A method for optimization of machine learning (ML) workloads on a graphics processor unit (GPU). The method includes identifying a computation having a generic pattern commonly observed in ML processes. An optimized fused GPU kernel is employed to exploit temporal locality for inherent data-flow dependencies in the identified computation. Hierarchical aggregation spanning a memory hierarchy of the GPU for processing for the identified computation is performed. GPU kernel launch parameters are estimated following an analytical model that maximizes thread occupancy and minimizes atomic writes to GPU global memory.
    Type: Grant
    Filed: July 30, 2015
    Date of Patent: May 15, 2018
    Assignee: International Business Machines Corporation
    Inventors: Arash Ashari, Matthias Boehm, Keith W. Campbell, Alexandre Evfimievski, John D. Keenleyside, Berthold Reinwald, Shirish Tatikonda
  • Publication number: 20170032487
    Abstract: A method for optimization of machine learning (ML) workloads on a graphics processor unit (GPU). The method includes identifying a computation having a generic pattern commonly observed in ML processes. An optimized fused GPU kernel is employed to exploit temporal locality for inherent data-flow dependencies in the identified computation. Hierarchical aggregation spanning a memory hierarchy of the GPU for processing for the identified computation is performed. GPU kernel launch parameters are estimated following an analytical model that maximizes thread occupancy and minimizes atomic writes to GPU global memory.
    Type: Application
    Filed: July 30, 2015
    Publication date: February 2, 2017
    Inventors: Arash Ashari, Matthias Boehm, Keith W. Campbell, Alexandre Evfimievski, John D. Keenleyside, Berthold Reinwald, Shirish Tatikonda
  • Publication number: 20160378754
    Abstract: According to one exemplary embodiment, a method for processing a query associated with a database is provided. The method may include receiving the query. The method may include estimating a number of groups. The method may include copying a plurality of data from the database to graphics processing unit (GPU) memory. The method may include creating a hash table in GPU memory. The method may include determining if a group associated with the database is present in the hash table. The method may include adding the group to the hash table based on determining that the group is not present in the hash table. The method may include aggregating a value associated with the group in the hash table based on determining that the group is present in the hash table. The method may include determining a plurality of results. The method may then include retrieving the plurality of results.
    Type: Application
    Filed: June 28, 2016
    Publication date: December 29, 2016
    Inventors: Sunil J. Kamath, Kajatheepan Kanagaratnam, John D. Keenleyside, Seyed Sina Meraji
  • Publication number: 20160378751
    Abstract: According to one exemplary embodiment, a method for processing a query associated with a database is provided. The method may include receiving the query. The method may include estimating a number of groups. The method may include copying a plurality of data from the database to graphics processing unit (GPU) memory. The method may include creating a hash table in GPU memory. The method may include determining if a group associated with the database is present in the hash table. The method may include adding the group to the hash table based on determining that the group is not present in the hash table. The method may include aggregating a value associated with the group in the hash table based on determining that the group is present in the hash table. The method may include determining a plurality of results. The method may then include retrieving the plurality of results.
    Type: Application
    Filed: June 24, 2015
    Publication date: December 29, 2016
    Inventors: Sunil J. Kamath, Kajatheepan Kanagaratnam, John D. Keenleyside, Seyed Sina Meraji
  • Patent number: 7210126
    Abstract: The invention enables a compiler (during its first compilation pass) to insert identifiers during an early optimization phase into machine-independent code. The identifiers are used for identifying specific instructions of the machine-independent code. The compiler may use a table to record the assignment of identifiers and their corresponding portion of machine-independent code. During subsequent optimization phases of the first compilation pass, portions of machine-independent code are transformed into portions of machine-dependent code, and the machine-dependent code inherits identification associated with the portions of machine-independent code that were used to generate the portions of machine-dependent code. After the first compilation pass, executable code is made to interact with test data to generate statistical execution data which is collected by previously inserted counters. The collected counter data is consolidated so that it relates to the instructions of the machine-independent code.
    Type: Grant
    Filed: August 8, 2002
    Date of Patent: April 24, 2007
    Assignee: International Business Machines Corporation
    Inventors: Shereen M. Ghobrial, John D. Keenleyside
  • Publication number: 20030079214
    Abstract: The invention enables a compiler (during its first compilation pass) to insert identifiers during an early optimization phase into machine-independent code. The identifiers are used for identifying specific instructions of the machine-independent code. The compiler may use a table to record the assignment of identifiers and their corresponding portion of machine-independent code. During subsequent optimization phases of the first compilation pass, portions of machine-independent code are transformed into portions of machine-dependent code, and the machine-dependent code inherits identification associated with the portions of machine-independent code that were used to generate the portions of machine-dependent code. After the first compilation pass, executable code is made to interact with test data to generate statistical execution data which is collected by previously inserted counters. The collected counter data is consolidated so that it relates to the instructions of the machine-independent code.
    Type: Application
    Filed: August 8, 2002
    Publication date: April 24, 2003
    Applicant: International Business Machines Corporation
    Inventors: Shereen M. Ghobrial, John D. Keenleyside