Patents by Inventor Julius Vanderspek

Julius Vanderspek 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: 9772827
    Abstract: One embodiment sets forth a method for efficiently determining memory resource dependencies between instructions included in a software application. For each instruction, a dependency analyzer uses overlapping search techniques to identify one or more overlaps between the memory elements included in the current instruction and the memory elements included in previous instructions. The dependency analyzer then maps objects included in the instructions to a set of partition elements wherein each partition element represents a set of memory elements that are functionally equivalent for dependency analysis. Subsequently, the dependency analyzer uses the set of partition elements to determine memory dependencies between the instructions at the memory element level.
    Type: Grant
    Filed: April 22, 2013
    Date of Patent: September 26, 2017
    Assignee: NVIDIA Corporation
    Inventor: Julius Vanderspek
  • Patent number: 9766866
    Abstract: One embodiment sets forth a method for efficiently determining memory resource dependencies between instructions included in a software application. For each instruction, a dependency analyzer uses overlapping search techniques to identify one or more overlaps between the memory elements included in the current instruction and the memory elements included in previous instructions. The dependency analyzer then maps objects included in the instructions to a set of partition elements wherein each partition element represents a set of memory elements that are functionally equivalent for dependency analysis. Subsequently, the dependency analyzer uses the set of partition elements to determine memory dependencies between the instructions at the memory element level.
    Type: Grant
    Filed: April 22, 2013
    Date of Patent: September 19, 2017
    Assignee: NVIDIA Corporation
    Inventor: Julius Vanderspek
  • Patent number: 8938485
    Abstract: One embodiment of the present invention sets forth a technique for performing fast integer division using commonly available arithmetic operations. The technique may be implemented in a four-stage process using a single-precision floating point reciprocal in conjunction with integer addition and multiplication. Furthermore, the technique may be fully pipelined on many conventional processors for overall performance that is comparable to the best available high-performance alternatives.
    Type: Grant
    Filed: February 12, 2008
    Date of Patent: January 20, 2015
    Assignee: NVIDIA Corporation
    Inventor: Julius Vanderspek
  • Publication number: 20140317386
    Abstract: One embodiment sets forth a method for efficiently determining memory resource dependencies between instructions included in a software application. For each instruction, a dependency analyzer uses overlapping search techniques to identify one or more overlaps between the memory elements included in the current instruction and the memory elements included in previous instructions. The dependency analyzer then maps objects included in the instructions to a set of partition elements wherein each partition element represents a set of memory elements that are functionally equivalent for dependency analysis. Subsequently, the dependency analyzer uses the set of partition elements to determine memory dependencies between the instructions at the memory element level.
    Type: Application
    Filed: April 22, 2013
    Publication date: October 23, 2014
    Applicant: NVIDIA CORPORATION
    Inventor: Julius VANDERSPEK
  • Publication number: 20140317385
    Abstract: One embodiment sets forth a method for efficiently determining memory resource dependencies between instructions included in a software application. For each instruction, a dependency analyzer uses overlapping search techniques to identify one or more overlaps between the memory elements included in the current instruction and the memory elements included in previous instructions. The dependency analyzer then maps objects included in the instructions to a set of partition elements wherein each partition element represents a set of memory elements that are functionally equivalent for dependency analysis. Subsequently, the dependency analyzer uses the set of partition elements to determine memory dependencies between the instructions at the memory element level.
    Type: Application
    Filed: April 22, 2013
    Publication date: October 23, 2014
    Applicant: NVIDIA CORPORATION
    Inventor: Julius VANDERSPEK
  • Patent number: 8655937
    Abstract: One or more embodiments of the invention set forth techniques to perform integer division using a floating point hardware unit supporting floating point variables of a certain bit size. The numerator and denominator are integers having a bit size that is greater than the bit size of the floating point variables supported by the floating point hardware unit. Error correcting techniques are utilized to account for any loss of precision caused by the floating point operations.
    Type: Grant
    Filed: April 29, 2009
    Date of Patent: February 18, 2014
    Assignee: Nvidia Corporation
    Inventor: Julius Vanderspek
  • Patent number: 8347310
    Abstract: One embodiment of the present invention sets forth a technique for representing and managing a multi-architecture co-processor application program. Source code for co-processor functions is compiled in two stages. The first stage incorporates a majority of the computationally intensive processing steps associated with co-processor code compilation. The first stage generates virtual assembly code from the source code. The second stage generates co-processor machine code from the virtual assembly. Both the virtual assembly and co-processor machine code may be included within the co-processor enabled application program. A co-processor driver uses a description of the currently available co-processor to select between virtual assembly and co-processor machine code. If the virtual assembly code is selected, then the co-processor driver compiles the virtual assembly into machine code for the current co-processor.
    Type: Grant
    Filed: November 12, 2007
    Date of Patent: January 1, 2013
    Assignee: NVIDIA Corporation
    Inventors: Julius Vanderspek, Nicholas Patrick Wilt, Jayant Kolhe, Ian A. Buck, Bastiaan Aarts
  • Patent number: 8281294
    Abstract: One embodiment of the present invention sets forth a technique for representing and managing a multi-architecture co-processor application program. Source code for co-processor functions is compiled in two stages. The first stage incorporates a majority of the computationally intensive processing steps associated with co-processor code compilation. The first stage generates virtual assembly code from the source code. The second stage generates co-processor machine code from the virtual assembly. Both the virtual assembly and co-processor machine code may be included within the co-processor enabled application program. A co-processor driver uses a description of the currently available co-processor to select between virtual assembly and co-processor machine code. If the virtual assembly code is selected, then the co-processor driver compiles the virtual assembly into machine code for the current co-processor.
    Type: Grant
    Filed: November 12, 2007
    Date of Patent: October 2, 2012
    Assignee: NVIDIA Corporation
    Inventors: Julius Vanderspek, Nicholas Patrick Wilt, Jayant Kolhe, Ian A. Buck, Bastiaan Aarts
  • Patent number: 8276132
    Abstract: One embodiment of the present invention sets forth a technique for representing and managing a multi-architecture co-processor application program. Source code for co-processor functions is compiled in two stages. The first stage incorporates a majority of the computationally intensive processing steps associated with co-processor code compilation. The first stage generates virtual assembly code from the source code. The second stage generates co-processor machine code from the virtual assembly. Both the virtual assembly and co-processor machine code may be included within the co-processor enabled application program. A co-processor driver uses a description of the currently available co-processor to select between virtual assembly and co-processor machine code. If the virtual assembly code is selected, then the co-processor driver compiles the virtual assembly into machine code for the current co-processor.
    Type: Grant
    Filed: November 12, 2007
    Date of Patent: September 25, 2012
    Assignee: NVIDIA Corporation
    Inventors: Julius Vanderspek, Nicholas Patrick Wilt, Jayant Kolhe, Ian A. Buck, Bastiaan Aarts
  • Publication number: 20040117594
    Abstract: In a digital data processing system having a memory component, a method for managing available memory resources using a translation lookaside buffer (“TLB”) adapted to support at least two page sizes, 2M and 2M+N, where M and N are both integers. Each time an active process is allocated a page of memory of size 2M, an attempt is made to construct a larger cluster of size 2M+N from currently-mapped pages. Clustering will be possible if and only if all 2N of the logical pages having logical page addresses of the form L[st]{x:x} are either currently-mapped or currently being mapped, where s and t are the same for all 2N of the logical pages but {x:x} can be any of the 2N possible different combinations and permutations of “0” and “1”. As a result of clustering, a single translator is used to map the entire cluster of 2N pages and (2N−1) translators are made available for mapping other pages.
    Type: Application
    Filed: December 13, 2002
    Publication date: June 17, 2004
    Inventor: Julius VanderSpek