IP Library › Granted Patent US 10,503,507
Granted Patent B2
US 10,503,507 · App. 15/693,345 · Granted Dec 10, 2019

Inline data inspection for workload simplification

Inventors: Jeffrey Michael Pool (Durham, NC); Andrew Kerr (San Francisco, CA); John Tran (Denver, CO); Ming Y. Siu (Santa Clara, CA); Stuart Oberman (Sunnyvale, CA)
Assignee: NVIDIA Corporation
G06F9/30043G06F9/3001G06F9/30145G06F9/30098
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,503,507
App. No.
15/693,345
Filed
Aug 31, 2017
Granted
Dec 10, 2019
Kind
B2
Examiner
MEHTA, JYOTI
Art Unit
2182
USPC
712/208
Abstract

A method, computer readable medium, and system are disclosed for inline data inspection. The method includes the steps of receiving, by a load/store unit, a load instruction and obtaining, by an inspection circuit that is coupled to the load/store unit, data specified by the load instruction. Additional steps include determining that the data equals zero and transmitting the data and a predicate signal to the load/store unit, wherein the predicate signal indicates that the data equals zero. Alternative additional steps include computing a predicate value based on a comparison between the data and a threshold value and transmitting the data and the predicate value to the load/store unit, wherein the predicate value is asserted when the data is less than the threshold value and is negated when the data is not less than the threshold value.

Claims (27)

1. A parallel processing unit, comprising:

a load/store unit configured to execute a load instruction; and

an inspection circuit that is coupled to the load/store unit and configured to:

obtain data specified by the load instruction;

compute a predicate value based on a comparison between the data and a threshold value; and

transmit the data and the predicate value to the load/store unit, wherein the predicate value is asserted when the data is less than the threshold value and is negated when the data is not less than the threshold value.

2. The parallel processing unit of claim 1 , wherein the threshold value is specified by the load instruction.

3. The parallel processing unit of claim 1 , wherein the threshold value is programmable and stored in a register.

4. The parallel processing unit of claim 1 , wherein the data is encoded in a floating point format and the inspection circuit is configured to compare one or more exponents of the data to determine whether the data is less than the threshold value.

5. The parallel processing unit of claim 1 , wherein the inspection circuit is further configured to compute statistics associated with a distribution of the data relative to the threshold value and store the statistics.

6. The parallel processing unit of claim 1 , wherein the threshold value is computed, by the inspection circuit, during execution of a program that includes the load instruction.

7. The parallel processing unit of claim 6 , wherein the threshold value is computed, by the inspection circuit, to cause a predetermined portion of the data to be less than the threshold value.

8. The parallel processing unit of claim 6 , wherein the threshold value is computed, by the inspection circuit, to cause a predetermined portion of the data to be centered around the threshold value.

9. A computer-implemented method, comprising:

receiving, by a load/store unit, a load instruction;

obtaining, by an inspection circuit that is coupled to the load/store unit, data specified by the load instruction;

computing a predicate value based on a comparison between the data and a threshold value; and

transmitting the data and the predicate value to the load/store unit, wherein the predicate value is asserted when the data is less than the threshold value and is negated when the data is not less than the threshold value.

10. The computer-implemented method of claim 9 , wherein the threshold value is computed during execution of a program that includes the load instruction.

11. The computer-implemented method of claim 9 , wherein a branch instruction follows the load instruction in a sequence of instructions for execution by a parallel processing unit and the predicate value controls execution of the branch instruction.

12. A non-transitory machine-readable medium having stored thereon a set of instructions, which when executed by one or more processors, cause the one or more processors to at least:

receive, by a load/store unit, a load instruction;

obtain, by an inspection circuit that is coupled to the load/store unit, data specified by the load instruction;

compute a predicate value based on a comparison between the data and a threshold value; and

transmit the data and the predicate value to the load/store unit, wherein the predicate value is asserted when the data is less than the threshold value and is negated when the data is not less than the threshold value.

13. The non-transitory machine-readable medium of claim 12 , wherein the threshold value is computed during execution of a program that includes the load instruction.

14. The non-transitory machine-readable medium of claim 12 , wherein a branch instruction follows the load instruction in a sequence of instructions for execution by a parallel processing unit and the predicate value controls execution of the branch instruction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2018
From: POOL, JEFFREY MICHAEL; KERR, ANDREW; TRAN, JOHN; SIU, MING Y.; OBERMAN, STUART
To: NVIDIA CORPORATION
Reel/Frame 044539/0758 →
Continuity (1)
Related Publication 20190065195A1 · Feb 28, 2019