Patents by Inventor Jeffrey T. Kiel
Jeffrey T. Kiel 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: 9292414Abstract: A system, method, and computer program product are provided for debugging graphics programs via a system with a single graphics processing unit. The method includes the steps of storing an initial state of an application programming interface context in a memory, intercepting a stream of API commands associated with the frame, transmitting the stream of API commands to a software layer that implements the API to render the frame, and in response to a breakpoint, storing a graphics processing unit context in the memory. The initial state of the API context corresponds to the start of a frame, and the stream of API commands are generated by a graphics application.Type: GrantFiled: November 8, 2013Date of Patent: March 22, 2016Assignee: NVIDIA CorporationInventors: Jeffrey T. Kiel, Thomas H. Klein
-
Patent number: 8966272Abstract: Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.Type: GrantFiled: December 31, 2009Date of Patent: February 24, 2015Assignee: NVIDIA CorporationInventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
-
Patent number: 8963932Abstract: A method of calculating performance parameters for a type of data being executed by a unified processing subunit. In one embodiment, a task (e.g., a draw call) is executed by a processing pipeline (e.g., a GPU). An ALU within a unified processing subunit (e.g., a unified shader processing unit) is queried to determine a type of data (e.g., vertex processing, pixel shading) being processed by the ALU. Performance parameters (e.g., bottleneck and utilization) for the type of data being processed by the ALU is calculated and displayed (e.g., stacked graph). Accordingly, software developers can visualize component workloads of a unified processing subunit architecture. As a result, utilization of the unified processing subunit processing a particular data may be maximized while bottleneck is reduced. Therefore, the efficiency of the unified processing subunit and the processing pipeline is improved.Type: GrantFiled: December 18, 2006Date of Patent: February 24, 2015Assignee: Nvidia CorporationInventors: Jeffrey T. Kiel, Derek M. Cornish
-
Publication number: 20140146062Abstract: A system, method, and computer program product are provided for debugging graphics programs via a system with a single graphics processing unit. The method includes the steps of storing an initial state of an application programming interface context in a memory, intercepting a stream of API commands associated with the frame, transmitting the stream of API commands to a software layer that implements the API to render the frame, and in response to a breakpoint, storing a graphics processing unit context in the memory. The initial state of the API context corresponds to the start of a frame, and the stream of API commands are generated by a graphics application.Type: ApplicationFiled: November 8, 2013Publication date: May 29, 2014Applicant: NVIDIA CorporationInventors: Jeffrey T. Kiel, Thomas H. Klein
-
Patent number: 8452981Abstract: Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.Type: GrantFiled: March 1, 2006Date of Patent: May 28, 2013Assignee: Nvidia CorporationInventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
-
Patent number: 8436864Abstract: A computer-implemented method and user interface for organizing graphical operations and displaying performance data of a graphics processing pipeline. More specifically, embodiments provide a convenient and effective mechanism for enhancing graphics processing by automatically determining and grouping graphical operations with similar state attributes relating to one or more units of the graphics pipeline. As such, pipeline adjustments for reducing execution time of one graphical operation may benefit other graphical operations with similar state attributes, thereby reducing the number of pipeline adjustments and allowing more careful selection of graphical operations to increase performance and reduce image degradation. Also, the display of the grouped graphical operations also provides information for determining the troublesome operations. In one embodiment, the groups are ranked by their respective execution time.Type: GrantFiled: August 1, 2006Date of Patent: May 7, 2013Assignee: Nvidia CorporationInventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey, II
-
Patent number: 8436870Abstract: A computer-implemented user interface and method for graphical processing analysis. More specifically, embodiments provide a convenient and effective mechanism for presenting GPU performance information such that one or more bottlenecking and/or underutilized graphics pipeline units may be identified. The presentation of the information enables quick comparison of all graphical operations within a frame for analysis with increased granularity. Additionally, the performance of graphical operations with common state attributes may be compared to more effectively and efficiently enhance GPU performance.Type: GrantFiled: August 1, 2006Date of Patent: May 7, 2013Assignee: Nvidia CorporationInventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey, II
-
Patent number: 8296738Abstract: One embodiment of the present invention sets forth a system that allows a software developer to perform shader debugging and performance tuning. The system includes an interception layer between the software application and the application programming interface (API). The interception layer is configured to intercept and store source code versions of the original shaders included in the application. For each object in the frame, the interception layer makes shader source code available to the developer, so that the developer can modify the source code as needed, re-compile only the modified shader source code, and run the application. Consequently, shader debugging and performance tuning may be carried out in a manner that is more efficient and effective relative to prior art approaches.Type: GrantFiled: August 13, 2007Date of Patent: October 23, 2012Assignee: NVIDIA CorporationInventors: Jeffrey T. Kiel, Derek M. Cornish
-
Patent number: 8276129Abstract: One embodiment of the present invention sets forth a system that allows a software developer to perform shader debugging and performance tuning. The system includes an interception layer between the software application and the application programming interface (API). The interception layer is configured to intercept and store source code versions of the original shaders included in the application. For each object in the frame, the interception layer makes shader source code available to the developer, so that the developer can modify the source code as needed, re-compile only the modified shader source code, and run the application. Consequently, shader debugging and performance tuning may be carried out in a manner that is more efficient and effective relative to prior art approaches.Type: GrantFiled: August 13, 2007Date of Patent: September 25, 2012Assignee: NVIDIA CorporationInventors: Jeffrey T. Kiel, Derek M. Cornish
-
Patent number: 8031969Abstract: Methods and apparatuses for selecting appropriate anisotropic filtering levels for images. An image is obtained, that image is Fourier transformed into its frequency components, and then those frequency components are normalized. The Fourier transformed into its frequency components are assigned to Fourier buckets (or bins) having dimensions selected in accord with the number of available anisotropic filtering levels. A predetermined threshold value is used to select one of the Fourier buckets by comparing the predetermined threshold value with the contents of the Fourier buckets. The selected Fourier bucket is used to determine an appropriate anisotropic filtering level for the image. Some embodiments of the present invention can provide for an automatic selection and setting of the appropriate anisotropic filtering level.Type: GrantFiled: September 7, 2004Date of Patent: October 4, 2011Assignee: NVIDIA CorporationInventor: Jeffrey T. Kiel
-
Patent number: 8006232Abstract: Embodiments of the invention provide a debugging tool configured to serialize function calls made to a graphics API on a remote device such as a hand-held videogame system. Embodiments of the invention may be used to emulate the performance of the same graphics API calls made on the remote device to generate a given display frame. An instrumented driver may capture and serialize each graphics API call invoked by a graphics application running on the remote device. Thus, the host component of the graphical application debugger may generate and display the same image as displayed on the target device without the latency of waiting for a set of framebuffer data to be transmitted over the communication link for each frame rendered on the target device.Type: GrantFiled: July 30, 2007Date of Patent: August 23, 2011Assignee: NVIDIA CorporationInventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sébastien Julien Dominé
-
Patent number: 8001531Abstract: Embodiments of the invention provide a debugging tool configured to translate a pre-compiled binary shader as part of debugging a graphics application running on a remote device. An instrumented driver may capture and serialize each graphics API call invoked by a graphics application running on the remote device along with any pre-compiled binary shader programs supplied by the graphics application. The graphical application debugger may translate the shader program into a form appropriate for graphics hardware present on the host system. By replaying the same sequence of API calls invoked on the target device using the same shader programs, the graphical application debugger may generate and display the same image displayed on the target device without the latency of waiting for a full set of framebuffer data to be transmitted over the communication link for each frame rendered on the target device.Type: GrantFiled: July 30, 2007Date of Patent: August 16, 2011Assignee: NVIDIA CorporationInventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sébastien Julien Dominé
-
Patent number: 7992137Abstract: Embodiments of the invention provide a data communications protocol and client server architecture used for the performance analysis and debugging of a graphics application running on a remote device. The remote device may be a hand-held video game console, a mobile phone, or convergence device, but may also be a personal computer system. A graphical application debugger may include a host component and a target component. The host component executes on a host system and presents a debugging interface to a developer. The target component may record data related to the performance of a graphics pipeline on the target device and transmit this data back to the host system over a communication link. The target component may be included as part of an instrumented version of a graphics device driver.Type: GrantFiled: July 30, 2007Date of Patent: August 2, 2011Assignee: NVIDIA CorporationInventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sébastien Julien Dominé
-
Patent number: 7891012Abstract: Embodiments of the present invention are directed to a method and computer-usable medium for determining the authorization status of object code. In one embodiment, an application program embodied in an executable file is executed to periodically send a first data packet to a driver. A counter is decremented for each periodic interval in which the data packet is not received, and is reset in response to the data packet being received. The authorized status of the executable file is revoked if the counter reaches a predetermined value. In another embodiment, an application program generates a second data packet by creating a signature of the executable file and then encrypting that signature. The second data packet is sent to a driver for comparison with a previously-obtained packet. Thereafter, the authorized status of the executable file is revoked if a portion of the second data packet does not match the previously-obtained packet.Type: GrantFiled: March 1, 2006Date of Patent: February 15, 2011Assignee: NVIDIA CorporationInventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
-
Patent number: 7778800Abstract: A method of calculating utilization and bottleneck performance parameters of a processing unit within a graphical processing unit (GPU). The utilization is a measure of a percentage that the processing unit is utilized over a draw call execution time. The bottleneck is the sum of the time period that the processing unit is active, the time period that the processing unit is full and does not accept data from an upstream processing unit, minus the time period that the processing unit is paused because the downstream processing unit is busy and cannot accept data, all over the execution time of the draw call. Performance parameters may be determined by sampling the processing unit and incrementing a counter when a condition is true. The method is repeated for the same draw call, for each processing unit of the GPU, and for a plurality of draw calls comprising a frame.Type: GrantFiled: August 1, 2006Date of Patent: August 17, 2010Assignee: Nvidia CorporationInventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey, II
-
Publication number: 20100169654Abstract: Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.Type: ApplicationFiled: December 31, 2009Publication date: July 1, 2010Applicant: NVIDIA CORPORATIONInventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
-
Patent number: 7545984Abstract: Methods, apparatuses, and systems are presented for measuring difference between graphics images relating to performing an arithmetic operation involving a first graphics image comprising a plurality of first pixels and a second graphics image comprising a plurality of second pixels to produce a difference image comprising a plurality of difference pixels, generating measures of proximity from a plurality of ranges of observation within the difference image, wherein the measures of proximity represent spatial proximity of difference pixels to other difference pixels within the difference image, and applying non-uniform weighting to the difference pixels to produce a weighted difference image, wherein the non-uniform weighting depends on the measures of proximity generated from the plurality of ranges of observation.Type: GrantFiled: December 16, 2004Date of Patent: June 9, 2009Assignee: Nvidia CorporationInventors: Jeffrey T. Kiel, Eldon S. Larsen
-
Publication number: 20090037774Abstract: Embodiments of the invention provide a data communications protocol and client server architecture used for the performance analysis and debugging of a graphics application running on a remote device. The remote device may be a hand-held video game console, a mobile phone, or convergence device, but may also be a personal computer system. A graphical application debugger may include a host component and a target component. The host component executes on a host system and presents a debugging interface to a developer. The target component may record data related to the performance of a graphics pipeline on the target device and transmit this data back to the host system over a communication link. The target component may be included as part of an instrumented version of a graphics device driver.Type: ApplicationFiled: July 30, 2007Publication date: February 5, 2009Inventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sebastien Julien Domine
-
Publication number: 20080030511Abstract: A computer-implemented method and user interface for organizing graphical operations and displaying performance data of a graphics processing pipeline. More specifically, embodiments provide a convenient and effective mechanism for enhancing graphics processing by automatically determining and grouping graphical operations with similar state attributes relating to one or more units of the graphics pipeline. As such, pipeline adjustments for reducing execution time of one graphical operation may benefit other graphical operations with similar state attributes, thereby reducing the number of pipeline adjustments and allowing more careful selection of graphical operations to increase performance and reduce image degradation. Also, the display of the grouped graphical operations also provides information for determining the troublesome operations. In one embodiment, the groups are ranked by their respective execution time.Type: ApplicationFiled: August 1, 2006Publication date: February 7, 2008Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey
-
Publication number: 20080033696Abstract: A method of calculating utilization and bottleneck performance parameters of a processing unit within a graphical processing unit (GPU). The utilization is a measure of a percentage that the processing unit is utilized over a draw call execution time. The bottleneck is the sum of the time period that the processing unit is active, the time period that the processing unit is full and does not accept data from an upstream processing unit, minus the time period that the processing unit is paused because the downstream processing unit is busy and cannot accept data, all over the execution time of the draw call. Performance parameters may be determined by sampling the processing unit and incrementing a counter when a condition is true. The method is repeated for the same draw call, for each processing unit of the GPU, and for a plurality of draw calls comprising a frame.Type: ApplicationFiled: August 1, 2006Publication date: February 7, 2008Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey